@iqual/nuxt-icms 1.3.1 → 1.4.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 (122) hide show
  1. package/assets/symbols/chevron-right.svg +1 -1
  2. package/components/Blokkli/HeroImage/index.vue +1 -1
  3. package/components/Blokkli/Teasers/icon.svg +3 -3
  4. package/components/DesignSystem/Atoms/Button.vue +86 -36
  5. package/components/DesignSystem/Atoms/Caption.vue +10 -10
  6. package/components/DesignSystem/Atoms/Container.vue +10 -6
  7. package/components/DesignSystem/Atoms/GridRow.vue +4 -3
  8. package/components/DesignSystem/Atoms/LinkListItem.vue +31 -8
  9. package/components/DesignSystem/Molecules/ButtonGroup.vue +18 -3
  10. package/components/DesignSystem/Molecules/Card.vue +86 -31
  11. package/components/DesignSystem/Molecules/IconText.vue +37 -16
  12. package/components/DesignSystem/Molecules/MediaLightbox.vue +213 -58
  13. package/components/DesignSystem/Molecules/MediaSlider.vue +88 -25
  14. package/components/DesignSystem/Molecules/Partnership.vue +40 -9
  15. package/components/DesignSystem/Molecules/Table.vue +90 -25
  16. package/components/DesignSystem/Molecules/TitleComposition.vue +15 -12
  17. package/components/DesignSystem/Organisms/ContentBlock.vue +61 -15
  18. package/components/DesignSystem/Organisms/FacetedListing.vue +170 -0
  19. package/components/DesignSystem/Organisms/FlipTeaser.vue +119 -47
  20. package/components/DesignSystem/Organisms/HeaderHero.vue +167 -0
  21. package/components/DesignSystem/Organisms/HeaderTextImage.vue +71 -0
  22. package/components/DesignSystem/Organisms/LogoElement.vue +33 -10
  23. package/components/DesignSystem/Organisms/Map.vue +11 -6
  24. package/components/DesignSystem/Organisms/SearchResults.vue +41 -0
  25. package/components/DesignSystem/Organisms/TeamElement.vue +84 -20
  26. package/components/DesignSystem/Organisms/TeaserCard.vue +87 -34
  27. package/components/DesignSystem/Organisms/Testimonial.vue +82 -12
  28. package/components/DesignSystem/Organisms/TimelineElement.vue +42 -12
  29. package/components/DesignSystem/Organisms/TwoColumnTextElement.vue +44 -9
  30. package/components/DesignSystem/Pages/Search.vue +39 -0
  31. package/components/Drupal/Breadcrumb/index.vue +16 -5
  32. package/components/Drupal/Messages/index.vue +16 -5
  33. package/components/Drupal/Webform/fragment.graphql +8 -5
  34. package/components/Drupal/Webform/index.vue +20 -9
  35. package/components/Drupal/Webform/query.graphql +18 -16
  36. package/components/Form/CheckboxInput.vue +6 -6
  37. package/components/Form/CheckboxInputs.vue +5 -5
  38. package/components/Form/FileUploadInput.vue +6 -6
  39. package/components/Form/RadioButtonsInput.vue +5 -5
  40. package/components/Form/SelectInput.vue +7 -7
  41. package/components/Form/SubmitButton.vue +1 -1
  42. package/components/Form/TextAreaInput.vue +2 -2
  43. package/components/Form/TextEmailInput.vue +2 -2
  44. package/components/Form/TextInput.vue +2 -2
  45. package/components/Form/TextPhoneInput.vue +2 -2
  46. package/components/Form/composables/useFormElement.ts +5 -5
  47. package/components/Form/utils/types.ts +8 -7
  48. package/components/Media/Icon/index.vue +10 -6
  49. package/components/Media/Image/index.vue +26 -20
  50. package/components/Media/RemoteVideo/index.vue +34 -21
  51. package/components/Media/Video/index.vue +6 -5
  52. package/components/Node/Icms/Page/Teaser/index.vue +6 -4
  53. package/components/Node/Icms/Page/index.vue +2 -2
  54. package/components/Paragraph/Button/Element/index.vue +9 -2
  55. package/components/Paragraph/CallToAction/index.vue +43 -10
  56. package/components/Paragraph/Card/Element/index.vue +2 -1
  57. package/components/Paragraph/Card/Layout/index.vue +29 -10
  58. package/components/Paragraph/Contact/index.vue +41 -12
  59. package/components/Paragraph/Downloads/index.vue +82 -33
  60. package/components/Paragraph/FAQ/Element/index.vue +41 -12
  61. package/components/Paragraph/FAQ/Layout/index.vue +47 -13
  62. package/components/Paragraph/FlipTeasers/index.vue +26 -6
  63. package/components/Paragraph/Gallery/index.vue +42 -10
  64. package/components/Paragraph/HeroImage/index.vue +62 -16
  65. package/components/Paragraph/IconText/Element/index.vue +7 -1
  66. package/components/Paragraph/IconText/Layout/index.vue +39 -12
  67. package/components/Paragraph/Introduction/index.vue +50 -15
  68. package/components/Paragraph/Logo/Element/fragment.graphql +1 -0
  69. package/components/Paragraph/Logo/Element/index.vue +7 -2
  70. package/components/Paragraph/Media/index.vue +32 -31
  71. package/components/Paragraph/Partnerships/Element/fragment.graphql +1 -0
  72. package/components/Paragraph/Partnerships/Element/index.vue +7 -0
  73. package/components/Paragraph/Partnerships/Layout/index.vue +100 -27
  74. package/components/Paragraph/SingleTestimonial/index.vue +58 -15
  75. package/components/Paragraph/Table/index.vue +32 -9
  76. package/components/Paragraph/Tabs/Element/index.vue +44 -10
  77. package/components/Paragraph/Tabs/Layout/index.vue +123 -37
  78. package/components/Paragraph/Team/Element/index.vue +18 -1
  79. package/components/Paragraph/Team/Layout/index.vue +30 -7
  80. package/components/Paragraph/Teasers/index.vue +33 -7
  81. package/components/Paragraph/Testimonial/Element/index.vue +30 -5
  82. package/components/Paragraph/Testimonial/Layout/index.vue +78 -24
  83. package/components/Paragraph/Text/index.vue +32 -10
  84. package/components/Paragraph/TextMedia/index.vue +44 -13
  85. package/components/Paragraph/Timeline/Element/index.vue +23 -7
  86. package/components/Paragraph/Timeline/Layout/index.vue +232 -67
  87. package/components/Paragraph/TwoColumnText/Element/index.vue +20 -3
  88. package/components/Paragraph/TwoColumnText/Layout/index.vue +8 -1
  89. package/components/Paragraph/iFrame/index.vue +31 -11
  90. package/components/Search/Facets/FacetDropdownUI.vue +351 -77
  91. package/components/Search/Facets/FacetedSearchUI.vue +257 -101
  92. package/components/Search/Facets/fragment.graphql +5 -1
  93. package/components/Search/Input/index.vue +78 -20
  94. package/components/Section/Footer/index.vue +170 -30
  95. package/components/Section/Header/Buttons.vue +34 -0
  96. package/components/Section/Header/DesktopMainMenu.vue +160 -0
  97. package/components/Section/Header/DesktopMainMenuDropdown.vue +170 -0
  98. package/components/Section/Header/LanguageDropdown.vue +95 -64
  99. package/components/Section/Header/LanguageLinks.vue +39 -0
  100. package/components/Section/Header/Logo.vue +24 -0
  101. package/components/Section/Header/MainButtons.vue +31 -0
  102. package/components/Section/Header/MenuIcon.vue +61 -49
  103. package/components/Section/Header/MetaButtons.vue +31 -0
  104. package/components/Section/Header/MetaMenu.vue +55 -53
  105. package/components/Section/Header/MobileMainMenu.vue +23 -0
  106. package/components/Section/Header/MobileMainMenuItem.vue +191 -0
  107. package/components/Section/Header/index.vue +183 -185
  108. package/composables/useMenu.ts +2 -2
  109. package/composables/useMobileMenuOverlayBus.ts +44 -0
  110. package/composables/useNavigationOffset.ts +2 -2
  111. package/composables/useTheme.ts +75 -0
  112. package/formkit.theme.ts +541 -586
  113. package/layouts/default.vue +7 -35
  114. package/layouts/error.vue +7 -32
  115. package/nuxt.config.ts +13 -0
  116. package/package.json +1 -1
  117. package/plugins/initData.ts +8 -5
  118. package/queries/query.initData.graphql +4 -2
  119. package/tailwind.config.ts +11 -11
  120. package/types/global.ts +1 -0
  121. package/components/Section/Header/GlobalMenu.vue +0 -335
  122. package/components/Section/Header/LanguageSwitcher.vue +0 -37
