@shopware/cms-base-layer 3.0.0 → 3.0.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.
Files changed (102) hide show
  1. package/README.md +47 -63
  2. package/app/components/SwCategoryNavigation.vue +1 -0
  3. package/app/components/SwCategoryNavigationLink.vue +16 -8
  4. package/app/components/SwContactForm.vue +1 -0
  5. package/app/components/SwFilterChips.vue +1 -0
  6. package/app/components/SwListingProductPrice.vue +16 -4
  7. package/app/components/SwMedia3D.vue +1 -4
  8. package/app/components/SwNewsletterForm.vue +4 -3
  9. package/app/components/SwProductAddToCart.vue +24 -7
  10. package/app/components/SwProductCard.vue +1 -0
  11. package/app/components/SwProductCardDetails.vue +27 -9
  12. package/app/components/SwProductCardImage.vue +31 -12
  13. package/app/components/SwProductCardSkeleton.vue +37 -14
  14. package/app/components/SwProductGallery.vue +1 -0
  15. package/app/components/SwProductListingFilter.vue +5 -1
  16. package/app/components/SwProductListingFilters.vue +21 -6
  17. package/app/components/SwProductListingFiltersHorizontal.vue +4 -1
  18. package/app/components/SwProductPrice.vue +1 -0
  19. package/app/components/SwProductReviews.vue +14 -6
  20. package/app/components/SwProductReviewsForm.vue +15 -3
  21. package/app/components/SwProductUnits.vue +1 -0
  22. package/app/components/SwQuantitySelect.vue +10 -3
  23. package/app/components/SwSharedPrice.vue +1 -0
  24. package/app/components/SwSlider.vue +1 -0
  25. package/app/components/SwStockInfo.vue +12 -6
  26. package/app/components/SwVariantConfigurator.vue +4 -1
  27. package/app/components/listing-filters/SwFilterPrice.vue +79 -30
  28. package/app/components/listing-filters/SwFilterProperties.vue +40 -25
  29. package/app/components/listing-filters/SwFilterRating.vue +21 -9
  30. package/app/components/listing-filters/SwFilterShippingFree.vue +16 -8
  31. package/app/components/public/cms/CmsBlockSpatialViewer.vue +1 -0
  32. package/app/components/public/cms/CmsGenericBlock.vue +2 -0
  33. package/app/components/public/cms/CmsGenericElement.vue +1 -0
  34. package/app/components/public/cms/CmsNoComponent.vue +1 -0
  35. package/app/components/public/cms/CmsPage.md +1 -1
  36. package/app/components/public/cms/CmsPage.vue +2 -0
  37. package/app/components/public/cms/block/CmsBlockCategoryNavigation.vue +1 -0
  38. package/app/components/public/cms/block/CmsBlockCenterText.vue +1 -0
  39. package/app/components/public/cms/block/CmsBlockCrossSelling.vue +1 -0
  40. package/app/components/public/cms/block/CmsBlockCustomForm.vue +1 -0
  41. package/app/components/public/cms/block/CmsBlockForm.vue +1 -0
  42. package/app/components/public/cms/block/CmsBlockGalleryBuybox.vue +4 -1
  43. package/app/components/public/cms/block/CmsBlockImage.vue +1 -0
  44. package/app/components/public/cms/block/CmsBlockImageBubbleRow.vue +4 -1
  45. package/app/components/public/cms/block/CmsBlockImageCover.vue +1 -0
  46. package/app/components/public/cms/block/CmsBlockImageFourColumn.vue +4 -1
  47. package/app/components/public/cms/block/CmsBlockImageGallery.vue +1 -0
  48. package/app/components/public/cms/block/CmsBlockImageGalleryBig.vue +1 -0
  49. package/app/components/public/cms/block/CmsBlockImageHighlightRow.vue +4 -1
  50. package/app/components/public/cms/block/CmsBlockImageSimpleGrid.vue +1 -0
  51. package/app/components/public/cms/block/CmsBlockImageSlider.vue +1 -0
  52. package/app/components/public/cms/block/CmsBlockImageText.vue +4 -1
  53. package/app/components/public/cms/block/CmsBlockImageTextBubble.vue +4 -1
  54. package/app/components/public/cms/block/CmsBlockImageTextCover.vue +4 -1
  55. package/app/components/public/cms/block/CmsBlockImageTextGallery.vue +4 -12
  56. package/app/components/public/cms/block/CmsBlockImageTextRow.vue +4 -1
  57. package/app/components/public/cms/block/CmsBlockImageThreeColumn.vue +1 -0
  58. package/app/components/public/cms/block/CmsBlockImageThreeCover.vue +4 -1
  59. package/app/components/public/cms/block/CmsBlockImageTwoColumn.vue +4 -1
  60. package/app/components/public/cms/block/CmsBlockProductDescriptionReviews.vue +1 -0
  61. package/app/components/public/cms/block/CmsBlockProductHeading.vue +1 -0
  62. package/app/components/public/cms/block/CmsBlockProductListing.vue +1 -0
  63. package/app/components/public/cms/block/CmsBlockProductThreeColumn.vue +1 -0
  64. package/app/components/public/cms/block/CmsBlockSidebarFilter.vue +1 -0
  65. package/app/components/public/cms/block/CmsBlockText.vue +1 -0
  66. package/app/components/public/cms/block/CmsBlockTextHero.vue +1 -0
  67. package/app/components/public/cms/block/CmsBlockTextOnImage.vue +2 -4
  68. package/app/components/public/cms/block/CmsBlockTextThreeColumn.vue +1 -0
  69. package/app/components/public/cms/block/CmsBlockTextTwoColumn.vue +4 -1
  70. package/app/components/public/cms/block/CmsBlockVimeoVideo.vue +1 -0
  71. package/app/components/public/cms/block/CmsBlockYoutubeVideo.vue +1 -0
  72. package/app/components/public/cms/element/CmsElementBuyBox.vue +90 -72
  73. package/app/components/public/cms/element/CmsElementCategoryNavigation.vue +14 -3
  74. package/app/components/public/cms/element/CmsElementCrossSelling.vue +3 -1
  75. package/app/components/public/cms/element/CmsElementCustomForm.vue +1 -0
  76. package/app/components/public/cms/element/CmsElementForm.vue +1 -0
  77. package/app/components/public/cms/element/CmsElementHtml.vue +0 -1
  78. package/app/components/public/cms/element/CmsElementImage.vue +2 -0
  79. package/app/components/public/cms/element/CmsElementImageGallery.vue +6 -2
  80. package/app/components/public/cms/element/CmsElementManufacturerLogo.vue +1 -0
  81. package/app/components/public/cms/element/CmsElementProductBox.vue +1 -0
  82. package/app/components/public/cms/element/CmsElementProductDescriptionReviews.vue +77 -29
  83. package/app/components/public/cms/element/CmsElementProductListing.vue +16 -5
  84. package/app/components/public/cms/element/CmsElementProductSlider.vue +6 -4
  85. package/app/components/public/cms/element/CmsElementText.vue +2 -0
  86. package/app/components/public/cms/element/CmsElementVimeoVideo.vue +1 -0
  87. package/app/components/public/cms/element/CmsElementYoutubeVideo.vue +1 -0
  88. package/app/components/public/cms/element/SwProductListingPagination.vue +8 -2
  89. package/app/components/public/cms/section/CmsSectionSidebar.vue +13 -8
  90. package/app/components/public/cms/skeleton/ProductCardSkeleton.vue +16 -5
  91. package/app/components/ui/SwitchButton.vue +53 -14
  92. package/app/components/ui/WishlistIcon.vue +8 -2
  93. package/app/composables/useLcpImagePreload.test.ts +1 -0
  94. package/app/composables/useLcpImagePreload.ts +2 -0
  95. package/app/composables/useTypedAppConfig.ts +1 -0
  96. package/app/helpers/cms/getImageSizes.test.ts +1 -0
  97. package/app/helpers/html-to-vue/ast.ts +1 -0
  98. package/app/helpers/html-to-vue/getOptionsFromNode.test.ts +1 -0
  99. package/app/helpers/html-to-vue/renderToHtml.ts +1 -0
  100. package/app/helpers/html-to-vue/renderer.ts +1 -0
  101. package/app/providers/shopware.test.ts +1 -0
  102. package/package.json +19 -20
