@iqual/nuxt-icms 1.4.0 → 1.4.2

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 (85) hide show
  1. package/components/DesignSystem/Atoms/Button.vue +1 -1
  2. package/components/DesignSystem/Atoms/Caption.vue +1 -1
  3. package/components/DesignSystem/Atoms/Container.vue +1 -1
  4. package/components/DesignSystem/Atoms/GridRow.vue +1 -1
  5. package/components/DesignSystem/Atoms/LinkListItem.vue +1 -1
  6. package/components/DesignSystem/Molecules/ButtonGroup.vue +1 -1
  7. package/components/DesignSystem/Molecules/Card.vue +1 -1
  8. package/components/DesignSystem/Molecules/IconText.vue +1 -1
  9. package/components/DesignSystem/Molecules/MediaLightbox.vue +1 -1
  10. package/components/DesignSystem/Molecules/MediaSlider.vue +1 -1
  11. package/components/DesignSystem/Molecules/Partnership.vue +1 -1
  12. package/components/DesignSystem/Molecules/Table.vue +1 -1
  13. package/components/DesignSystem/Molecules/TitleComposition.vue +1 -1
  14. package/components/DesignSystem/Organisms/ContentBlock.vue +1 -1
  15. package/components/DesignSystem/Organisms/FacetedListing.vue +1 -1
  16. package/components/DesignSystem/Organisms/FlipTeaser.vue +1 -1
  17. package/components/DesignSystem/Organisms/HeaderHero.vue +1 -1
  18. package/components/DesignSystem/Organisms/HeaderTextImage.vue +1 -1
  19. package/components/DesignSystem/Organisms/LogoElement.vue +1 -1
  20. package/components/DesignSystem/Organisms/SearchResults.vue +1 -1
  21. package/components/DesignSystem/Organisms/TeamElement.vue +1 -1
  22. package/components/DesignSystem/Organisms/TeaserCard.vue +1 -1
  23. package/components/DesignSystem/Organisms/Testimonial.vue +1 -1
  24. package/components/DesignSystem/Organisms/TimelineElement.vue +1 -1
  25. package/components/DesignSystem/Organisms/TwoColumnTextElement.vue +1 -1
  26. package/components/DesignSystem/Pages/Search.vue +1 -1
  27. package/components/Drupal/Breadcrumb/index.vue +1 -1
  28. package/components/Drupal/Messages/index.vue +1 -1
  29. package/components/Drupal/Webform/index.vue +1 -1
  30. package/components/Media/Icon/index.vue +1 -1
  31. package/components/Media/Image/index.vue +1 -1
  32. package/components/Media/RemoteVideo/index.vue +1 -1
  33. package/components/Media/Video/index.vue +1 -1
  34. package/components/Paragraph/Button/Element/index.vue +1 -1
  35. package/components/Paragraph/CallToAction/index.vue +1 -1
  36. package/components/Paragraph/Card/Layout/index.vue +1 -1
  37. package/components/Paragraph/Contact/index.vue +1 -1
  38. package/components/Paragraph/Downloads/index.vue +1 -1
  39. package/components/Paragraph/FAQ/Element/index.vue +1 -1
  40. package/components/Paragraph/FAQ/Layout/index.vue +1 -1
  41. package/components/Paragraph/FlipTeasers/index.vue +1 -1
  42. package/components/Paragraph/Gallery/index.vue +1 -1
  43. package/components/Paragraph/HeroImage/index.vue +1 -1
  44. package/components/Paragraph/IconText/Element/index.vue +1 -1
  45. package/components/Paragraph/IconText/Layout/index.vue +1 -1
  46. package/components/Paragraph/Introduction/index.vue +1 -1
  47. package/components/Paragraph/Logo/Element/index.vue +1 -1
  48. package/components/Paragraph/Media/index.vue +1 -1
  49. package/components/Paragraph/Partnerships/Element/index.vue +1 -1
  50. package/components/Paragraph/Partnerships/Layout/index.vue +1 -1
  51. package/components/Paragraph/SingleTestimonial/index.vue +1 -1
  52. package/components/Paragraph/Table/index.vue +1 -1
  53. package/components/Paragraph/Tabs/Element/index.vue +1 -1
  54. package/components/Paragraph/Tabs/Layout/index.vue +1 -1
  55. package/components/Paragraph/Team/Element/index.vue +1 -1
  56. package/components/Paragraph/Team/Layout/index.vue +1 -1
  57. package/components/Paragraph/Teasers/index.vue +1 -1
  58. package/components/Paragraph/Testimonial/Element/index.vue +1 -1
  59. package/components/Paragraph/Testimonial/Layout/index.vue +1 -1
  60. package/components/Paragraph/Text/index.vue +1 -1
  61. package/components/Paragraph/TextMedia/index.vue +1 -1
  62. package/components/Paragraph/Timeline/Element/index.vue +1 -1
  63. package/components/Paragraph/Timeline/Layout/index.vue +1 -1
  64. package/components/Paragraph/TwoColumnText/Element/index.vue +1 -1
  65. package/components/Paragraph/TwoColumnText/Layout/index.vue +1 -1
  66. package/components/Paragraph/iFrame/index.vue +1 -1
  67. package/components/Search/Facets/FacetDropdownUI.vue +1 -1
  68. package/components/Search/Facets/FacetedSearchUI.vue +1 -1
  69. package/components/Search/Input/index.vue +1 -1
  70. package/components/Section/Footer/index.vue +1 -1
  71. package/components/Section/Header/Buttons.vue +1 -1
  72. package/components/Section/Header/DesktopMainMenu.vue +2 -2
  73. package/components/Section/Header/DesktopMainMenuDropdown.vue +2 -2
  74. package/components/Section/Header/LanguageDropdown.vue +1 -1
  75. package/components/Section/Header/LanguageLinks.vue +1 -1
  76. package/components/Section/Header/Logo.vue +2 -1
  77. package/components/Section/Header/MainButtons.vue +1 -1
  78. package/components/Section/Header/MenuIcon.vue +2 -1
  79. package/components/Section/Header/MetaButtons.vue +1 -1
  80. package/components/Section/Header/MetaMenu.vue +1 -1
  81. package/components/Section/Header/MobileMainMenu.vue +1 -1
  82. package/components/Section/Header/MobileMainMenuItem.vue +2 -2
  83. package/components/Section/Header/index.vue +3 -1
  84. package/composables/useTheme.ts +8 -40
  85. package/package.json +1 -1