@@ -1,28 +1,47 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass')">
8
+ <div :class="themedClass('columnClass', 'col-span-12')">
5
9
  <DesignSystemAtomsGridRow :class="introductionRow({ colorScheme })">
6
10
  <div
7
- class="col-span-12 p-8 pb-0 md:col-span-5 md:p-12 md:pr-0 lg:p-16 lg:pr-0"
11
+ :class="
12
+ themedClass(
13
+ 'introductionRowFirstColumnClass',
14
+ 'col-span-12 md:col-span-5',
15
+ )
16
+ "
8
17
  >
9
18
  <Media
10
19
  v-if="image"
11
20
  :media="image"
12
- mediaClass="aspect-square"
13
21
  imageAspectRatios="1/1"
14
22
  imageSizes="xs:100vw sm:100vw md:320px lg:380px"
15
- elementClass="rounded-lg size-full object-cover object-center"
23
+ :mediaClass="themedClass('mediaClass')"
24
+ :elementClass="themedClass('elementClass')"
25
+ :figcaptionClass="themedClass('figcaptionClass')"
16
26
  />
17
27
  </div>
18
28
  <div
19
- class="col-span-12 flex flex-col p-8 pt-0 md:col-span-7 md:p-12 md:pl-5 lg:p-16 lg:pl-6"
29
+ :class="
30
+ themedClass(
31
+ 'introductionRowSecondColumnClass',
32
+ 'col-span-12 flex flex-col p-8 pt-0 md:col-span-7 md:p-12 md:pl-5 lg:p-16 lg:pl-12',
33
+ )
34
+ "
20
35
  >
