@iqual/nuxt-icms 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +125 -0
  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 +23 -0
  101. package/components/Section/Header/MainButtons.vue +31 -0
  102. package/components/Section/Header/MenuIcon.vue +60 -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 +182 -186
  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 +107 -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
@@ -2,28 +2,45 @@
2
2
  <div :class="[tabContent({ colorScheme }), { 'not-last:mb-10': isEditing }]">
3
3
  <DesignSystemOrganismsContentBlock
4
4
  :pretitle="pretitle"
5
+ :pretitleClass="themedClass('pretitleClass')"
5
6
  :title="title"
7
+ :titleClass="themedClass('titleClass')"
6
8
  :titleWeight="titleWeight"
7
9
  :titleStyle="titleStyle"
8
10
  :subtitle="subtitle"
11
+ :subtitleClass="themedClass('subtitleClass')"
9
12
  :media="media"
10
- mediaClass="size-full rounded-lg overflow-hidden"
11
- mediaSliderClass="max-w-[500px] rounded-lg overflow-hidden"
13
+ :mediaClass="themedClass('mediaClass')"
14
+ :mediaContainerClass="themedClass('mediaContainerClass', 'max-w-[500px]')"
12
15
  :text="text"
16
+ :textClass="themedClass('textClass')"
13
17
  :colorScheme="colorScheme"
14
18
  />
15
19
 
16
20
  <BlokkliField
17
21
  name="field_icms_buttons"
18
22
  :list="buttons"
19
- class="mt-8 flex flex-wrap gap-6"
20
- :class="[buttonAlignmentClass, { droptarget: isEditing }]"
23
+ :class="
24
+ cn(
25
+ themedClass(
26
+ 'buttonsContainerClass',
27
+ 'mt-8 flex flex-wrap items-center gap-6',
28
+ ),
29
+ buttonAlignmentClass,
30
+ {
31
+ droptarget: isEditing,
32
+ },
33
+ )
34
+ "
21
35
  />
22
36
  </div>
23
37
  </template>
24
38
 
25
39
  <script lang="ts" setup>
40
+ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
41
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
26
42
  import { tv } from 'tailwind-variants'
43
+ import cn from '@iqual/nuxt-icms/composables/useCn'
27
44
 
28
45
  import type { ParagraphIcmsTabElementFragment } from '#graphql-operations'
29
46
 
@@ -31,19 +48,36 @@ defineProps<ParagraphIcmsTabElementFragment>()
31
48
 
32
49
  const { isEditing } = useAttrs().blokkliData as any
33
50
 
51
+ const themedClass = useTheme()
52
+
34
53
  const tabContent = tv({
35
- base: 'm-0 rounded-b-lg p-8 text-black md:p-16',
54
+ base: themedClass(
55
+ 'tabContentBase',
56
+ 'm-0 rounded-b-lg p-8 text-black md:p-16',
57
+ ),
36
58
  variants: {
37
59
  colorScheme: {
38
- none: 'bg-white text-black',
39
- dark: 'bg-gray-900 text-white',
40
- light: 'bg-white text-black',
41
- accent: 'bg-primary-700 text-white',
60
+ none: themedClass(
61
+ 'tabContentVariantsColorSchemeNone',
62
+ 'bg-white text-black',
63
+ ),
64
+ dark: themedClass(
65
+ 'tabContentVariantsColorSchemeDark',
66
+ 'bg-gray-900 text-white',
67
+ ),
68
+ light: themedClass(
69
+ 'tabContentVariantsColorSchemeLight',
70
+ 'bg-white text-black',
71
+ ),
72
+ accent: themedClass(
73
+ 'tabContentVariantsColorSchemeAccent',
74
+ 'bg-primary-700 text-white',
75
+ ),
42
76
  },
43
77
  },
44
78
  })
45
79
 
46
- const colorScheme = inject<string>('colorScheme')
80
+ const colorScheme = inject<ColorScheme>('colorScheme')
47
81
  const buttonAlignment = inject<string>('buttonAlignment')
48
82
  const titleWeight = inject<string>('childTitleWeight')
49
83
 
@@ -1,18 +1,22 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :spacing="spacing" :colorScheme="colorScheme">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12">
2
+ <DesignSystemAtomsContainer
3
+ :spacing="spacing"
4
+ :colorScheme="colorScheme"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('firstRowClass')">
8
+ <div :class="themedClass('firstRowColumnClass', 'col-span-12')">
5
9
  <DesignSystemOrganismsContentBlock
