@iqual/nuxt-icms 1.3.1 → 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 +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 +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
@@ -1,18 +1,33 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :spacing="spacing" :colorScheme="colorScheme">
3
- <DesignSystemAtomsGridRow>
4
- <div class="col-span-12 md:col-span-4">
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-4')"
10
+ >
5
11
  <DesignSystemOrganismsContentBlock
6
12
  :pretitle="pretitle"
13
+ :pretitleClass="themedClass('pretitleClass')"
7
14
  :title="title"
15
+ :titleClass="themedClass('titleClass', 'mb-0')"
8
16
  :titleWeight="titleWeight"
9
17
  :titleStyle="titleStyle"
10
- titleClass="mb-0"
11
18
  :subtitle="subtitle"
19
+ :subtitleClass="themedClass('subtitleClass')"
12
20
  :colorScheme="colorScheme"
13
21
  />
14
22
  </div>
15
- <div class="col-span-12 md:col-span-7 md:col-start-6">
23
+ <div
24
+ :class="
25
+ themedClass(
26
+ 'secondColumnClass',
27
+ 'col-span-12 md:col-span-7 md:col-start-6',
28
+ )
29
+ "
30
+ >
16
31
  <!-- Slider -->
17
32
  <Carousel :class="carousel({ colorScheme })">
18
33
  <BlokkliField
@@ -30,21 +45,37 @@
30
45
  proxy-mode
31
46
  v-else
32
47
  >
33
- <CarouselContent>
48
+ <CarouselContent :class="themedClass('carouselContent')">
34
49
  <BlokkliItem v-for="item in items" v-bind="item" />
35
50
  </CarouselContent>
36
51
  </BlokkliField>
37
52
  <CarouselPrevious
38
- class="left-3 xl:left-16"
39
- :class="carouselButton({ colorScheme })"
53
+ :class="
54
+ cn(
55
+ themedClass('carouselButtonPrevClass', 'left-3 xl:left-16'),
56
+ carouselButton({ colorScheme }),
57
+ )
58
+ "
40
59
  >
41
- <ChevronLeft :size="24" :stroke-width="1" />
60
+ <ChevronLeft
61
+ :size="24"
62
+ :stroke-width="1"
63
+ :class="themedClass('carouselButtonPrevIconClass')"
64
+ />
42
65
  </CarouselPrevious>
43
66
  <CarouselNext
44
- class="right-3 xl:right-16"
45
- :class="carouselButton({ colorScheme })"
67
+ :class="
68
+ cn(
69
+ themedClass('carouselButtonNextClass', 'right-3 xl:right-16'),
70
+ carouselButton({ colorScheme }),
71
+ )
72
+ "
46
73
  >
47
- <ChevronRight :size="24" :stroke-width="1" />
74
+ <ChevronRight
75
+ :size="24"
76
+ :stroke-width="1"
77
+ :class="themedClass('carouselButtonNextIconClass')"
78
+ />
48
79
  </CarouselNext>
49
80
  </Carousel>
50
81
  </div>
@@ -54,21 +85,31 @@
54
85
 
55
86
  <script lang="ts" setup>
56
87
  import type { ParagraphIcmsLayoutTestimonialsFragment } from '#graphql-operations'
88
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
57
89
  import { tv } from 'tailwind-variants'
90
+ import cn from '@iqual/nuxt-icms/composables/useCn'
58
91
  import { ChevronLeft, ChevronRight } from 'lucide-vue-next'
59
92
 
60
93
  const props = defineProps<ParagraphIcmsLayoutTestimonialsFragment>()
61
94
 
62
95
  const { options, isEditing } = useAttrs().blokkliData
63
96
 