@@ -14,6 +14,7 @@ import { useCmsTranslations } from "@shopware/composables";
14
14
  import { onClickOutside } from "@vueuse/core";
15
15
  import { defu } from "defu";
16
16
  import { computed, ref } from "vue";
17
+
17
18
  import type { Schemas } from "#shopware";
18
19
 
19
20
  const {
@@ -77,15 +78,17 @@ const handleRadioUpdate = (val: string | null | boolean | undefined) => {
77
78
  @keydown.space.prevent="toggle"
78
79
  >
79
80
  <div class="flex-1 flex items-center gap-2.5">
80
- <div class="flex-1 text-surface-on-surface text-base font-bold leading-normal text-left">
81
+ <div
82
+ class="flex-1 text-surface-on-surface text-base font-bold leading-normal text-left"
83
+ >
81
84
  {{ filter.label }}
82
85
  </div>
83
86
  </div>
84
- <span
85
- class="flex items-center justify-center"
86
- aria-hidden="true"
87
- >
88
- <SwChevronIcon :direction="isFilterVisible ? 'up' : 'down'" :size="24" />
87
+ <span class="flex items-center justify-center" aria-hidden="true">
88
+ <SwChevronIcon
89
+ :direction="isFilterVisible ? 'up' : 'down'"
90
+ :size="24"
91
+ />
89
92
  </span>
90
93
  </div>
91
94
  </div>
@@ -93,9 +96,14 @@ const handleRadioUpdate = (val: string | null | boolean | undefined) => {
93
96
 
94
97
  <!-- Filter content -->
95
98
  <transition name="filter-collapse">
96
- <div v-if="isFilterVisible || displayMode === 'dropdown'" class="self-stretch">
99
+ <div
100
+ v-if="isFilterVisible || displayMode === 'dropdown'"
101
+ class="self-stretch"
102
+ >
97
103
  <div class="pt-6 space-y-4">
98
- <div class="self-stretch inline-flex justify-start items-start gap-2 w-full">
104
+ <div
105
+ class="self-stretch inline-flex justify-start items-start gap-2 w-full"
106
+ >
99
107
  <div class="flex-1 pt-[3px]">
100
108
  <SwSwitchButton
101
109
  :model-value="currentFilterData"
@@ -1,5 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { computed, defineAsyncComponent } from "vue";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
  import type { Schemas } from "#shopware";
5
6
 
@@ -5,7 +5,9 @@ import {
5
5
  getCmsLayoutConfiguration,
6
6
  } from "@shopware/helpers";
7
7
  import { h, provide, resolveComponent } from "vue";
8
+
8
9
  import type { Schemas } from "#shopware";
10
+
9
11
  import { useTypedAppConfig } from "../../../composables/useTypedAppConfig";
10
12
  import { getImageSizes } from "../../../helpers/cms/getImageSizes";
11
13
 
@@ -2,6 +2,7 @@
2
2
  import { resolveCmsComponent } from "@shopware/composables";
3
3
  import { getCmsLayoutConfiguration } from "@shopware/helpers";
4
4
  import { h, resolveComponent } from "vue";
5
+
5
6
  import type { Schemas } from "#shopware";
6
7
 
7
8
  const props = defineProps<{
@@ -2,6 +2,7 @@
2
2
  import { refAutoReset } from "@vueuse/core";
3
3
  import { pascalCase } from "scule";
4
4
  import { computed } from "vue";
5
+
5
6
  import type { Schemas } from "#shopware";
6
7
 
7
8
  const props = defineProps<{
@@ -15,7 +15,7 @@ export default defineAppConfig({
15
15
  });
16
16
  ```
17
17
 
18
- See the [cms-base-layer README](../../../../../../README.md#%EF%B8%8F-background-image-optimization) for full details.
18
+ See the [cms-base-layer README](https://github.com/shopware/frontends/tree/main/packages/cms-base-layer#%EF%B8%8F-background-image-optimization) for full details.
19
19
 
20
20
  ### Example usage
21
21
 
@@ -6,8 +6,10 @@ import {
6
6
  } from "@shopware/helpers";
7
7
  import { pascalCase } from "scule";
8
8
  import { computed, h, resolveComponent, watchEffect } from "vue";
9
+
9
10
  import { createCategoryListingContext, useNavigationContext } from "#imports";
10
11
  import type { Schemas } from "#shopware";
12
+
11
13
  import { useLcpImagePreload } from "../../../composables/useLcpImagePreload";
12
14
  import { useTypedAppConfig } from "../../../composables/useTypedAppConfig";
13
15
 
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockCategoryNavigation } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockCenterText } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockCrossSelling } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockForm } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockForm } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockGalleryBuybox } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -12,7 +13,9 @@ const leftContent = getSlotContent("left");
12
13
  </script>
13
14
 
14
15
  <template>
15
- <div class="w-full flex flex-col lg:flex-row justify-center items-stretch gap-4 lg:gap-10 lg:px-0 overflow-hidden">
16
+ <div
17
+ class="w-full flex flex-col lg:flex-row justify-center items-stretch gap-4 lg:gap-10 lg:px-0 overflow-hidden"
18
+ >
16
19
  <!-- Gallery Section -->
17
20
  <div class="w-full lg:w-3/5">
18
21
  <CmsGenericElement :content="leftContent" />
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImage } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageBubbleRow } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -13,7 +14,9 @@ const rightContent = getSlotContent("right");
13
14
  const centerContent = getSlotContent("center");
14
15
  </script>
15
16
  <template>
16
- <div class="cms-block-image-bubble-row flex flex-col sm:flex-row justify-start items-start gap-6 w-full">
17
+ <div
18
+ class="cms-block-image-bubble-row flex flex-col sm:flex-row justify-start items-start gap-6 w-full"
19
+ >
17
20
  <div class="w-full sm:flex-1 flex items-center justify-center">
18
21
  <CmsGenericElement :content="leftContent" class="w-full" />
19
22
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageCover } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageFourColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -14,7 +15,9 @@ const centerLeftContent = getSlotContent("center-left");
14
15
  const centerRightContent = getSlotContent("center-right");
15
16
  </script>
16
17
  <template>
17
- <div class="cms-block-image-four-column flex flex-col sm:flex-row sm:flex-wrap lg:flex-nowrap justify-start items-start gap-6 w-full">
18
+ <div
19
+ class="cms-block-image-four-column flex flex-col sm:flex-row sm:flex-wrap lg:flex-nowrap justify-start items-start gap-6 w-full"
20
+ >
18
21
  <div class="w-full sm:w-[calc(50%-12px)] lg:flex-1">
19
22
  <CmsGenericElement :content="leftContent" />
20
23
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageGallery } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageGalleryBig } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageHighlightRow } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -13,7 +14,9 @@ const rightContent = getSlotContent("right");
13
14
  const centerContent = getSlotContent("center");
14
15
  </script>
15
16
  <template>
16
- <div class="cms-block-image-highlight-row flex flex-col sm:flex-row justify-start items-start gap-6 w-full">
17
+ <div
18
+ class="cms-block-image-highlight-row flex flex-col sm:flex-row justify-start items-start gap-6 w-full"
19
+ >
17
20
  <div class="w-full sm:flex-1">
18
21
  <CmsGenericElement :content="leftContent" />
19
22
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageSimpleGrid } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageSlider } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageText } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -12,7 +13,9 @@ const leftContent = getSlotContent("left");
12
13
  const rightContent = getSlotContent("right");
13
14
  </script>
14
15
  <template>
15
- <div class="flex flex-col md:flex-row justify-start items-stretch gap-6 w-full">
16
+ <div
17
+ class="flex flex-col md:flex-row justify-start items-stretch gap-6 w-full"
18
+ >
16
19
  <div class="w-full md:flex-1 min-w-0 p-4 flex flex-col">
17
20
  <CmsGenericElement :content="leftContent" class="flex-1" />
18
21
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageTextBubble } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -16,7 +17,9 @@ const rightText = getSlotContent("right-text");
16
17
  const rightImage = getSlotContent("right-image");
17
18
  </script>
18
19
  <template>
19
- <div class="cms-block-image-text-bubble flex flex-col sm:flex-row justify-start items-start gap-6 w-full">
20
+ <div
21
+ class="cms-block-image-text-bubble flex flex-col sm:flex-row justify-start items-start gap-6 w-full"
22
+ >
20
23
  <div class="w-full sm:flex-1">
21
24
  <div class="self-stretch flex justify-center">
22
25
  <CmsGenericElement
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageTextCover } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -12,7 +13,9 @@ const leftContent = getSlotContent("left");
12
13
  const rightContent = getSlotContent("right");
13
14
  </script>
14
15
  <template>
15
- <article class="flex flex-col md:flex-row justify-start items-start gap-6 w-full pb-6">
16
+ <article
17
+ class="flex flex-col md:flex-row justify-start items-start gap-6 w-full pb-6"
18
+ >
16
19
  <div class="w-full md:flex-1 px-6 pt-6 md:px-0 md:pt-6 md:pl-6">
17
20
  <CmsGenericElement :content="leftContent" />
18
21
  </div>
@@ -4,6 +4,7 @@ import type {
4
4
  CmsElementImage,
5
5
  CmsElementText,
6
6
  } from "@shopware/composables";
7
+
7
8
  import { useCmsBlock } from "#imports";
8
9
 
9
10
  const props = defineProps<{
@@ -55,10 +56,7 @@ function onImageClick(
55
56
  :style="{ cursor: leftImageContent.data?.url && 'pointer' }"
56
57
  @click="onImageClick(leftImageContent)"
57
58
  />
58
- <CmsElementText
59
- :content="leftTextContent"
60
- class="self-stretch"
61
- />
59
+ <CmsElementText :content="leftTextContent" class="self-stretch" />
62
60
  </div>
63
61
  <div class="w-full sm:flex-1">
64
62
  <CmsElementImage
@@ -68,10 +66,7 @@ function onImageClick(
68
66
  }"
69
67
  @click="onImageClick(centerImageContent)"
70
68
  />
71
- <CmsElementText
72
- :content="centerTextContent"
73
- class="self-stretch"
74
- />
69
+ <CmsElementText :content="centerTextContent" class="self-stretch" />
75
70
  </div>
76
71
  <div class="w-full sm:flex-1">
77
72
  <CmsElementImage
@@ -79,10 +74,7 @@ function onImageClick(
79
74
  :style="{ cursor: rightImageContent.data?.url && 'pointer' }"
80
75
  @click="onImageClick(rightImageContent)"
81
76
  />
82
- <CmsElementText
83
- :content="rightTextContent"
84
- class="self-stretch"
85
- />
77
+ <CmsElementText :content="rightTextContent" class="self-stretch" />
86
78
  </div>
87
79
  </article>
88
80
  </template>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageTextRow } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -16,7 +17,9 @@ const rightImageContent = getSlotContent("right-image");
16
17
  const rightTextContent = getSlotContent("right-text");
17
18
  </script>
18
19
  <template>
19
- <div class="cms-block-image-text-row flex flex-col md:flex-row justify-center items-stretch gap-6 w-full">
20
+ <div
21
+ class="cms-block-image-text-row flex flex-col md:flex-row justify-center items-stretch gap-6 w-full"
22
+ >
20
23
  <div class="w-full md:flex-1 flex flex-col">
21
24
  <div class="flex-1 mb-4 overflow-hidden rounded-lg min-h-64">
22
25
  <CmsGenericElement :content="leftImageContent" />
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageThreeColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageThreeCover } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -13,7 +14,9 @@ const rightContent = getSlotContent("right");
13
14
  const centerContent = getSlotContent("center");
14
15
  </script>
15
16
  <template>
16
- <div class="cms-block-image-three-cover flex flex-col sm:flex-row justify-start items-start gap-6 w-full">
17
+ <div
18
+ class="cms-block-image-three-cover flex flex-col sm:flex-row justify-start items-start gap-6 w-full"
19
+ >
17
20
  <div class="w-full sm:flex-1">
18
21
  <CmsGenericElement :content="leftContent" />
19
22
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockImageTwoColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -12,7 +13,9 @@ const leftContent = getSlotContent("left");
12
13
  const rightContent = getSlotContent("right");
13
14
  </script>
14
15
  <template>
15
- <div class="cms-block-image-two-column flex flex-col md:flex-row justify-start items-start gap-6 w-full">
16
+ <div
17
+ class="cms-block-image-two-column flex flex-col md:flex-row justify-start items-start gap-6 w-full"
18
+ >
16
19
  <div class="w-full md:flex-1 md:min-w-0">
17
20
  <CmsGenericElement :content="leftContent" />
18
21
  </div>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockProductDescriptionReviews } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockProductHeading } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockProductListing } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockProductThreeColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -3,6 +3,7 @@ import type {
3
3
  CmsBlockSidebarFilter,
4
4
  CmsElementSidebarFilter,
5
5
  } from "@shopware/composables";
6
+
6
7
  import { useCmsBlock } from "#imports";
7
8
 
8
9
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockText } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockTextHero } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockTextOnImage } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -15,9 +16,6 @@ const slotContent = getSlotContent("content");
15
16
  <div
16
17
  class="cms-block-text-on-image min-h-[500px] py-20 bg-cover bg-bottom bg-no-repeat relative"
17
18
  >
18
- <CmsGenericElement
19
- v-if="slotContent"
20
- :content="slotContent"
21
- />
19
+ <CmsGenericElement v-if="slotContent" :content="slotContent" />
22
20
  </div>
23
21
  </template>
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockTextThreeColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockTextTwoColumn } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -13,7 +14,9 @@ const rightContent = getSlotContent("right");
13
14
  </script>
14
15
 
15
16
  <template>
16
- <article class="cms-block-text-two-column grid md:grid-cols-2 gap-5 md:gap-20">
17
+ <article
18
+ class="cms-block-text-two-column grid md:grid-cols-2 gap-5 md:gap-20"
19
+ >
17
20
  <CmsGenericElement
18
21
  :content="leftContent"
19
22
  class="cms-block-text-two-column__text"
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockVimeoVideo } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{
@@ -1,5 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import type { CmsBlockYoutubeVideo } from "@shopware/composables";
3
+
3
4
  import { useCmsBlock } from "#imports";
4
5
 
5
6
  const props = defineProps<{