6
10
  :title="title"
7
11
  :titleWeight="titleWeight"
8
12
  :titleStyle="titleStyle"
9
- titleClass="text-center mb-12"
13
+ :titleClass="themedClass('titleClass', 'text-center mb-12')"
10
14
  />
11
15
  </div>
12
16
  </DesignSystemAtomsGridRow>
13
- <DesignSystemAtomsGridRow>
17
+ <DesignSystemAtomsGridRow :class="themedClass('secondRowClass')">
14
18
  <div class="relative col-span-12" v-if="isEditing">
15
- <Tabs class="shadow-custom rounded-lg">
19
+ <Tabs>
16
20
  <BlokkliField
17
21
  name="field_icms_tab_elements"
18
22
  :list="tabElements"
@@ -21,15 +25,16 @@
21
25
  </Tabs>
22
26
  </div>
23
27
 
24
- <div class="relative col-span-12" v-else>
28
+ <div
29
+ :class="themedClass('secondRowColumnClass', 'relative col-span-12')"
30
+ v-else
31
+ >
25
32
  <Tabs
26
33
  v-if="!isMobile"
27
34
  default-value="tab-1"
28
- class="shadow-custom rounded-lg"
35
+ :class="themedClass('tabsClass')"
29
36
  >
30
- <TabsList
31
- class="flex flex-col items-center justify-center bg-transparent p-0 lg:flex-row dark:bg-transparent"
32
- >
37
+ <TabsList :class="tabList({ colorScheme })">
33
38
  <TabsTrigger
34
39
  v-for="(tabElement, key) in tabElements"
35
40
  :key="key"
@@ -47,16 +52,22 @@
47
52
  >
48
53
  <DesignSystemOrganismsContentBlock
49
54
  :pretitle="tabElement?.props?.pretitle"
55
+ :pretitleClass="themedClass('tabsContentPretitleClass')"
50
56
  :title="tabElement?.props?.title"
51
57
  :titleWeight="childTitleWeight"
52
58
  :titleStyle="tabElement?.props?.titleStyle"
59
+ :titleClass="themedClass('tabsContentTitleClass')"
53
60
  :subtitle="tabElement?.props?.subtitle"
61
+ :subtitleClass="themedClass('tabsContentSubtitleClass')"
54
62
  :media="tabElement?.props?.media"
55
- mediaClass="size-full rounded-lg overflow-hidden"
56
- mediaSliderClass="max-w-[500px] rounded-lg overflow-hidden"
63
+ :mediaClass="themedClass('tabsContentMediaClass')"
64
+ :mediaContainerClass="
65
+ themedClass('tabsContentMediaContainerClass', 'max-w-[500px]')
66
+ "
57
67
  :text="tabElement?.props?.text"
68
+ :textClass="themedClass('tabsContentTextClass')"
58
69
  :links="tabElement?.props?.buttons"
59
- :button-alignment="buttonAlignment"
70
+ :buttonAlignment="buttonAlignment"
60
71
  :colorScheme="colorScheme"
61
72
  />
62
73
  </TabsContent>
@@ -65,7 +76,7 @@
65
76
  <Accordion
66
77
  v-else
67
78
  type="single"
68
- class="w-full"
79
+ :class="themedClass('accordionClass', 'w-full')"
69
80
  collapsible
70
81
  default-value="accordion-1"
71
82
  >
@@ -73,7 +84,9 @@
73
84
  v-for="(tabElement, key) in tabElements"
74
85
  :key="key"
75
86
  :value="`accordion-${key + 1}`"
76
- class="mb-1 border-none [&>h3]:mb-0"
87
+ :class="
88
+ themedClass('accordionItemClass', 'mb-1 border-none [&>h3]:mb-0')
89
+ "
77
90
  >
78
91
  <AccordionTrigger
79
92
  :ref="(el: any) => (triggerRefs[key] = el)"
@@ -82,19 +95,32 @@
82
95
  >
83
96
  {{ tabElement?.props?.tabTitle }}
84
97
  </AccordionTrigger>