@@ -27,7 +27,7 @@ import cn from '@iqual/nuxt-icms/composables/useCn'
27
27
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
28
28
  import { tv } from 'tailwind-variants'
29
29
 
30
- const themedClass = useTheme()
30
+ const themedClass = useTheme('DesignSystemAtomsAtoms')
31
31
 
32
32
  const props = defineProps<{
33
33
  label?: string
@@ -6,7 +6,7 @@
6
6
 
7
7
  <script setup lang="ts">
8
8
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
9
- const themedClass = useTheme()
9
+ const themedClass = useTheme('DesignSystemAtomsCaption')
10
10
 
11
11
  defineProps<{
12
12
  caption?: string
@@ -7,7 +7,7 @@
7
7
  <script lang="ts" setup>
8
8
  import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
9
9
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
10
- const themedClass = useTheme()
10
+ const themedClass = useTheme('DesignSystemAtomsContainer')
11
11
 
12
12
  const props = withDefaults(
13
13
  defineProps<{
@@ -6,7 +6,7 @@
6
6
 
7
7
  <script lang="ts" setup>
8
8
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
9
- const themedClass = useTheme()
9
+ const themedClass = useTheme('DesignSystemAtomsGridRow')
10
10
 
11
11
  defineProps<{
12
12
  class?: string
@@ -31,7 +31,7 @@
31
31
 
32
32
  <script lang="ts" setup>
33
33
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
34
- const themedClass = useTheme()
34
+ const themedClass = useTheme('DesignSystemAtomsLinkListItem')
35
35
 
36
36
  defineProps<{
37
37
  title?: string
@@ -30,7 +30,7 @@ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
30
30
  import cn from '@iqual/nuxt-icms/composables/useCn'
31
31
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
32
32
 
33
- const themedClass = useTheme()
33
+ const themedClass = useTheme('DesignSystemMoleculesButtonGroup')
34
34
 
35
35
  type Link = {
36
36
  props: {
@@ -61,7 +61,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
61
61
  import { tv } from 'tailwind-variants'
62
62
  import cn from '@iqual/nuxt-icms/composables/useCn'
63
63
 
64
- const themedClass = useTheme()
64
+ const themedClass = useTheme('DesignSystemMoleculesCard')
65
65
 
66
66
  defineProps<{
67
67
  title?: string
@@ -27,7 +27,7 @@ import type { MediaFragment } from '#graphql-operations'
27
27
  import { tv } from 'tailwind-variants'
28
28
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
29
29
 
30
- const themedClass = useTheme()
30
+ const themedClass = useTheme('DesignSystemMoleculesIconText')
31
31
 
32
32
  defineProps<{
33
33
  title?: string
@@ -288,7 +288,7 @@ const props = withDefaults(defineProps<Props>(), {
288
288
 
289
289
  const emit = defineEmits<Emits>()
290
290
 
291
- const themedClass = useTheme()
291
+ const themedClass = useTheme('DesignSystemMoleculesMediaLightbox')
292
292
  const { $texts } = useNuxtApp()
293
293
 
294
294
  // Refs
@@ -89,7 +89,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
89
89
  import { useMediaLightbox } from '@iqual/nuxt-icms/composables/useMediaLightbox'
90
90
  import { ChevronLeft, ChevronRight } from 'lucide-vue-next'
91
91
 
92
- const themedClass = useTheme()
92
+ const themedClass = useTheme('DesignSystemMoleculesMediaSlider')
93
93
 
94
94
  const props = defineProps<{
95
95
  media?: (MediaFragment | null)[] | undefined
@@ -24,7 +24,7 @@ import type { MediaFragment } from '#graphql-operations'
24
24
  import { tv } from 'tailwind-variants'
25
25
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
26
26
 
27
- const themedClass = useTheme()
27
+ const themedClass = useTheme('DesignSystemMoleculesPartnership')
28
28
 
29
29
  defineProps<{
30
30
  logo?: MediaFragment
@@ -50,7 +50,7 @@ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
50
50
  import { tv } from 'tailwind-variants'
51
51
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
52
52
 
53
- const themedClass = useTheme()
53
+ const themedClass = useTheme('DesignSystemMoleculesTable')
54
54
 
55
55
  const props = defineProps<{
56
56
  tableData?: Record<string, any>
@@ -24,7 +24,7 @@
24
24
  <script lang="ts" setup>
25
25
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
26
26
 
27
- const themedClass = useTheme()
27
+ const themedClass = useTheme('DesignSystemMoleculesTitleComposition')
28
28
 
29
29
  const props = withDefaults(
30
30
  defineProps<{
@@ -54,7 +54,7 @@ import type { MediaFragment } from '#graphql-operations'
54
54
  import cn from '@iqual/nuxt-icms/composables/useCn'
55
55
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
56
56
 
57
- const themedClass = useTheme()
57
+ const themedClass = useTheme('DesignSystemOrganismsContentBlock')
58
58
 
59
59
  type Link = {
60
60
  props: {
@@ -124,7 +124,7 @@ const props = withDefaults(
124
124
  },
125
125
  )
126
126
 
127
- const themedClass = useTheme()
127
+ const themedClass = useTheme('DesignSystemOrganismsFacetedListing')
128
128
  const { $texts } = useNuxtApp()
129
129
 
130
130
  // Helper function to filter valid items
@@ -93,7 +93,7 @@ import { tv } from 'tailwind-variants'
93
93
  import cn from '@iqual/nuxt-icms/composables/useCn'
94
94
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
95
95
 
96
- const themedClass = useTheme()
96
+ const themedClass = useTheme('DesignSystemOrganismsFlipTeaser')
97
97
 
98
98
  defineProps<{
99
99
  image?: MediaFragment
@@ -151,7 +151,7 @@ defineProps<{
151
151
  subtitleContainerClass?: string
152
152
  }>()
153
153
 
154
- const themedClass = useTheme()
154
+ const themedClass = useTheme('DesignSystemOrganismsHeaderHero')
155
155
  const { $texts } = useNuxtApp()
156
156
  </script>
157
157
 
@@ -67,5 +67,5 @@ defineProps<{
67
67
  elementClass?: string
68
68
  }>()
69
69
 
70
- const themedClass = useTheme()
70
+ const themedClass = useTheme('DesignSystemOrganismsHeaderTextImage')
71
71
  </script>
@@ -24,7 +24,7 @@ import type { MediaFragment } from '#graphql-operations'
24
24
  import { tv } from 'tailwind-variants'
25
25
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
26
26
 
27
- const themedClass = useTheme()
27
+ const themedClass = useTheme('DesignSystemOrganismsLogoElement')
28
28
 
29
29
  defineProps<{
30
30
  logo?: MediaFragment
@@ -32,7 +32,7 @@ defineProps<{
32
32
  results: GroupedSearchResults
33
33
  }>()
34
34
 
35
- const themedClass = useTheme()
35
+ const themedClass = useTheme('DesignSystemOrganismsSearchResults')
36
36
 
37
37
  const { $resolveDynamicEntityComponent } = useNuxtApp()
38
38
  const searchComponent = (bundle: string) => {
@@ -105,7 +105,7 @@ import type { MediaFragment } from '#graphql-operations'
105
105
  import { tv } from 'tailwind-variants'
106
106
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
107
107
 
108
- const themedClass = useTheme()
108
+ const themedClass = useTheme('DesignSystemOrganismsTeamElement')
109
109
 
110
110
  defineProps<{
111
111
  firstname?: string
@@ -77,7 +77,7 @@ import type { MediaFragment } from '#graphql-operations'
77
77
  import { tv } from 'tailwind-variants'
78
78
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
79
79
 
80
- const themedClass = useTheme()
80
+ const themedClass = useTheme('DesignSystemOrganismsTeaserCard')
81
81
 
82
82
  defineProps<{
83
83
  image?: MediaFragment
@@ -70,7 +70,7 @@ import type { MediaFragment } from '#graphql-operations'
70
70
  import { tv } from 'tailwind-variants'
71
71
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
72
72
 
73
- const themedClass = useTheme()
73
+ const themedClass = useTheme('DesignSystemOrganismsTestimonial')
74
74
 
75
75
  defineProps<{
76
76
  title?: string
@@ -57,7 +57,7 @@ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
57
57
  import type { MediaFragment } from '#graphql-operations'
58
58
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
59
59
 
60
- const themedClass = useTheme()
60
+ const themedClass = useTheme('DesignSystemOrganismsTimelineElement')
61
61
 
62
62
  const props = defineProps<{
63
63
  pretitle?: string
@@ -54,7 +54,7 @@
54
54
  import cn from '@iqual/nuxt-icms/composables/useCn'
55
55
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
56
56
 
57
- const themedClass = useTheme()
57
+ const themedClass = useTheme('DesignSystemOrganismsTwoColumnTextElement')
58
58
 
59
59
  defineProps<{
60
60
  pretitle?: string
@@ -34,6 +34,6 @@
34
34
  <script lang="ts" setup>
35
35
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
36
36
 
37
- const themedClass = useTheme()
37
+ const themedClass = useTheme('DesignSystemPagesSearch')
38
38
  const { $texts } = useNuxtApp()
39
39
  </script>
@@ -35,7 +35,7 @@ import type { BreadcrumbFragment } from '#graphql-operations'
35
35
  import type { Langcode } from '#nuxt-language-negotiation/config'
36
36
  import { NuxtLink } from '#components'
37
37
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
38
- const themedClass = useTheme()
38
+ const themedClass = useTheme('DrupalBreadcrumb')
39
39
 
40
40
  const props = defineProps<{
41
41
  links: BreadcrumbFragment[]
@@ -21,7 +21,7 @@
21
21
  import type { DrupalMessageType } from '@iqual/nuxt-icms/composables/useDrupalMessages'
22
22
  import cn from '@iqual/nuxt-icms/composables/useCn'
23
23
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
24
- const themedClass = useTheme()
24
+ const themedClass = useTheme('DrupalMessages')
25
25
 
26
26
  const props = defineProps<{
27
27
  wrapperClass?: string
@@ -94,7 +94,7 @@ interface FormData {
94
94
  | undefined
95
95
  }
96
96
 
97
- const themedClass = useTheme()
97
+ const themedClass = useTheme('DrupalWebform')
98
98
 
99
99
  const props = defineProps<{
100
100
  formId: string
@@ -11,7 +11,7 @@
11
11
  import type { MediaIconFragment } from '#graphql-operations'
12
12
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
13
13
 
14
- const themedClass = useTheme()
14
+ const themedClass = useTheme('MediaIcon')
15
15
 
16
16
  defineProps<{
17
17
  media: MediaIconFragment
@@ -37,7 +37,7 @@
37
37
  import type { MediaImageFragment } from '#graphql-operations'
38
38
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
39
39
 
40
- const themedClass = useTheme()
40
+ const themedClass = useTheme('MediaImage')
41
41
 
42
42
  const props = withDefaults(
43
43
  defineProps<{
@@ -54,7 +54,7 @@
54
54
  import type { MediaRemoteVideoFragment } from '#graphql-operations'
55
55
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
56
56
 
57
- const themedClass = useTheme()
57
+ const themedClass = useTheme('MediaRemoteVideo')
58
58
 
59
59
  const props = defineProps<{
60
60
  media: MediaRemoteVideoFragment
@@ -23,7 +23,7 @@
23
23
  import type { MediaVideoFragment } from '#graphql-operations'
24
24
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
25
25
 
26
- const themedClass = useTheme()
26
+ const themedClass = useTheme('MediaVideo')
27
27
 
28
28
  withDefaults(
29
29
  defineProps<{
@@ -22,7 +22,7 @@ import type { ColorScheme } from '@iqual/nuxt-icms/types/global'
22
22
  import type { ParagraphIcmsButtonElementFragment } from '#graphql-operations'
23
23
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
24
24
 
25
- const themedClass = useTheme()
25
+ const themedClass = useTheme('ParagraphButtonElement')
26
26
 
27
27
  defineProps<ParagraphIcmsButtonElementFragment>()
28
28
 
@@ -70,7 +70,7 @@
70
70
  import type { ParagraphIcmsLayoutCallToActionFragment } from '#graphql-operations'
71
71
  import cn from '@iqual/nuxt-icms/composables/useCn'
72
72
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
73
- const themedClass = useTheme()
73
+ const themedClass = useTheme('ParagraphCallToAction')
74
74
 
75
75
  defineProps<ParagraphIcmsLayoutCallToActionFragment>()
76
76
 
@@ -55,7 +55,7 @@
55
55
  <script lang="ts" setup>
56
56
  import type { ParagraphIcmsLayoutCardsFragment } from '#graphql-operations'
57
57
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
58
- const themedClass = useTheme()
58
+ const themedClass = useTheme('ParagraphCardLayout')
59
59
 
60
60
  const props = defineProps<ParagraphIcmsLayoutCardsFragment>()
61
61
 
@@ -74,7 +74,7 @@ defineProps<ParagraphIcmsLayoutContactFragment>()
74
74
 
75
75
  const { options, isEditing } = useAttrs().blokkliData
76
76
 
77
- const themedClass = useTheme()
77
+ const themedClass = useTheme('ParagraphContact')
78
78
 
79
79
  const colorScheme = computed(() => {
80
80
  return options.value.colorScheme
@@ -75,7 +75,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
75
75
  defineProps<ParagraphIcmsLayoutDownloadsFragment>()
76
76
 
77
77
  const { options, isEditing } = useAttrs().blokkliData
78
- const themedClass = useTheme()
78
+ const themedClass = useTheme('ParagraphDownloads')
79
79
 
80
80
  const colorScheme = computed(() => options.value.colorScheme)
81
81
 
@@ -44,7 +44,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
44
44
 
45
45
  defineProps<ParagraphIcmsFaqElementFragment>()
46
46
 
47
- const themedClass = useTheme()
47
+ const themedClass = useTheme('ParagraphFAQElement')
48
48
 
49
49
  const accordionTrigger = tv({
50
50
  base: themedClass(
@@ -80,7 +80,7 @@ import cn from '@iqual/nuxt-icms/composables/useCn'
80
80
 
81
81
  const props = defineProps<ParagraphIcmsLayoutFaqFragment>()
82
82
 
83
- const themedClass = useTheme()
83
+ const themedClass = useTheme('ParagraphFAQLayout')
84
84
 
85
85
  const defaultValue = computed(() => {
86
86
  if (!isEditing) {
@@ -61,7 +61,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
61
61
 
62
62
  const props = defineProps<ParagraphIcmsLayoutFlipTeasersFragment>()
63
63
 
64
- const themedClass = useTheme()
64
+ const themedClass = useTheme('ParagraphFlipTeasers')
65
65
 
66
66
  const { options, parentType } = useAttrs().blokkliData
67
67
 
@@ -86,7 +86,7 @@ const { options } = useAttrs().blokkliData as any
86
86
 
87
87
  const props = defineProps<ParagraphIcmsLayoutGalleryFragment>()
88
88
 
89
- const themedClass = useTheme()
89
+ const themedClass = useTheme('ParagraphGallery')
90
90
 
91
91
  const {
92
92
  isOpen,
@@ -92,7 +92,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
92
92
 
93
93
  defineProps<ParagraphIcmsLayoutHeroImageFragment>()
94
94
 
95
- const themedClass = useTheme()
95
+ const themedClass = useTheme('ParagraphHeroImage')
96
96
 
97
97
  const prefetch = provide('prefetch', true)
98
98
 
@@ -17,7 +17,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
17
17
 
18
18
  defineProps<ParagraphIcmsIconTextElementFragment>()
19
19
 
20
- const themedClass = useTheme()
20
+ const themedClass = useTheme('ParagraphIconTextElement')
21
21
 
22
22
  const colorScheme = inject<ColorScheme>('colorScheme')
23
23
  const titleWeight = inject<string>('titleWeight')
@@ -69,7 +69,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
69
69
 
70
70
  const props = defineProps<ParagraphIcmsLayoutTextcolIconlistFragment>()
71
71
 
72
- const themedClass = useTheme()
72
+ const themedClass = useTheme('ParagraphIconTextLayout')
73
73
 
74
74
  const { options, isEditing } = useAttrs().blokkliData
75
75
 
@@ -87,7 +87,7 @@ defineProps<ParagraphIcmsLayoutTextImageIntroFragment>()
87
87
 
88
88
  const { options, isEditing } = useAttrs().blokkliData
89
89
 
90
- const themedClass = useTheme()
90
+ const themedClass = useTheme('ParagraphIntroduction')
91
91
 
92
92
  const introductionRow = tv({
93
93
  base: themedClass('introductionRowBase', 'w-full p-0'),
@@ -16,7 +16,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
16
16
 
17
17
  defineProps<ParagraphIcmsLogoElementFragment>()
18
18
 
19
- const themedClass = useTheme()
19
+ const themedClass = useTheme('ParagraphLogoElement')
20
20
 
21
21
  const colorScheme = inject<ColorScheme>('colorScheme')
22
22
  </script>
@@ -48,7 +48,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
48
48
 
49
49
  defineProps<ParagraphIcmsLayoutMediaFragment>()
50
50
 
51
- const themedClass = useTheme()
51
+ const themedClass = useTheme('ParagraphMedia')
52
52
 
53
53
  const { options, isEditing } = useAttrs().blokkliData
54
54
 
@@ -17,5 +17,5 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
17
17
 
18
18
  defineProps<ParagraphIcmsPartnershipElementFragment>()
19
19
 
20
- const themedClass = useTheme()
20
+ const themedClass = useTheme('ParagraphPartnershipsElement')
21
21
  </script>
@@ -106,7 +106,7 @@ defineProps<ParagraphIcmsLayoutPartnershipsFragment>()
106
106
 
107
107
  const { options, isEditing } = useAttrs().blokkliData
108
108
 
109
- const themedClass = useTheme()
109
+ const themedClass = useTheme('ParagraphPartnershipsLayout')
110
110
 
111
111
  const partnershipsRow = tv({
112
112
  base: themedClass('partnershipsRowBase', 'w-full p-0'),
@@ -95,7 +95,7 @@ defineProps<ParagraphIcmsLayoutTestimonialFragment>()
95
95
 
96
96
  const { options, isEditing } = useAttrs().blokkliData
97
97
 
98
- const themedClass = useTheme()
98
+ const themedClass = useTheme('ParagraphSingleTestimonial')
99
99
 
100
100
  const spacing = computed(() => {
101
101
  return { bottom: options.value.spacingBottom, top: options.value.spacingTop }
@@ -52,7 +52,7 @@ import type { ParagraphIcmsLayoutTableFragment } from '#graphql-operations'
52
52
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
53
53
 
54
54
  defineProps<ParagraphIcmsLayoutTableFragment>()
55
- const themedClass = useTheme()
55
+ const themedClass = useTheme('ParagraphTable')
56
56
 
57
57
  const { options, parentType } = useAttrs().blokkliData
58
58
 
@@ -48,7 +48,7 @@ defineProps<ParagraphIcmsTabElementFragment>()
48
48
 
49
49
  const { isEditing } = useAttrs().blokkliData as any
50
50
 
51
- const themedClass = useTheme()
51
+ const themedClass = useTheme('ParagraphTabsElement')
52
52
 
53
53
  const tabContent = tv({
54
54
  base: themedClass(
@@ -142,7 +142,7 @@ const props = defineProps<ParagraphIcmsLayoutTabsFragment>()
142
142
 
143
143
  const { options, isEditing } = useAttrs().blokkliData as any
144
144
 
145
- const themedClass = useTheme()
145
+ const themedClass = useTheme('ParagraphTabsLayout')
146
146
  const { isMobile } = useIsMobile()
147
147
 
148
148
  const tabList = tv({
@@ -33,7 +33,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
33
33
 
34
34
  defineProps<ParagraphIcmsTeamElementFragment>()
35
35
 
36
- const themedClass = useTheme()
36
+ const themedClass = useTheme('ParagraphTeamElement')
37
37
 
38
38
  const colorScheme = inject<ColorScheme>('colorScheme')
39
39
  const titleWeight = inject<string>('titleWeight')
@@ -57,7 +57,7 @@ const props = defineProps<ParagraphIcmsLayoutTeamFragment>()
57
57
 
58
58
  const { options, isEditing } = useAttrs().blokkliData
59
59
 
60
- const themedClass = useTheme()
60
+ const themedClass = useTheme('ParagraphTeamLayout')
61
61
 
62
62
  const colorScheme = computed(() => {
63
63
  return options.value.colorScheme
@@ -57,7 +57,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
57
57
 
58
58
  const props = defineProps<ParagraphIcmsLayoutTeasersFragment>()
59
59
 
60
- const themedClass = useTheme()
60
+ const themedClass = useTheme('ParagraphTeasers')
61
61
 
62
62
  const { options, parentType } = useAttrs().blokkliData as any
63
63
 
@@ -45,7 +45,7 @@ import cn from '@iqual/nuxt-icms/composables/useCn'
45
45
 
46
46
  defineProps<ParagraphIcmsTestimonialElementFragment>()
47
47
 
48
- const themedClass = useTheme()
48
+ const themedClass = useTheme('ParagraphTestimonialElement')
49
49
 
50
50
  const { isEditing } = useAttrs().blokkliData
51
51
 
@@ -94,7 +94,7 @@ const props = defineProps<ParagraphIcmsLayoutTestimonialsFragment>()
94
94
 
95
95
  const { options, isEditing } = useAttrs().blokkliData
96
96
 
97
- const themedClass = useTheme()
97
+ const themedClass = useTheme('ParagraphTestimonialLayout')
98
98
 
99
99
  const carousel = tv({
100
100
  base: themedClass('carouselBase', 'px-16 py-8 xl:px-40 xl:py-12'),
@@ -46,7 +46,7 @@ import cn from '@iqual/nuxt-icms/composables/useCn'
46
46
 
47
47
  defineProps<ParagraphIcmsLayoutTextFragment>()
48
48
 
49
- const themedClass = useTheme()
49
+ const themedClass = useTheme('ParagraphText')
50
50
 
51
51
  const { options, isEditing } = useAttrs().blokkliData
52
52
 
@@ -70,7 +70,7 @@ defineProps<ParagraphIcmsLayoutTextMediaFragment>()
70
70
 
71
71
  const { options, isEditing } = useAttrs().blokkliData
72
72
 
73
- const themedClass = useTheme()
73
+ const themedClass = useTheme('ParagraphTextMedia')
74
74
 
75
75
  const reverseColumns = ref(false)
76
76
 
@@ -34,7 +34,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
34
34
 
35
35
  defineProps<ParagraphIcmsTimelineElementFragment>()
36
36
 
37
- const themedClass = useTheme()
37
+ const themedClass = useTheme('ParagraphTimelineElement')
38
38
 
39
39
  const { options, isEditing } = useAttrs().blokkliData
40
40
 
@@ -239,7 +239,7 @@ const props = defineProps<ParagraphIcmsLayoutTimelineFragment>()
239
239
 
240
240
  const { options, isEditing } = useAttrs().blokkliData
241
241
 
242
- const themedClass = useTheme()
242
+ const themedClass = useTheme('ParagraphTimelineLayout')
243
243
  const { isMobile } = useIsMobile()
244
244
 
245
245
  const colorScheme = computed(() => {
@@ -33,7 +33,7 @@ defineProps<ParagraphIcms2ColTextElementFragment>()
33
33
 
34
34
  const { options, isEditing } = useAttrs().blokkliData
35
35
 
36
- const themedClass = useTheme()
36
+ const themedClass = useTheme('ParagraphTwoColumnTextElement')
37
37
 
38
38
  const twoColumnTextElementClassList = computed(() => {
39
39
  const classList = []
@@ -20,7 +20,7 @@ defineProps<ParagraphIcmsLayout2ColTextElementsFragment>()
20
20
 
21
21
  const { options, isEditing } = useAttrs().blokkliData
22
22
 
23
- const themedClass = useTheme()
23
+ const themedClass = useTheme('ParagraphTwoColumnTextLayout')
24
24
 
25
25
  const colorScheme = computed(() => {
26
26
  return options.value.colorScheme
@@ -39,7 +39,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
39
39
 
40
40
  const props = defineProps<ParagraphIcmsLayoutIframeFragment>()
41
41
 
42
- const themedClass = useTheme()
42
+ const themedClass = useTheme('ParagraphiFrame')
43
43
 
44
44
  const { options, isEditing } = useAttrs().blokkliData
45
45
 
@@ -181,7 +181,7 @@ import PopoverTrigger from '@iqual/nuxt-icms/components/ui/popover/PopoverTrigge
181
181
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
182
182
  import { tv } from 'tailwind-variants'
183
183
 
184
- const themedClass = useTheme()
184
+ const themedClass = useTheme('SearchFacetsFacetDropdownUI')
185
185
 
186
186
  // Incoming facet shape from GraphQL API.
187
187
  export interface GraphQLFacetItem {
@@ -270,7 +270,7 @@ const props = withDefaults(defineProps<FacetedSearchUIProps>(), {
270
270
  conjunction: 'AND',
271
271
  })
272
272
 
273
- const themedClass = useTheme()
273
+ const themedClass = useTheme('SearchFacetsFacetedSearchUI')
274
274
 
275
275
  // Get the $texts function for internationalization
276
276
  const { $texts } = useNuxtApp()
@@ -41,7 +41,7 @@ const props = defineProps<{
41
41
  colorScheme?: ColorScheme
42
42
  }>()
43
43
 
44
- const themedClass = useTheme()
44
+ const themedClass = useTheme('SearchInput')
45
45
 
46
46
  const searchTermInternal = ref('')
47
47
  const isFocused = ref(false)
@@ -250,7 +250,7 @@ import type { NuxtSvgSpriteSymbol } from '#nuxt-svg-icon-sprite/runtime'
250
250
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
251
251
  import cn from '@iqual/nuxt-icms/composables/useCn'
252
252
 
253
- const themedClass = useTheme()
253
+ const themedClass = useTheme('SectionFooter')
254
254
  const { menuItems: footerMenuLinks } = await useMenu('footerMenu')
255
255
  const { menuItems: footerMetaMenuLinks } = await useMenu('footerMetaMenu')
256
256
  const {
@@ -29,6 +29,6 @@ defineProps<{
29
29
  buttons: any[] | undefined
30
30
  }>()
31
31
 
32
- const themedClass = useTheme()
32
+ const themedClass = useTheme('SectionHeaderButtons')
33
33
  const { close } = useMobileMenuOverlayBus()
34
34
  </script>
@@ -77,7 +77,7 @@
77
77
  </template>
78
78
 
79
79
  <script lang="ts" setup>
80
- import type { MappedMenuLink } from '@/packages/nuxt-icms/plugins/initData'
80
+ import type { MappedMenuLink } from '@iqual/nuxt-icms/plugins/initData'
81
81
  import { NuxtLink } from '#components'
82
82
  import DesktopMainMenuDropdown from './DesktopMainMenuDropdown.vue'
83
83
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
@@ -85,7 +85,7 @@ import cn from '@iqual/nuxt-icms/composables/useCn'
85
85
 
86
86
  const { menuItems, menuItemActive } = await useMenu('mainMenu')
87
87
 
88
- const themedClass = useTheme()
88
+ const themedClass = useTheme('SectionHeaderDesktopMainMenu')
89
89
 
90
90
  const isActive = (item: MappedMenuLink) => menuItemActive.value?.id === item.id
91
91
  const hasSubmenu = (item: MappedMenuLink) => (item.children?.length ?? 0) > 0
@@ -68,12 +68,12 @@
68
68
  </template>
69
69
 
70
70
  <script lang="ts" setup>
71
- import type { MappedMenuLink } from '@/packages/nuxt-icms/plugins/initData'
71
+ import type { MappedMenuLink } from '@iqual/nuxt-icms/plugins/initData'
72
72
  import { NuxtLink } from '#components'
73
73
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
74
74
  import cn from '@iqual/nuxt-icms/composables/useCn'
75
75
 
76
- const themedClass = useTheme()
76
+ const themedClass = useTheme('SectionHeaderDesktopMainMenuDropdown')
77
77
 
78
78
  const props = defineProps<{
79
79
  item: MappedMenuLink
@@ -107,7 +107,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
107
107
 
108
108
  const links = useLanguageLinks()
109
109
  const currentLanguage = useCurrentLanguage()
110
- const themedClass = useTheme()
110
+ const themedClass = useTheme('SectionHeaderLanguageDropdown')
111
111
 
112
112
  const isLangDropdownOpen = ref(false)
113
113
 
@@ -35,5 +35,5 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
35
35
  const { close } = useMobileMenuOverlayBus()
36
36
 
37
37
  const links = useLanguageLinks()
38
- const themedClass = useTheme()
38
+ const themedClass = useTheme('SectionHeaderLanguageLinks')
39
39
  </script>
@@ -15,9 +15,10 @@
15
15
  </template>
16
16
 
17
17
  <script lang="ts" setup>
18
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
18
19
  const { companyLogo, companyName } = await useGlobalConfig()
19
20
 
20
- const themedClass = useTheme()
21
+ const themedClass = useTheme('SectionHeaderLogo')
21
22
  const currentLanguage = useCurrentLanguage()
22
23
  const { close } = useMobileMenuOverlayBus()
23
24
  </script>
@@ -26,6 +26,6 @@
26
26
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
27
27
 
28
28
  const { contactButtons } = await useGlobalConfig()
29
- const themedClass = useTheme()
29
+ const themedClass = useTheme('SectionHeaderMainButtons')
30
30
  const { close } = useMobileMenuOverlayBus()
31
31
  </script>
@@ -60,11 +60,12 @@
60
60
  </template>
61
61
 
62
62
  <script lang="ts" setup>
63
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
63
64
  defineProps<{
64
65
  isInClosableState: boolean
65
66
  }>()
66
67
 
67
- const themedClass = useTheme()
68
+ const themedClass = useTheme('SectionHeaderMenuIcon')
68
69
  const { close, open } = useMobileMenuOverlayBus()
69
70
  </script>
70
71
 
@@ -26,6 +26,6 @@
26
26
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
27
27
 
28
28
  const { metaLinks } = await useGlobalConfig()
29
- const themedClass = useTheme()
29
+ const themedClass = useTheme('SectionHeaderMetaButtons')
30
30
  const { close } = useMobileMenuOverlayBus()
31
31
  </script>
@@ -65,7 +65,7 @@ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
65
65
  import cn from '@iqual/nuxt-icms/composables/useCn'
66
66
 
67
67
  const { menuItems, menuItemActive } = await useMenu('metaMenu')
68
- const themedClass = useTheme()
68
+ const themedClass = useTheme('SectionHeaderMetaMenu')
69
69
  const { $texts } = useNuxtApp()
70
70
  const { close } = useMobileMenuOverlayBus()
71
71
  </script>
@@ -19,5 +19,5 @@ import MobileMainMenuItem from './MobileMainMenuItem.vue'
19
19
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
20
20
  const { menuItems, menuItemActive } = await useMenu('mainMenu')
21
21
 
22
- const themedClass = useTheme()
22
+ const themedClass = useTheme('SectionHeaderMobileMainMenu')
23
23
  </script>
@@ -79,13 +79,13 @@
79
79
  </template>
80
80
 
81
81
  <script lang="ts" setup>
82
- import type { MappedMenuLink } from '@/packages/nuxt-icms/plugins/initData'
82
+ import type { MappedMenuLink } from '@iqual/nuxt-icms/plugins/initData'
83
83
  import { NuxtLink } from '#components'
84
84
  import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
85
85
  import cn from '@iqual/nuxt-icms/composables/useCn'
86
86
 
87
87
  const route = useRoute()
88
- const themedClass = useTheme()
88
+ const themedClass = useTheme('SectionHeaderMobileMainMenuItem')
89
89
  const { close } = useMobileMenuOverlayBus()
90
90
 
91
91
  const props = defineProps<{
@@ -177,8 +177,10 @@
177
177
  </template>
178
178
 
179
179
  <script lang="ts" setup>
180
+ import { useTheme } from '@iqual/nuxt-icms/composables/useTheme'
181
+
180
182
  const { metaLinks, contactButtons } = await useGlobalConfig()
181
- const themedClass = useTheme()
183
+ const themedClass = useTheme('SectionHeader')
182
184
  const { close, onOpen, onClose } = useMobileMenuOverlayBus()
183
185
  const viewport = useViewport()
184
186
 
@@ -1,33 +1,12 @@
1
1
  import { getCurrentInstance } from 'vue'
2
2
  import cn from '@iqual/nuxt-icms/composables/useCn'
3
3
 
4
- /**
5
- * Helper function that extracts a component name from a file path by converting the path structure to a component identifier.
6
- *
7
- * @param filePath - The full file path of the component
8
- * @returns The component name derived from the path (e.g., "Section/Header/index.vue" becomes "SectionHeader")
9
- */
10
- function getComponentName(filePath: string): string {
11
- if (!filePath.includes('/components/')) return 'Unknown'
12
-
13
- return filePath.substring(filePath.indexOf('/components/') + 12)
14
- .replace(/\.(vue|tsx?|jsx?)$/, '')
15
- .replace(/\/index$/, '')
16
- .split('/').join('')
17
- }
18
-
19
- interface UseThemeOptions {
20
- componentName?: string
21
- themeName?: string
22
- }
23
-
24
4
  /**
25
5
  * A composable that provides theme-aware class generation for Vue components.
26
6
  * Automatically detects the calling component and merges theme classes with component props and default classes.
27
7
  *
28
- * @param options - Configuration options for the theme
29
- * @param options.componentName - Optional component name to manually override auto-detection
30
- * @param options.themeName - The name of the theme to use from app config (defaults to 'default')
8
+ * @param componentName - Component name to manually override auto-detection
9
+ * @param themeName - The name of the theme to use from app config (defaults to 'default')
31
10
  * @returns A function that generates themed classes for component elements
32
11
  *
33
12
  * @example
@@ -39,20 +18,11 @@ interface UseThemeOptions {
39
18
  * </template>
40
19
  *
41
20
  * <script setup>
42
- * // Auto-detects component name and uses default theme
43
- * const theme = useTheme()
44
- *
45
- * // Manually set component name
46
- * const customTheme = useTheme({ componentName: 'CustomComponent' })
21
+ * // Uses default theme
22
+ * const customTheme = useTheme('CustomComponent')
47
23
  *
48
- * // Use a specific theme with auto-detection
49
- * const darkTheme = useTheme({ themeName: 'dark' })
50
- *
51
- * // Manually set component name with specific theme
52
- * const customDarkTheme = useTheme({
53
- * componentName: 'CustomComponent',
54
- * themeName: 'dark'
55
- * })
24
+ * // Use a specific theme
25
+ * const darkTheme = useTheme('CustomComponent', 'dark')
56
26
  *
57
27
  * // The returned function merges:
58
28
  * // 1. Default classes passed as second parameter
@@ -75,14 +45,12 @@ interface UseThemeOptions {
75
45
  * })
76
46
  * ```
77
47
  */
78
- export function useTheme(options: UseThemeOptions = {}) {
79
- const { componentName, themeName = 'default' } = options
48
+ export function useTheme(componentName: string, themeName: string = 'default') {
80
49
  const instance = getCurrentInstance()
81
50
  const { props } = instance || {}
82
51
  const appConfig = useAppConfig()
83
52
 
84
- const component = componentName || getComponentName(instance?.type?.__file || '')
85
- const componentTheme = (appConfig?.theme as any)?.[themeName]?.[component] ?? {}
53
+ const componentTheme = (appConfig?.theme as any)?.[themeName]?.[componentName] ?? {}
86
54
 
87
55
  /**
88
56
  * Generates themed classes by merging default classes, theme classes, and component prop classes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqual/nuxt-icms",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "ICMS Base",
5
5
  "type": "module",
6
6
  "private": false,