97
+ const themedClass = useTheme()
98
+
64
99
  const carousel = tv({
65
- base: 'rounded-lg px-16 py-8 shadow-custom xl:px-40 xl:py-12',
100
+ base: themedClass('carouselBase', 'px-16 py-8 xl:px-40 xl:py-12'),
66
101
  variants: {
67
102
  colorScheme: {
68
- none: 'bg-white',
69
- dark: 'bg-gray-900 text-white',
70
- light: 'bg-white',
71
- accent: 'bg-primary-700 text-white',
103
+ none: themedClass('carouselVariantsColorSchemeNone', 'bg-gray-50'),
104
+ dark: themedClass(
105
+ 'carouselVariantsColorSchemeDark',
106
+ 'bg-gray-900 text-white',
107
+ ),
108
+ light: themedClass('carouselVariantsColorSchemeLight', 'bg-white'),
109
+ accent: themedClass(
110
+ 'carouselVariantsColorSchemeAccent',
111
+ 'bg-primary-700 text-white',
112
+ ),
72
113
  },
73
114
  },
74
115
  defaultVariants: {
@@ -77,15 +118,28 @@ const carousel = tv({
77
118
  })
78
119
 
79
120
  const carouselButton = tv({
80
- base: 'size-10 border-none disabled:opacity-40 @sm:size:12 @md:size-16 [&_svg]:size-auto',
121
+ base: themedClass(
122
+ 'carouselButtonBase',
123
+ 'shadow-none size-10 border-none disabled:opacity-40 @sm:size:12 @md:size-16 [&_svg]:size-auto',
124
+ ),
81
125
  variants: {
82
126
  colorScheme: {
83
- none: 'bg-gray-50 text-black hover:bg-black hover:text-white dark:bg-gray-50 dark:text-black hover:dark:bg-black hover:dark:text-white',
84
- dark: 'bg-black text-white hover:bg-gray-50 hover:text-black dark:bg-black dark:text-white hover:dark:bg-gray-50 hover:dark:text-black',
85
- light:
86
- 'bg-gray-50 text-black hover:bg-black hover:text-white dark:bg-gray-50 dark:text-black hover:dark:bg-black hover:dark:text-white',
87
- accent:
88
- 'bg-primary-600 text-white hover:bg-primary-800 hover:text-white dark:bg-primary-600 dark:text-white hover:dark:bg-primary-800 hover:dark:text-white',
127
+ none: themedClass(
128
+ 'carouselButtonVariantsColorSchemeNone',
129
+ 'bg-white text-black hover:bg-gray-100 dark:bg-white dark:text-black hover:dark:bg-gray-100',
130
+ ),
131
+ dark: themedClass(
132
+ 'carouselButtonVariantsColorSchemeDark',
133
+ 'bg-gray-800 text-white hover:bg-gray-950 dark:bg-gray-800 dark:text-white hover:dark:bg-gray-950',
134
+ ),
135
+ light: themedClass(
136
+ 'carouselButtonVariantsColorSchemeLight',
137
+ 'bg-gray-50 text-black hover:bg-gray-100 dark:bg-gray-50 dark:text-black hover:dark:bg-gray-100',
138
+ ),
139
+ accent: themedClass(
140
+ 'carouselButtonVariantsColorSchemeAccent',
141
+ 'bg-primary-600 text-white hover:bg-primary-800 dark:bg-primary-600 dark:text-white hover:dark:bg-primary-800',
142
+ ),
89
143
  },
90
144
  },
91
145
  defaultVariants: {
@@ -1,12 +1,20 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow>
4
- <div :class="textWrapperClassList">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass')">
8
+ <div :class="themedClass('columnClass', textWrapperClassList)">
5
9
  <DesignSystemOrganismsContentBlock
6
10
  :pretitle="pretitle"
11
+ :pretitleClass="themedClass('pretitleClass')"
7
12
  :title="title"
13
+ :titleClass="themedClass('titleClass')"
8
14
  :subtitle="subtitle"
15
+ :subtitleClass="themedClass('subtitleClass')"
9
16
  :text="text"
17
+ :textClass="themedClass('textClass')"
10
18
  :titleWeight="titleWeight"
11
19
  :titleStyle="titleStyle"
12
20
  :text-columns="textColumns"
@@ -15,8 +23,16 @@
15
23
  <BlokkliField
16
24
  name="field_icms_buttons"
17
25
  :list="buttons"
18
- class="mt-8 flex flex-wrap gap-6"
19
- :class="[buttonAlignment, { droptarget: isEditing }]"
26
+ :class="
27
+ cn(
28
+ themedClass(
29
+ 'buttonsContainerClass',
30
+ 'mt-8 flex flex-wrap items-center gap-6',
31
+ ),
32
+ buttonAlignment,
33
+ { droptarget: isEditing },
34
+ )
35
+ "
20
36
  />
21
37
  </div>
22
38
  </DesignSystemAtomsGridRow>
@@ -25,16 +41,22 @@
25
41
 
26
42
  <script lang="ts" setup>
27
43
  import type { ParagraphIcmsLayoutTextFragment } from '#graphql-operations'
28
- const props = defineProps<ParagraphIcmsLayoutTextFragment>()
44
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
45
+ import cn from '@iqual/nuxt-icms/composables/useCn'
46
+
47
+ defineProps<ParagraphIcmsLayoutTextFragment>()
48
+
49
+ const themedClass = useTheme()
50
+
29
51
  const { options, isEditing } = useAttrs().blokkliData
30
52
 
31
53
  const textWrapperClassList = computed(() => {
32
54
  if (options.value.textWidth === 'medium') {
33
- return ['col-span-8', 'col-start-3']
55
+ return 'col-span-8 col-start-3'
34
56
  } else if (options.value.textWidth === 'narrow') {
35
- return ['col-span-8', 'col-start-3', 'md:col-span-6', 'md:col-start-4']
57
+ return 'col-span-8 col-start-3 md:col-span-6 md:col-start-4'
36
58
  }
37
- return ['col-span-12']
59
+ return 'col-span-12'
38
60
  })
39
61
 
40
62
  const textColumns = computed(() => {
@@ -63,4 +85,4 @@ const buttonAlignment = computed(() => {
63
85
  })
64
86
 
65
87
  provide('colorScheme', colorScheme)
66
- </script>
88
+ </script>
@@ -1,33 +1,60 @@
1
1
  <template>
2
- <DesignSystemAtomsContainer :colorScheme="colorScheme" :spacing="spacing">
3
- <DesignSystemAtomsGridRow>
4
- <div :class="textColumnClassList">
2
+ <DesignSystemAtomsContainer
3
+ :colorScheme="colorScheme"
4
+ :spacing="spacing"
5
+ :class="themedClass('containerClass')"
6
+ >
7
+ <DesignSystemAtomsGridRow :class="themedClass('rowClass')">
8
+ <div :class="themedClass('firstColumnClass', textColumnClassList)">
5
9
  <DesignSystemOrganismsContentBlock
6
10
  :pretitle="pretitle"
7
- pretitleClass="mb-2.5"
11
+ :pretitleClass="themedClass('pretitleClass', 'mb-2.5')"
8
12
  :title="title"
13
+ :titleClass="themedClass('titleClass', 'mb-5')"
9
14
  :subtitle="subtitle"
15
+ :subtitleClass="themedClass('subtitleClass')"
10
16
  :titleWeight="titleWeight"
11
17
  :titleStyle="titleStyle"
12
- titleClass="mb-5"
13
18
  :text="text"
19
+ :textClass="themedClass('textClass')"
14
20
  :colorScheme="colorScheme"
15
21
  />
16
22
  <BlokkliField
17
23
  name="field_icms_buttons"
18
24
  :list="buttons"
19
- class="mt-6 flex flex-wrap gap-6"
20
- :class="[buttonAlignment, { droptarget: isEditing }]"
25
+ :class="
26
+ cn(
27
+ themedClass(
28
+ 'buttonsContainerClass',
29
+ 'mt-6 flex flex-wrap items-center gap-6',
30
+ ),
31
+ buttonAlignment,
32
+ { droptarget: isEditing },
33
+ )
34
+ "
21
35
  />
22
36
  </div>
23
- <div :class="imageColumnClassList">
37
+ <div :class="themedClass('secondColumnClass', imageColumnClassList)">
24
38
  <DesignSystemMoleculesMediaSlider
25
39
  v-if="media && media.length"
26
40
  :media="media"
27
- :colorScheme="colorScheme"
28
- mediaClass="size-full rounded-lg overflow-hidden"
29
- sliderClass="my-0 rounded-lg overflow-hidden"
30
41
  imageSizes="xs:100vw sm:100vw md:50vw lg:640px"
42
+ :containerClass="themedClass('containerClass', 'my-0')"
43
+ :mediaClass="themedClass('mediaClass')"
44
+ :elementClass="themedClass('elementClass')"
45
+ :figcaptionClass="themedClass('figcaptionClass')"
46
+ :carouselClass="themedClass('carouselClass')"
47
+ :carouselContentClass="themedClass('carouselContentClass')"
48
+ :carouselItemClass="themedClass('carouselItemClass')"
49
+ :carouselButtonPrevClass="themedClass('carouselButtonPrevClass')"
50
+ :carouselButtonPrevIconClass="
51
+ themedClass('carouselButtonPrevIconClass')
52
+ "
53
+ :carouselButtonNextClass="themedClass('carouselButtonNextClass')"
54
+ :carouselButtonNextIconClass="
55
+ themedClass('carouselButtonNextIconClass')
56
+ "
57
+ colorScheme="none"
31
58
  />
32
59
  </div>
33
60
  </DesignSystemAtomsGridRow>
@@ -36,11 +63,15 @@
36
63
 
37
64
  <script lang="ts" setup>
38
65
  import type { ParagraphIcmsLayoutTextMediaFragment } from '#graphql-operations'
66
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
67
+ import cn from '@iqual/nuxt-icms/composables/useCn'
39
68
 
40
69
  defineProps<ParagraphIcmsLayoutTextMediaFragment>()
41
70
 
42
71
  const { options, isEditing } = useAttrs().blokkliData
43
72
 
73
+ const themedClass = useTheme()
74
+
44
75
  const reverseColumns = ref(false)
45
76
 
46
77
  watch(
@@ -75,7 +106,7 @@ const textColumnClassList = computed(() => {
75
106
  }
76
107
  }
77
108
 
78
- return classList
109
+ return classList.join(' ')
79
110
  })
80
111
 
81
112
  const imageColumnClassList = computed(() => {
@@ -104,7 +135,7 @@ const imageColumnClassList = computed(() => {
104
135
  }
105
136
  }
106
137
 
107
- return classList
138
+ return classList.join(' ')
108
139
  })
109
140
 
110
141
  const colorScheme = computed(() => {
@@ -2,30 +2,46 @@
2
2
  <DesignSystemOrganismsTimelineElement
3
3
  :pretitle="pretitle"
4
4
  :title="title"
5
- :title-style="titleStyle"
6
- :title-weight="titleWeight"
5
+ :titleStyle="titleStyle"
6
+ :titleWeight="titleWeight"
7
7
  :subtitle="subtitle"
8
8
  :text="text"
9
9
  :media="media"
10
10
  :buttons="buttons"
11
- :color-scheme="colorScheme"
12
- :has-decorative-line="false"
13
- :reverse-columns="reverseColumns"
14
- :is-editing="isEditing"
11
+ :colorCcheme="colorScheme"
12
+ :hasDecorativeLine="false"
13
+ :reverseColumns="reverseColumns"
14
+ :isEditing="isEditing"
15
+ :containerClass="themedClass('containerClass')"
16
+ :firstColumnClass="themedClass('firstColumnClass')"
17
+ :secondColumnClass="themedClass('secondColumnClass')"
18
+ :pretitleClass="themedClass('pretitleClass')"
19
+ :titleClass="themedClass('titleClass')"
20
+ :subtitleClass="themedClass('subtitleClass')"
21
+ :textClass="themedClass('textClass')"
22
+ :buttonsContainerClass="themedClass('buttonsContainerClass')"
23
+ :mediaContainerClass="themedClass('mediaContainerClass')"
24
+ :mediaClass="themedClass('mediaClass')"
25
+ :figcaptionClass="themedClass('figcaptionClass')"
26
+ :elementClass="themedClass('elementClass')"
15
27
  />
16
28
  </template>
17
29
 
18
30
  <script lang="ts" setup>
19
31
  import type { ParagraphIcmsTimelineElementFragment } from '#graphql-operations'
32
+ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
33
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
20
34
 
21
35
  defineProps<ParagraphIcmsTimelineElementFragment>()
22
36
 
37
+ const themedClass = useTheme()
38
+
23
39
  const { options, isEditing } = useAttrs().blokkliData
24
40
 
25
41
  const reverseColumns = computed(() => {
26
42
  return Boolean(Number(options.value.reverseColumns))
27
43
  })
28
44
 
29
- const colorScheme = inject<string>('colorScheme')
45
+ const colorScheme = inject<ColorScheme>('colorScheme')
30
46
  const titleWeight = inject<string>('titleWeight')
31
47
  </script>