85
- <AccordionContent class="p-4 pb-6 text-base">
98
+ <AccordionContent
99
+ :class="
100
+ themedClass('accordionContentClass', 'p-4 pb-6 text-base')
101
+ "
102
+ >
86
103
  <DesignSystemOrganismsContentBlock
87
104
  :pretitle="tabElement?.props?.pretitle"
105
+ :pretitleClass="themedClass('accordionContentPretitleClass')"
88
106
  :title="tabElement?.props?.title"
107
+ :titleClass="themedClass('accordionContentTitleClass')"
89
108
  :titleWeight="childTitleWeight"
90
109
  :titleStyle="tabElement?.props?.titleStyle"
91
110
  :subtitle="tabElement?.props?.subtitle"
111
+ :subtitleClass="themedClass('accordionContentSubtitleClass')"
92
112
  :media="tabElement?.props?.media"
93
- mediaClass="size-full rounded-lg overflow-hidden"
94
- mediaSliderClass="max-w-[500px] rounded-lg overflow-hidden"
113
+ :mediaClass="themedClass('accordionContentMediaClass')"
114
+ :mediaContainerClass="
115
+ themedClass(
116
+ 'accordionContentMediaContainerClass',
117
+ 'max-w-[500px]',
118
+ )
119
+ "
95
120
  :text="tabElement?.props?.text"
121
+ :textClass="themedClass('accordionContentTextClass')"
96
122
  :links="tabElement?.props?.buttons"
97
- :button-alignment="buttonAlignment"
123
+ :buttonAlignment="buttonAlignment"
98
124
  :colorScheme="colorScheme"
99
125
  />
100
126
  </AccordionContent>
@@ -107,6 +133,7 @@
107
133
 
108
134
  <script lang="ts" setup>
109
135
  import { tv } from 'tailwind-variants'
136
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
110
137
  import { useAccordionScroll } from '@iqual/nuxt-icms/composables/useAccordionScroll'
111
138
 
112
139
  import type { ParagraphIcmsLayoutTabsFragment } from '#graphql-operations'
@@ -115,42 +142,101 @@ const props = defineProps<ParagraphIcmsLayoutTabsFragment>()
115
142
 
116
143
  const { options, isEditing } = useAttrs().blokkliData as any
117
144
 
145
+ const themedClass = useTheme()
118
146
  const { isMobile } = useIsMobile()
119
147
 
148
+ const tabList = tv({
149
+ base: themedClass(
150
+ 'tabListBase',
151
+ 'rounded-none flex flex-col items-center justify-center bg-transparent p-0 lg:flex-row dark:bg-transparent border-b',
152
+ ),
153
+ variants: {
154
+ colorScheme: {
155
+ none: themedClass('tabListVariantsColorSchemeNone', 'border-gray-200'),
156
+ dark: themedClass('tabListVariantsColorSchemeDark', 'border-gray-950'),
157
+ light: themedClass('tabListVariantsColorSchemeLight', 'border-gray-100'),
158
+ accent: themedClass(
159
+ 'tabListVariantsColorSchemeAccent',
160
+ 'border-primary-900',
161
+ ),
162
+ },
163
+ },
164
+ })
165
+
120
166
  const tabTrigger = tv({
121
- base: 'inline-flex w-full flex-1 items-center justify-center whitespace-nowrap rounded-none rounded-t-lg py-4 text-base shadow-custom-inner transition-all disabled:pointer-events-none lg:w-fit data-[state=active]:shadow-none',
167
+ base: themedClass(
168
+ 'tabTriggerBase',
169
+ 'inline-flex w-full flex-1 items-center justify-center whitespace-nowrap rounded-none data-[state=active]:shadow-none py-4 text-base transition-all disabled:pointer-events-none lg:w-fit not-last:border-r',
170
+ ),
122
171
  variants: {
123
172
  colorScheme: {
124
- none: 'bg-white dark:bg-white text-black dark:text-black data-[state=active]:bg-white dark:data-[state=active]:bg-white dark:data-[state=active]:text-black',
125
- dark: 'bg-gray-700 dark:bg-gray-700 text-white dark:text-white data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-900 data-[state=active]:text-white',
126
- light:
127
- 'bg-white dark:bg-white text-black dark:text-black data-[state=active]:bg-white dark:data-[state=active]:bg-white dark:data-[state=active]:text-black',
128
- accent:
129
- 'bg-primary-600 dark:bg-primary-600 text-white dark:text-white data-[state=active]:bg-primary-700 dark:data-[state=active]:bg-primary-700 data-[state=active]:text-white',
173
+ none: themedClass(
174
+ 'tabTriggerVariantsColorSchemeNone',
175
+ 'bg-gray-50 dark:bg-gray-50 text-black dark:text-black data-[state=active]:bg-gray-100 dark:data-[state=active]:bg-gray-100 dark:data-[state=active]:text-black border-gray-200',
176
+ ),
177
+ dark: themedClass(
178
+ 'tabTriggerVariantsColorSchemeDark',
179
+ 'bg-gray-800 dark:bg-gray-800 text-white dark:text-white data-[state=active]:bg-gray-900 dark:data-[state=active]:bg-gray-900 data-[state=active]:text-white border-gray-950',
180
+ ),
181
+ light: themedClass(
182
+ 'tabTriggerVariantsColorSchemeLight',
183
+ 'bg-white dark:bg-white text-black dark:text-black data-[state=active]:bg-gray-100 dark:data-[state=active]:bg-gray-100 dark:data-[state=active]:text-black border-gray-100',
184
+ ),
185
+ accent: themedClass(
186
+ 'tabTriggerVariantsColorSchemeAccent',
187
+ 'bg-primary-700 dark:bg-primary-700 text-white dark:text-white data-[state=active]:bg-primary-800 dark:data-[state=active]:bg-primary-800 data-[state=active]:text-white border-primary-900',
188
+ ),
130
189
  },
131
190
  },
132
191
  })