21
36
  <DesignSystemOrganismsContentBlock
22
37
  :pretitle="pretitle"
38
+ :pretitleClass="themedClass('pretitleClass')"
23
39
  :title="title"
40
+ :titleClass="themedClass('titleClass')"
24
41
  :subtitle="subtitle"
42
+ :subtitleClass="themedClass('subtitleClass')"
25
43
  :text="text"
44
+ :textClass="themedClass('textClass')"
26
45
  :titleWeight="titleWeight"
27
46
  :titleStyle="titleStyle"
28
47
  :colorScheme="colorScheme"
@@ -30,14 +49,26 @@
30
49
  <BlokkliField
31
50
  name="field_icms_buttons"
32
51
  :list="buttons"
33
- class="order-1 mt-6 flex flex-wrap gap-6 md:order-none"
34
- :class="[buttonAlignment, { droptarget: isEditing }]"
52
+ :class="
53
+ cn(
54
+ themedClass(
55
+ 'buttonsContainerClass',
56
+ 'order-1 mt-6 flex flex-wrap items-center gap-6 md:order-none',
57
+ ),
58
+ buttonAlignment,
59
+ { droptarget: isEditing },
60
+ )
61
+ "
35
62
  />
36
63
  <Media
37
64
  v-if="signature"
38
- mediaClass="ml-auto mr-6 mt-6 max-w-44"
39
65
  :media="signature"
40
66
  imageSizes="xs:180px"
67
+ :mediaClass="
68
+ themedClass('secondMediaClass', 'ml-auto mr-6 mt-6 max-w-44')
69
+ "
70
+ :figcaptionClass="themedClass('secondFigcaptionClass')"
71
+ :elementClass="themedClass('secondElementClass')"
41
72
  />
42
73
  </div>
43
74
  </DesignSystemAtomsGridRow>
@@ -48,20 +79,24 @@
48
79
 
49
80
  <script lang="ts" setup>
50
81
  import type { ParagraphIcmsLayoutTextImageIntroFragment } from '#graphql-operations'
82
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
51
83
  import { tv } from 'tailwind-variants'
84
+ import cn from '@iqual/nuxt-icms/composables/useCn'
52
85
 
53
86
  defineProps<ParagraphIcmsLayoutTextImageIntroFragment>()
54
87
 
55
88
  const { options, isEditing } = useAttrs().blokkliData
56
89
 