133
192
 
134
193
  const tabContent = tv({
135
- base: 'm-0 rounded-b-lg p-8 text-black md:p-16',
194
+ base: themedClass('tabContentBase', 'm-0 p-8 text-black md:p-16'),
136
195
  variants: {
137
196
  colorScheme: {
138
- none: 'bg-white text-black',
139
- dark: 'bg-gray-900 text-white',
140
- light: 'bg-white text-black',
141
- accent: 'bg-primary-700 text-white',
197
+ none: themedClass(
198
+ 'tabContentVariantsColorSchemeNone',
199
+ 'bg-gray-50 text-black',
200
+ ),
201
+ dark: themedClass(
202
+ 'tabContentVariantsColorSchemeDark',
203
+ 'bg-gray-900 text-white',
204
+ ),
205
+ light: themedClass(
206
+ 'tabContentVariantsColorSchemeLight',
207
+ 'bg-white text-black',
208
+ ),
209
+ accent: themedClass(
210
+ 'tabContentVariantsColorSchemeAccent',
211
+ 'bg-primary-700 text-white',
212
+ ),
142
213
  },
143
214
  },
144
215
  })
145
216
 
146
217
  const accordionTrigger = tv({
147
- base: 'items-center rounded-lg px-6 py-4 shadow-custom-small hover:no-underline gap-4 text-left text-base',
218
+ base: themedClass(
219
+ 'accordionTriggerBase',
220
+ 'items-center px-6 py-4 hover:no-underline gap-4 text-left text-base',
221
+ ),
148
222
  variants: {
149
223
  colorScheme: {
150
- none: 'bg-white text-black',
151
- dark: 'bg-gray-900 text-white',
152
- light: 'bg-white text-black',
153
- accent: 'bg-primary-700 text-white',
224
+ none: themedClass(
225
+ 'accordionVariantsColorSchemeNone',
226
+ 'bg-gray-50 text-black',
227
+ ),
228
+ dark: themedClass(
229
+ 'accordionVariantsColorSchemeDark',
230
+ 'bg-gray-900 text-white',
231
+ ),
232
+ light: themedClass(
233
+ 'accordionVariantsColorSchemeLight',
234
+ 'bg-white text-black',
235
+ ),
236
+ accent: themedClass(
237
+ 'accordionVariantsColorSchemeAccent',
238
+ 'bg-primary-700 text-white',
239
+ ),
154
240
  },
155
241
  },
156
242
  })
@@ -10,14 +10,31 @@
10
10
  :image="image"
11
11
  :buttons="buttons"
12
12
  :colorScheme="colorScheme"
13
+ :containerClass="themedClass('containerClass')"
14
+ :mediaClass="themedClass('mediaClass')"
15
+ :figcaptionClass="themedClass('figcaptionClass')"
16
+ :elementClass="themedClass('elementClass')"
17
+ :textContainerClass="themedClass('textContainerClass')"
18
+ :titleClass="themedClass('titleClass')"
19
+ :subtitleClass="themedClass('subtitleClass')"
20
+ :textClass="themedClass('textClass')"
21
+ :contactButtonsContainerClass="themedClass('contactButtonsContainerClass')"
22
+ :buttonsContainerClass="themedClass('buttonsContainerClass')"
23
+ :buttonClass="themedClass('buttonClass')"
24
+ :labelClass="themedClass('labelClass')"
25
+ :sublineClass="themedClass('sublineClass')"
13
26
  />
14
27
  </template>
15
28
 
16
29
  <script lang="ts" setup>
17
30
  import type { ParagraphIcmsTeamElementFragment } from '#graphql-operations'
31
+ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
32
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
18
33
 
19
34
  defineProps<ParagraphIcmsTeamElementFragment>()
20
35
 
21
- const colorScheme = inject<string>('colorScheme')
36
+ const themedClass = useTheme()
37
+
38
+ const colorScheme = inject<ColorScheme>('colorScheme')
22
39
  const titleWeight = inject<string>('titleWeight')
23
40
  </script>
@@ -1,20 +1,31 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12 md:col-span-12">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass')">
8
+ <div
9
+ :class="themedClass('firstColumnClass', 'col-span-12 md:col-span-12')"
10
+ >
5
11
  <DesignSystemOrganismsContentBlock
6
12
  :pretitle="pretitle"
13
+ :pretitleClass="themedClass('pretitleClass')"
7
14
  :title="title"
15
+ :titleClass="themedClass('titleClass', 'mb-0')"
8
16
  :subtitle="subtitle"
17
+ :subtitleClass="themedClass('subtitleClass')"
9
18
  :titleWeight="titleWeight"
10
19
  :titleStyle="titleStyle"
11
- titleClass="mb-0"
12
20
  :colorScheme="colorScheme"
13
21
  />
14
22
  </div>
15
- <div class="col-span-12 md:col-span-9">
23
+ <div
24
+ :class="themedClass('secondColumnClass', 'col-span-12 md:col-span-9')"
25
+ >
16
26
  <DesignSystemOrganismsContentBlock
17
27
  :text="text"
28
+ :textClass="themedClass('textClass')"
18
29
  :colorScheme="colorScheme"
19
30
  />
20
31
  </div>
@@ -23,19 +34,31 @@
23
34
  <BlokkliField
24
35
  name="field_icms_team_elements"
25
36
  :list="teamElements"
26
- class="container mx-auto mt-10 grid gap-6 md:mt-20"
27
- :class="['grid-3-col', { droptarget: isEditing }]"
37
+ :class="
38
+ cn(
39
+ 'grid-3-col',
40
+ themedClass(
41
+ 'teamElementsContainerClass',
42
+ 'container mx-auto mt-10 grid gap-6 md:mt-20 md:gap-12',
43
+ ),
44
+ { droptarget: isEditing },
45
+ )
46
+ "
28
47
  />
29
48
  </DesignSystemAtomsContainer>
30
49
  </template>
31
50
 
32
51
  <script lang="ts" setup>
33
52
  import type { ParagraphIcmsLayoutTeamFragment } from '#graphql-operations'
53
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
54
+ import cn from '@iqual/nuxt-icms/composables/useCn'
34
55
 
35
56
  const props = defineProps<ParagraphIcmsLayoutTeamFragment>()
36
57
 
37
58
  const { options, isEditing } = useAttrs().blokkliData
38
59
 
60
+ const themedClass = useTheme()
61
+
39
62
  const colorScheme = computed(() => {
40
63
  return options.value.colorScheme
41
64
  })
@@ -1,20 +1,35 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12 md:col-span-12">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
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
  :colorScheme="colorScheme"
12
21
  />
13
22
  </div>
14
- <div class="col-span-12 md:col-span-9">
23
+ <div
24
+ :class="
25
+ themedClass('firstRowSecondColumnClass', 'col-span-12 md:col-span-9')
26
+ "
27
+ >
15
28
  <DesignSystemOrganismsContentBlock
16
29
  :subtitle="subtitle"