90
+ const themedClass = useTheme('ParagraphIntroduction')
91
+
57
92
  const introductionRow = tv({
58
- base: 'rounded-lg w-full shadow-custom p-0',
93
+ base: themedClass('introductionRowBase', 'w-full p-0'),
59
94
  variants: {
60
95
  colorScheme: {
61
- none: 'bg-white',
62
- dark: 'bg-gray-900',
63
- light: 'bg-white',
64
- accent: 'bg-primary-700',
96
+ none: themedClass('introductionRowVariantsColorSchemeNone'),
97
+ dark: themedClass('introductionRowVariantsColorSchemeDark'),
98
+ light: themedClass('introductionRowVariantsColorSchemeLight'),
99
+ accent: themedClass('introductionRowVariantsColorSchemeAccent'),
65
100
  },
66
101
  },
67
102
  defaultVariants: {
@@ -8,4 +8,5 @@ fragment paragraphIcmsLogoElement on ParagraphIcmsLogoElement {
8
8
  }
9
9
  }
10
10
  title: fieldIcmsLinkTitle
11
+ targetBlank: fieldIcmsLinkTargetBlank
11
12
  }
@@ -2,16 +2,21 @@
2
2
  <DesignSystemOrganismsLogoElement
3
3
  :logo="logo"
4
4
  :link="link?.uri?.path"
5
+ :targetBlank="targetBlank"
5
6
  :title="title"
6
7
  :colorScheme="colorScheme"
7
- class="w-full md:w-[calc(50%-12px)]"
8
+ :class="themedClass('containerClass', 'w-full md:w-[calc(50%-12px)]')"
8
9
  />
9
10
  </template>
10
11
 
11
12
  <script lang="ts" setup>
12
13
  import type { ParagraphIcmsLogoElementFragment } from '#graphql-operations'
14
+ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
15
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
13
16
 
14
17
  defineProps<ParagraphIcmsLogoElementFragment>()
15
18
 
16
- const colorScheme = inject<string>('colorScheme')
19
+ const themedClass = useTheme('ParagraphLogoElement')
20
+
21
+ const colorScheme = inject<ColorScheme>('colorScheme')
17
22
  </script>
@@ -1,21 +1,40 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <div :class="rowClassList">
4
- <div :class="columnClassList">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <div :class="themedClass('rowClass', rowClassList)">
8
+ <div :class="themedClass('columnClass', columnClassList)">
5
9
  <DesignSystemMoleculesMediaSlider
6
10
  v-if="media && media.length > 1"
7
11
  :media="media"
8
- :colorScheme="colorScheme"
12
+ :containerClass="themedClass('mediaSliderContainerClass', 'my-0')"
13
+ :mediaClass="themedClass('mediaSliderMediaClass')"
14
+ :elementClass="
15
+ themedClass('mediaSliderElementClass', 'block w-full h-auto')
16
+ "
17
+ :figcaptionClass="themedClass('mediaSliderFigcaptionClass')"
18
+ :carouselClass="themedClass('mediaSliderCarouselClass')"
19
+ :carouselContentClass="themedClass('mediaSliderCarouselContentClass')"
20
+ :carouselItemClass="themedClass('mediaSliderCarouselItemClass')"
21
+ :carouselButtonPrevClass="
22
+ themedClass('mediaSliderCarouselButtonPrevClass')
23
+ "
24
+ :carouselButtonNextClass="
25
+ themedClass('mediaSliderCarouselButtonNextClass')
26
+ "
27
+ colorScheme="none"
9
28
  showCaption
10
- :sliderClass="mediaSliderClassList"
11
- :elementClass="mediaElementClassList"
12
29
  />
13
30
 
14
31
  <Media
15
32
  v-else-if="media && media.length === 1 && media[0]"
16
33
  :media="media[0]"
17
34
  :imageSizes="imageSizes"
18
- :elementClass="elementClassList"
35
+ :mediaClass="themedClass('mediaMediaClass')"
36
+ :elementClass="themedClass('mediaElementClass')"
37
+ :figcaptionClass="themedClass('mediaFigcaptionClass')"
19
38
  showCaption
20
39
  />
21
40
  </div>
@@ -25,31 +44,13 @@
25
44
 
26
45
  <script lang="ts" setup>
27
46
  import type { ParagraphIcmsLayoutMediaFragment } from '#graphql-operations'
47
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
28
48
 
29
49
  defineProps<ParagraphIcmsLayoutMediaFragment>()
30
50
 
31
- const { options, isEditing } = useAttrs().blokkliData
51
+ const themedClass = useTheme('ParagraphMedia')
32
52
 
33
- const mediaSliderClassList = computed(() => {
34
- const classList = ['my-0']
35
- if (options.value.width !== 'full') {
36
- classList.push('rounded-lg overflow-hidden')
37
- }
38
- return classList.join(' ')
39
- })
40
-
41
- const mediaElementClassList = computed(() => {
42
- const classList = ['display-block', 'w-full h-auto']
43
- if (options.value.width !== 'full') {
44
- classList.push('rounded-lg overflow-hidden')
45
- }
46
- return classList.join(' ')
47
- })
48
-
49
- const elementClassList = computed(() => {
50
- if (options.value.width === 'full') return ''
51
- return 'rounded-lg'
52
- })
53
+ const { options, isEditing } = useAttrs().blokkliData
53
54
 
54
55
  const colorScheme = computed(() => {
55
56
  return options.value.colorScheme
@@ -62,11 +63,11 @@ const spacing = computed(() => {
62
63
  const rowClassList = computed(() => {
63
64
  const classList = ['grid grid-cols-12 gap-6']
64
65
  if (options.value.width === 'full') {
65
- return classList
66
+ return classList.join(' ')
66
67
  }
67
68
  classList.push('container mx-auto')
68
69
 
69
- return classList
70
+ return classList.join(' ')
70
71
  })
71
72
 
72
73
  const imageSizes = computed(() => {
@@ -88,6 +89,6 @@ const columnClassList = computed(() => {
88
89
  classList.push('md:col-span-6 md:col-start-4')
89
90
  }
90
91
 
91
- return classList
92
+ return classList.join(' ')
92
93
  })
93
94
  </script>
@@ -8,4 +8,5 @@ fragment paragraphIcmsPartnershipElement on ParagraphIcmsPartnershipElement {
8
8
  }
9
9
  }
10
10
  title: fieldIcmsLinkTitle
11
+ targetBlank: fieldIcmsLinkTargetBlank
11
12
  }
@@ -2,13 +2,20 @@
2
2
  <DesignSystemMoleculesPartnership
3
3
  :logo="logo"
4
4
  :link="link?.uri?.path"
5
+ :targetBlank="targetBlank"
5
6
  :title="title"
7
+ :linkClass="themedClass('linkClass')"
8
+ :mediaClass="themedClass('mediaClass')"
9
+ :figcaptionClass="themedClass('figcaptionClass')"
10
+ :elementClass="themedClass('elementClass')"
6
11
  />
7
12
  </template>
8
13
 
9
14
  <script lang="ts" setup>
10
15
  import type { ParagraphIcmsPartnershipElementFragment } from '#graphql-operations'
16
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
11
17
 
12
18
  defineProps<ParagraphIcmsPartnershipElementFragment>()
13
19
 
20
+ const themedClass = useTheme('ParagraphPartnershipsElement')
14
21
  </script>
@@ -1,30 +1,38 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow class="md:pr-24">
4
- <div class="col-span-12">
5
- <DesignSystemAtomsGridRow
6
- :class="partnershipsRow({ colorScheme })"
7
- class=""
8
- >
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass', 'md:pr-24')">
8
+ <div :class="themedClass('columnClass', 'col-span-12')">
9
+ <DesignSystemAtomsGridRow :class="partnershipsRow({ colorScheme })">
9
10
  <div
10
- class="col-span-12 p-8 pb-0 md:col-span-6 md:p-12 md:pr-0 lg:p-16 lg:pr-0"
11
+ :class="
12
+ themedClass(
13
+ 'partnershipsRowFirstColumnClass',
14
+ 'col-span-12 p-8 pb-0 md:col-span-6 md:p-12 md:pr-0 lg:p-16 lg:pr-0',
15
+ )
16
+ "
11
17
  >
12
18
  <DesignSystemOrganismsContentBlock
13
19
  :pretitle="pretitle"
20
+ :pretitleClass="themedClass('pretitleClass')"
14
21
  :title="title"
22
+ :titleClass="themedClass('titleClass')"
15
23
  :titleWeight="titleWeight"
16
24
  :colorScheme="colorScheme"
17
25
  />
18
26
 
19
- <ul class="flex flex-col gap-4">
27
+ <ul :class="themedClass('textRowsClass', 'flex flex-col gap-4')">
20
28
  <li
21
29
  v-for="(textRow, index) in textRows"
22
30
  :key="index"
23
- class="flex items-start gap-2"
31
+ :class="themedClass('textRowClass', 'flex items-start gap-2')"
24
32
  >
25
33
  <SpriteSymbol
26
34
  name="chevron-right"
27
- class="size-6 flex-shrink-0"
35
+ :class="bulletPoint({ colorScheme })"
28
36
  />
29
37
  {{ textRow }}
30
38
  </li>
@@ -32,15 +40,21 @@
32
40
  </div>
33
41
 
34
42
  <div
35
- class="col-span-12 p-8 pt-0 md:col-span-6 md:col-start-8 md:p-12 md:pl-5 lg:p-16 lg:pl-6"
43
+ :class="
44
+ themedClass(
45
+ 'partnershipsRowSecondColumnClass',
46
+ 'col-span-12 md:col-span-6 md:col-start-8',
47
+ )
48
+ "
36
49
  >
37
50
  <Media
38
51
  v-if="image"
39
- mediaClass="aspect-square w-full"
40
52
  :media="image"
41
53
  imageAspectRatios="1/1"
42
54
  imageSizes="xs:100vw sm:100vw md:25vw lg:320px"
43
- elementClass="size-full object-cover object-center rounded-lg"
55
+ :mediaClass="themedClass('mediaClass')"
56
+ :elementClass="themedClass('elementClass')"
57
+ :figcaptionClass="themedClass('figcaptionClass')"
44
58
  />
45
59
  </div>
46
60
  </DesignSystemAtomsGridRow>
@@ -48,10 +62,19 @@
48
62
  <DesignSystemAtomsGridRow
49
63
  :class="partnershipsOffsetRow({ colorScheme })"
50
64
  >
51
- <div class="col-span-1 p-5 lg:p-8">
65
+ <div
66
+ :class="
67
+ themedClass(
68
+ 'partnershipsOffsetRowColumnClass',
69
+ 'col-span-1 p-5 lg:p-8',
70
+ )
71
+ "
72
+ >
52
73
  <DesignSystemOrganismsContentBlock
53
74
  :pretitle="overlayTitle"
75
+ :pretitleClass="themedClass('overlayTitle')"
54
76
  :text="overlayText"
77
+ :textClass="themedClass('overlayText')"
55
78
  :colorScheme="colorScheme"
56
79
  />
57
80
 
@@ -59,8 +82,13 @@
59
82
  v-if="partnershipElements"
60
83
  name="field_icms_partnership_elements"
61
84
  :list="partnershipElements"
62
- class="mt-8 flex flex-wrap xl:flex-nowrap"
63
- :class="{ droptarget: isEditing }"
85
+ :class="[
86
+ themedClass(
87
+ 'partnershipsContainerClass',
88
+ 'mt-8 flex flex-wrap xl:flex-nowrap',
89
+ ),
90
+ { droptarget: isEditing },
91
+ ]"
64
92
  />
65
93
  </div>
66
94
  </DesignSystemAtomsGridRow>
@@ -71,20 +99,32 @@
71
99
 
72
100
  <script lang="ts" setup>
73
101
  import type { ParagraphIcmsLayoutPartnershipsFragment } from '#graphql-operations'
102
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
74
103
  import { tv } from 'tailwind-variants'
75
104
 
76
105
  defineProps<ParagraphIcmsLayoutPartnershipsFragment>()
77
106
 
78
107
  const { options, isEditing } = useAttrs().blokkliData
79
108
 
109
+ const themedClass = useTheme('ParagraphPartnershipsLayout')
110
+
80
111
  const partnershipsRow = tv({
81
- base: 'rounded-lg w-full shadow-custom p-0',
112
+ base: themedClass('partnershipsRowBase', 'w-full p-0'),
82
113
  variants: {
83
114
  colorScheme: {
84
- none: 'bg-white',
85
- dark: 'bg-gray-900',
86
- light: 'bg-white',
87
- accent: 'bg-primary-700',
115
+ none: themedClass('partnershipsRowVariantsColorSchemeNone', 'bg-white'),
116
+ dark: themedClass(
117
+ 'partnershipsRowVariantsColorSchemeDark',
118
+ 'bg-gray-950',
119
+ ),
120
+ light: themedClass(
121
+ 'partnershipsRowVariantsColorSchemeLight',
122
+ 'bg-gray-50',
123
+ ),
124
+ accent: themedClass(
125
+ 'partnershipsRowVariantsColorSchemeAccent',
126
+ 'bg-primary-600',
127
+ ),
88
128
  },
89
129
  },
90
130
  defaultVariants: {
@@ -93,13 +133,46 @@ const partnershipsRow = tv({
93
133
  })
94
134
 
95
135
  const partnershipsOffsetRow = tv({
96
- base: 'rounded-lg w-full shadow-custom p-0 max-w-[75%] md:max-w-[50%] md:-mr-12 -mt-40 sm:-mt-52 relative z-10 grid-cols-1',
136
+ base: themedClass(
137
+ 'partnershipsOffsetRowBase',
138
+ 'p-0 max-w-[75%] md:max-w-[50%] md:-mr-12 -mt-40 sm:-mt-52 relative z-10 grid-cols-1',
139
+ ),
140
+ variants: {
141
+ colorScheme: {
142
+ none: themedClass(
143
+ 'partnershipsOffsetRowVariantsColorSchemeNone',
144
+ 'bg-gray-50',
145
+ ),
146
+ dark: themedClass(
147
+ 'partnershipsOffsetRowVariantsColorSchemeDark',
148
+ 'bg-gray-900',
149
+ ),
150
+ light: themedClass(
151
+ 'partnershipsOffsetRowVariantsColorSchemeLight',
152
+ 'bg-white',
153
+ ),
154
+ accent: themedClass(
155
+ 'partnershipsOffsetRowVariantsColorSchemeAccent',
156
+ 'bg-primary-700',
157
+ ),
158
+ },
159
+ },
160
+ defaultVariants: {
161
+ colorScheme: 'none',
162
+ },
163
+ })
164
+
165
+ const bulletPoint = tv({
166
+ base: themedClass('bulletPointBase', 'size-6 flex-shrink-0'),
97
167
  variants: {
98
168
  colorScheme: {
99
- none: 'bg-white',
100
- dark: 'bg-gray-900',
101
- light: 'bg-white',
102
- accent: 'bg-primary-700',
169
+ none: themedClass('bulletPointVariantsColorSchemeNone', 'text-gray-950'),
170
+ dark: themedClass('bulletPointVariantsColorSchemeDark', 'text-white'),
171
+ light: themedClass(
172
+ 'bulletPointVariantsColorSchemeLight',
173
+ 'text-gray-950',
174
+ ),
175
+ accent: themedClass('bulletPointVariantsColorSchemeAccent', 'text-white'),
103
176
  },
104
177
  },
105
178
  defaultVariants: {
@@ -1,46 +1,85 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :spacing="spacing" :colorScheme="colorScheme">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12 md:col-span-5">
2
+ <DesignSystemAtomsContainer
3
+ :spacing="spacing"
4
+ :colorScheme="colorScheme"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass')">
8
+ <div
9
+ :class="themedClass('firstColumnClass', 'col-span-12 md:col-span-5')"
10
+ >
5
11
  <DesignSystemOrganismsContentBlock
6
12
  :pretitle="pretitle"
13
+ :pretitleClass="themedClass('pretitleClass')"
7
14
  :title="title"
8
- :subtitle="subtitle"
15
+ :titleClass="themedClass('titleClass', 'mb-0')"
9
16
  :titleWeight="titleWeight"
10
17
  :titleStyle="titleStyle"
11
- titleClass="mb-0"
12
18
  :colorScheme="colorScheme"
13
19
  />
14
20
  </div>
15
- <div class="col-span-12 flex items-end md:col-span-6 md:col-start-7">
21
+ <div
22
+ :class="
23
+ themedClass(
24
+ 'secondColumnClass',
25
+ 'col-span-12 flex items-end md:col-span-6 md:col-start-7',
26
+ )
27
+ "
28
+ >
16
29
  <DesignSystemOrganismsContentBlock
17
30
  :pretitle="textplain"
18
- pretitleClass="mb-0"
31
+ :pretitleClass="themedClass('textPlainClass', 'mb-0')"
19
32
  />
20
33
  </div>
21
- <div class="col-span-12 md:col-span-5">
34
+ <div
35
+ :class="themedClass('thirdColumnClass', 'col-span-12 md:col-span-5')"
36
+ >
22
37
  <DesignSystemOrganismsContentBlock
23
38
  :subtitle="subtitle"
39
+ :subtitleClass="themedClass('subtitleClass')"
24
40
  :text="text"
41
+ :textClass="themedClass('textClass')"
25
42
  :media="media"
26
- mediaClass="size-full rounded-lg overflow-hidden"
27
- mediaSliderClass="mt-0 rounded-lg overflow-hidden"
43
+ :mediaClass="themedClass('mediaClass')"
44
+ :mediaContainerClass="themedClass('mediaContainerClass', 'mt-0')"
28
45
  :colorScheme="colorScheme"
29
46
  />
30
47
 
31
48
  <BlokkliField
32
49
  name="field_icms_buttons"
33
50
  :list="buttons"
34
- class="mt-6 flex flex-wrap gap-6"
35
- :class="[buttonAlignment, { droptarget: isEditing }]"
51
+ :class="
52
+ cn(
53
+ themedClass(
54
+ 'buttonsContainerClass',
55
+ 'mt-6 flex flex-wrap items-center gap-6',
56
+ ),
57
+ buttonAlignment,
58
+ { droptarget: isEditing },
59
+ )
60
+ "
36
61
  />
37
62
  </div>
38
- <div class="col-span-12 mt-4 md:col-span-6 md:col-start-7 md:mt-0">
63
+ <div
64
+ :class="
65
+ themedClass(
66
+ 'fourthColumnClass',
67
+ 'col-span-12 mt-4 md:col-span-6 md:col-start-7 md:mt-0',
68
+ )
69
+ "
70
+ >
39
71
  <BlokkliField
40
72
  name="field_icms_logo_elements"
41
73
  :list="logoelements"
42
- class="flex flex-wrap items-center gap-6"
43
- :class="{ droptarget: isEditing }"
74
+ :class="
75
+ cn(
76
+ themedClass(
77
+ 'logoElementsContainerClass',
78
+ 'flex flex-wrap items-center gap-6',
79
+ ),
80
+ { droptarget: isEditing },
81
+ )
82
+ "
44
83
  />
45
84
  </div>
46
85
  </DesignSystemAtomsGridRow>
@@ -49,11 +88,15 @@
49
88
 
50
89
  <script lang="ts" setup>
51
90
  import type { ParagraphIcmsLayoutTestimonialFragment } from '#graphql-operations'
91
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
92
+ import cn from '@iqual/nuxt-icms/composables/useCn'
52
93
 
53
94
  defineProps<ParagraphIcmsLayoutTestimonialFragment>()
54
95
 
55
96
  const { options, isEditing } = useAttrs().blokkliData
56
97
 
98
+ const themedClass = useTheme('ParagraphSingleTestimonial')
99
+
57
100
  const spacing = computed(() => {
58
101
  return { bottom: options.value.spacingBottom, top: options.value.spacingTop }
59
102
  })
@@ -1,25 +1,46 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :spacing="spacing" :colorScheme="colorScheme">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12 md:col-span-12">
2
+ <DesignSystemAtomsContainer
3
+ :spacing="spacing"
4
+ :colorScheme="colorScheme"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('firstRowClass')">
8
+ <div
9
+ :class="
10
+ themedClass('firstRowFirstColumnClass', 'col-span-12 md:col-span-12')
11
+ "
12
+ >
5
13
  <DesignSystemOrganismsContentBlock
6
14
  :pretitle="pretitle"
15
+ :pretitleClass="themedClass('pretitleClass')"
7
16
  :title="title"
17
+ :titleClass="themedClass('titleClass', 'mb-0')"
8
18
  :titleWeight="titleWeight"
9
19
  :titleStyle="titleStyle"
10
- titleClass="mb-0"
11
20
  :subtitle="subtitle"
21
+ :subtitleClass="themedClass('subtitleClass')"
12
22
  />
13
23
  </div>
14
- <div class="col-span-12 md:col-span-9">
15
- <DesignSystemOrganismsContentBlock :text="text" />
24
+ <div
25
+ :class="
26
+ themedClass('firstRowSecondColumnClass', 'col-span-12 md:col-span-9')
27
+ "
28
+ >
29
+ <DesignSystemOrganismsContentBlock
30
+ :text="text"
31
+ :textClass="themedClass('textClass')"
32
+ />
16
33
  </div>
17
34
  </DesignSystemAtomsGridRow>
18
- <DesignSystemAtomsGridRow class="mt-10 md:mt-20">
19
- <div class="relative col-span-12">
35
+ <DesignSystemAtomsGridRow
36
+ :class="themedClass('secondRowClass', 'mt-10 md:mt-20')"
37
+ >
38
+ <div :class="themedClass('secondRowColumnClass', 'relative col-span-12')">
20
39
  <DesignSystemMoleculesTable
21
- :table-data="tableData"
40
+ :tableData="tableData"
22
41
  :colorScheme="colorScheme"
42
+ :containerClass="themedClass('tableContainerClass')"
43
+ :tableClass="themedClass('tableClass')"
23
44
  />
24
45
  </div>
25
46
  </DesignSystemAtomsGridRow>
@@ -28,8 +49,10 @@
28
49
 
29
50
  <script lang="ts" setup>
30
51
  import type { ParagraphIcmsLayoutTableFragment } from '#graphql-operations'
52
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
31
53
 
32
54
  defineProps<ParagraphIcmsLayoutTableFragment>()
55
+ const themedClass = useTheme('ParagraphTable')
33
56
 
34
57
  const { options, parentType } = useAttrs().blokkliData
35
58