30
+ :subtitleClass="themedClass('subtitleClass')"
17
31
  :text="text"
32
+ :textClass="themedClass('textClass')"
18
33
  :titleWeight="titleWeight"
19
34
  :titleStyle="titleStyle"
20
35
  :colorScheme="colorScheme"
@@ -22,17 +37,28 @@
22
37
  </div>
23
38
  </DesignSystemAtomsGridRow>
24
39
 
25
- <DesignSystemAtomsGridRow class="grid-4-col mt-10 md:mt-20">
26
- <component v-for="teaser in teasers" :is="teaserComponent(teaser?.bundle)" v-bind="teaser" />
40
+ <DesignSystemAtomsGridRow
41
+ :class="
42
+ themedClass('secondRowClass', 'grid-4-col mt-10 gap-y-12 md:mt-20')
43
+ "
44
+ >
45
+ <component
46
+ v-for="teaser in teasers"
47
+ :is="teaserComponent(teaser?.bundle)"
48
+ v-bind="teaser"
49
+ />
27
50
  </DesignSystemAtomsGridRow>
28
51
  </DesignSystemAtomsContainer>
29
52
  </template>
30
53
 
31
54
  <script lang="ts" setup>
32
55
  import type { ParagraphIcmsLayoutTeasersFragment } from '#graphql-operations'
56
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
33
57
 
34
58
  const props = defineProps<ParagraphIcmsLayoutTeasersFragment>()
35
59
 
60
+ const themedClass = useTheme()
61
+
36
62
  const { options, parentType } = useAttrs().blokkliData as any
37
63
 
38
64
  const colorScheme = computed(() => {
@@ -1,29 +1,54 @@
1
1
  <template>
2
2
  <CarouselItem
3
- class="flex flex-col flex-wrap justify-center"
4
- :class="{ 'not-last:mb-10 not-last:border-b-1 not-last:pb-10': isEditing }"
3
+ :class="
4
+ cn(
5
+ themedClass(
6
+ 'carouselItemClass',
7
+ 'flex flex-col flex-wrap justify-center',
8
+ ),
9
+ { 'not-last:mb-10 not-last:border-b-1 not-last:pb-10': isEditing },
10
+ )
11
+ "
5
12
  >
6
13
  <DesignSystemOrganismsTestimonial
7
14
  :title="title"
8
15
  :titleWeight="titleWeight"
9
16
  :text="text"
10
17
  :image="image"
11
- :first-name="firstName"
12
- :last-name="lastName"
18
+ :firstName="firstName"
19
+ :lastName="lastName"
13
20
  :position="position"
14
21
  :logo="logo"
15
22
  :colorScheme="colorScheme"
23
+ :containerClass="themedClass('containerClass')"
24
+ :titleClass="themedClass('titleClass')"
25
+ :textClass="themedClass('textClass')"
26
+ :mediaClass="themedClass('mediaClass')"
27
+ :figcaptionClass="themedClass('figcaptionClass')"
28
+ :elementClass="themedClass('elementClass')"
29
+ :authorContainerClass="themedClass('authorContainerClass')"
30
+ :authorNameContainerClass="themedClass('authorNameContainerClass')"
31
+ :authorNameClass="themedClass('authorNameClass')"
32
+ :authorPositionClass="themedClass('authorPositionClass')"
33
+ :logoMediaClass="themedClass('logoMediaClass')"
34
+ :logoFigcaptionClass="themedClass('logoFigcaptionClass')"
35
+ :logoElementClass="themedClass('logoElementClass')"
16
36
  />
17
37
  </CarouselItem>
18
38
  </template>
19
39
 
20
40
  <script lang="ts" setup>
21
41
  import type { ParagraphIcmsTestimonialElementFragment } from '#graphql-operations'
42
+ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
43
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
44
+ import cn from '@iqual/nuxt-icms/composables/useCn'
22
45
 
23
46
  defineProps<ParagraphIcmsTestimonialElementFragment>()
24
47
 
48
+ const themedClass = useTheme()
49
+
25
50
  const { isEditing } = useAttrs().blokkliData
26
51
 
27
- const colorScheme = inject<string>('colorScheme')
52
+ const colorScheme = inject<ColorScheme>('colorScheme')
28
53
  const titleWeight = inject<string>('titleWeight')
29
54
  </script>