@cooperco/cooper-component-library 0.1.1 → 0.1.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 (117) hide show
  1. package/dist/{component-lib.js → lib/component-lib.js} +1924 -1488
  2. package/dist/lib/component-lib.umd.cjs +98 -0
  3. package/{src/assets → dist/lib/css}/main.css +3 -2
  4. package/dist/lib/style.css +1 -0
  5. package/dist/types/App.vue.d.ts +2 -0
  6. package/dist/types/components/Accordion/Accordion.d.ts +17 -0
  7. package/dist/types/components/Accordion/Accordion.vue.d.ts +29 -0
  8. package/dist/types/components/Accordion/AccordionItem.d.ts +23 -0
  9. package/dist/types/components/Accordion/AccordionItem.vue.d.ts +30 -0
  10. package/dist/types/components/Accordion/AccordionListItem.vue.d.ts +12 -0
  11. package/dist/types/components/Accordion/AccordionTileItem.vue.d.ts +16 -0
  12. package/dist/types/components/CTA/CTA.d.ts +19 -0
  13. package/dist/types/components/CTA/CTA.vue.d.ts +12 -0
  14. package/dist/types/components/CarouselModule/CarouselModule.d.ts +24 -0
  15. package/dist/types/components/CarouselModule/CarouselModule.vue.d.ts +26 -0
  16. package/dist/types/components/ContainerCollectionModule/ContainerCollectionModule.d.ts +11 -0
  17. package/dist/types/components/ContainerCollectionModule/ContainerCollectionModule.vue.d.ts +12 -0
  18. package/dist/types/components/ContainerModule/ContainerModule.d.ts +26 -0
  19. package/dist/types/components/ContainerModule/ContainerModule.vue.d.ts +36 -0
  20. package/dist/types/components/ContentModule/ContentModule.d.ts +28 -0
  21. package/dist/types/components/ContentModule/ContentModule.vue.d.ts +29 -0
  22. package/dist/types/components/FooterNavigation/FooterNavigation.d.ts +12 -0
  23. package/dist/types/components/FooterNavigation/FooterNavigation.vue.d.ts +12 -0
  24. package/dist/types/components/Image/Image.d.ts +13 -0
  25. package/dist/types/components/Image/Image.vue.d.ts +26 -0
  26. package/dist/types/components/LogoCollectionModule/LogoCollectionModule.d.ts +10 -0
  27. package/dist/types/components/LogoCollectionModule/LogoCollectionModule.vue.d.ts +12 -0
  28. package/dist/types/components/NavigationElement/NavigationElement.d.ts +17 -0
  29. package/dist/types/components/NavigationElement/NavigationElement.vue.d.ts +12 -0
  30. package/dist/types/components/PrimaryNavigation/PrimaryNavigation.d.ts +11 -0
  31. package/dist/types/components/PrimaryNavigation/PrimaryNavigation.vue.d.ts +12 -0
  32. package/dist/types/components/SplitModule/SplitModule.d.ts +16 -0
  33. package/dist/types/components/SplitModule/SplitModule.vue.d.ts +12 -0
  34. package/dist/types/components/TestimonialModule/TestimonialModule.d.ts +21 -0
  35. package/dist/types/components/TestimonialModule/TestimonialModule.vue.d.ts +12 -0
  36. package/dist/types/components/TileCollectionModule/TileCollectionModule.d.ts +14 -0
  37. package/dist/types/components/TileCollectionModule/TileCollectionModule.vue.d.ts +12 -0
  38. package/dist/types/components/TileContent/TileContent.d.ts +53 -0
  39. package/dist/types/components/TileContent/TileContentIconTile.vue.d.ts +12 -0
  40. package/dist/types/components/TileContent/TileContentImageStackedAnimatedTile.vue.d.ts +12 -0
  41. package/dist/types/components/TileContent/TileContentImageTile.vue.d.ts +12 -0
  42. package/dist/types/components/TileContent/TileContentTextTile.vue.d.ts +12 -0
  43. package/dist/types/components/TileContent/TileContentVideoTile.vue.d.ts +12 -0
  44. package/dist/types/components/TileLabel/TileLabel.d.ts +13 -0
  45. package/dist/types/components/TileLabel/TileLabel.vue.d.ts +29 -0
  46. package/dist/types/components/Video/Video.d.ts +8 -0
  47. package/dist/types/components/Video/Video.vue.d.ts +26 -0
  48. package/dist/types/components/components.d.ts +23 -0
  49. package/dist/types/components/types.d.ts +16 -0
  50. package/dist/types/config/defaultPassthrough.d.ts +96 -0
  51. package/dist/types/index.d.ts +8 -0
  52. package/dist/types/init.d.ts +3 -0
  53. package/dist/types/pages/index.vue.d.ts +2 -0
  54. package/dist/types/router.d.ts +5 -0
  55. package/dist/types/types.d.ts +49 -0
  56. package/package.json +21 -18
  57. package/dist/component-lib.umd.cjs +0 -98
  58. package/dist/style.css +0 -1
  59. package/src/components/Accordion/Accordion.ts +0 -20
  60. package/src/components/Accordion/Accordion.vue +0 -66
  61. package/src/components/Accordion/AccordionItem.ts +0 -25
  62. package/src/components/Accordion/AccordionItem.vue +0 -104
  63. package/src/components/Accordion/AccordionListItem.vue +0 -61
  64. package/src/components/Accordion/AccordionTileItem.vue +0 -75
  65. package/src/components/CTA/CTA.ts +0 -22
  66. package/src/components/CTA/CTA.vue +0 -65
  67. package/src/components/CarouselModule/CarouselModule.ts +0 -20
  68. package/src/components/CarouselModule/CarouselModule.vue +0 -64
  69. package/src/components/ContainerCollectionModule/ContainerCollectionModule.ts +0 -12
  70. package/src/components/ContainerCollectionModule/ContainerCollectionModule.vue +0 -42
  71. package/src/components/ContainerModule/ContainerModule.ts +0 -69
  72. package/src/components/ContainerModule/ContainerModule.vue +0 -113
  73. package/src/components/ContentModule/ContentModule.ts +0 -31
  74. package/src/components/ContentModule/ContentModule.vue +0 -65
  75. package/src/components/FooterNavigation/FooterNavigation.ts +0 -13
  76. package/src/components/FooterNavigation/FooterNavigation.vue +0 -59
  77. package/src/components/Image/Image.ts +0 -12
  78. package/src/components/Image/Image.vue +0 -17
  79. package/src/components/LogoCollectionModule/LogoCollectionModule.ts +0 -12
  80. package/src/components/LogoCollectionModule/LogoCollectionModule.vue +0 -40
  81. package/src/components/NavigationElement/NavigationElement.ts +0 -22
  82. package/src/components/NavigationElement/NavigationElement.vue +0 -101
  83. package/src/components/PrimaryNavigation/PrimaryNavigation.ts +0 -10
  84. package/src/components/PrimaryNavigation/PrimaryNavigation.vue +0 -71
  85. package/src/components/SplitModule/SplitModule.ts +0 -17
  86. package/src/components/SplitModule/SplitModule.vue +0 -57
  87. package/src/components/TestimonialModule/TestimonialModule.ts +0 -22
  88. package/src/components/TestimonialModule/TestimonialModule.vue +0 -51
  89. package/src/components/TileCollectionModule/TileCollectionModule.ts +0 -18
  90. package/src/components/TileCollectionModule/TileCollectionModule.vue +0 -58
  91. package/src/components/TileContent/TileContent.ts +0 -60
  92. package/src/components/TileContent/TileContent.vue +0 -116
  93. package/src/components/TileContent/TileContentIconTile.vue +0 -83
  94. package/src/components/TileContent/TileContentImageStackedAnimatedTile.vue +0 -121
  95. package/src/components/TileContent/TileContentImageTile.vue +0 -80
  96. package/src/components/TileContent/TileContentTextTile.vue +0 -63
  97. package/src/components/TileContent/TileContentVideoTile.vue +0 -81
  98. package/src/components/Video/Video.ts +0 -8
  99. package/src/components/Video/Video.vue +0 -18
  100. package/src/config/defaultPassthrough.ts +0 -261
  101. /package/{src/assets → dist/lib/css}/theme.css +0 -0
  102. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Bold.woff +0 -0
  103. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Bold.woff2 +0 -0
  104. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-LC-Bold.woff +0 -0
  105. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-LC-Bold.woff2 +0 -0
  106. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-LC-Regular.woff +0 -0
  107. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-LC-Regular.woff2 +0 -0
  108. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Medium.woff +0 -0
  109. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Medium.woff2 +0 -0
  110. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Regular.woff +0 -0
  111. /package/{src/assets → dist/lib}/fonts/GT-Walsheim-Regular.woff2 +0 -0
  112. /package/{src/assets → dist/lib}/fonts/fonts.scss +0 -0
  113. /package/{src/assets → dist/lib}/fonts/notosanssc-bold-webfont.woff +0 -0
  114. /package/{src/assets → dist/lib}/fonts/notosanssc-bold-webfont.woff2 +0 -0
  115. /package/{src/assets → dist/lib}/fonts/notosanssc-regular-webfont.woff +0 -0
  116. /package/{src/assets → dist/lib}/fonts/notosanssc-regular-webfont.woff2 +0 -0
  117. /package/dist/{vite.svg → lib/vite.svg} +0 -0
@@ -1,51 +0,0 @@
1
- <script setup lang="ts">
2
- import { TestimonialModule } from './TestimonialModule'
3
- import { computed } from 'vue'
4
- import {
5
- combinePassthroughs,
6
- TestimonialModulePt,
7
- } from '../../config/defaultPassthrough'
8
-
9
- const props = defineProps<TestimonialModule>()
10
- const pt = computed(() =>
11
- combinePassthroughs(TestimonialModulePt, props.pt ?? {})
12
- )
13
-
14
- const computedStyle = computed(() => {
15
- return {
16
- 'background-color': props.backgroundColor ?? 'transparent',
17
- color: props.textColor ?? 'inherit',
18
- }
19
- })
20
- </script>
21
-
22
- <template>
23
- <div class="testimonial p-5" :style="computedStyle">
24
- <div
25
- :class="`container mx-auto flex flex-col lg:flex-row gap-8 ${pt?.container ?? ''}`"
26
- >
27
- <div v-if="media" :class="`testimonial-media ${pt?.media ?? ''}`">
28
- <component :is="media.__typename" v-bind="media" />
29
- </div>
30
- <div :class="`testimonial-text ${pt?.text ?? ''}`">
31
- <h3
32
- v-if="headline"
33
- :class="`testimonial-headline ${pt?.headline ?? ''}`"
34
- >
35
- {{ headline }}
36
- </h3>
37
- <p v-if="quote" :class="`testimonial-quote ${pt?.quote ?? ''}`">
38
- &quot;{{ quote }}&quot;
39
- </p>
40
-
41
- <p v-if="author" :class="`testimonial-author ${pt?.author ?? ''}`">
42
- {{ author }}
43
- </p>
44
-
45
- <p v-if="details" :class="`testimonial-details ${pt?.details ?? ''}`">
46
- {{ details }}
47
- </p>
48
- </div>
49
- </div>
50
- </div>
51
- </template>
@@ -1,18 +0,0 @@
1
- import { ComponentPassthrough } from '../../types'
2
- import { TileContent } from '../TileContent/TileContent'
3
-
4
- export interface TileCollection {
5
- __typename?: 'TileCollectionModule'
6
- headline: string
7
- description?: string
8
- modules: TileContent[]
9
- textColor?: string
10
- backgroundColor?: string
11
- variant:
12
- | 'IconTile'
13
- | 'ImageTile'
14
- | 'VideoTile'
15
- | 'ImageStackedAnimatedTile'
16
- | 'TextTile'
17
- pt?: ComponentPassthrough
18
- }
@@ -1,58 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileCollection } from './TileCollectionModule'
3
- import { computed } from 'vue'
4
- import { twMerge } from 'tailwind-merge'
5
- import {
6
- combinePassthroughs,
7
- TileCollectionModulePt,
8
- } from '../../config/defaultPassthrough'
9
-
10
- const props = defineProps<TileCollection>()
11
- const pt = computed(() =>
12
- combinePassthroughs(TileCollectionModulePt, props.pt ?? {})
13
- )
14
-
15
- const computedStyle = computed(() => {
16
- return {
17
- 'background-color': props.backgroundColor ?? 'transparent',
18
- color: props.textColor ?? 'inherit',
19
- }
20
- })
21
- </script>
22
-
23
- <template>
24
- <section
25
- :class="`tile-collection overflow-hidden ${pt?.root ?? ''} py-16 ${variant}`"
26
- :style="computedStyle"
27
- >
28
- <div :class="`container mx-auto ${pt?.container ?? ''}`">
29
- <h2
30
- v-if="headline"
31
- :class="`tile-collection-headline ${pt?.headline ?? ''}`"
32
- >
33
- {{ headline }}
34
- </h2>
35
- <h3
36
- v-if="description"
37
- :class="`tile-collection-description ${pt?.description ?? ''}`"
38
- >
39
- {{ description }}
40
- </h3>
41
- <ul
42
- v-if="modules"
43
- :class="`tile-collection-content ${twMerge(`flex flex-col ${variant !== 'ImageStackedAnimatedTile' ? 'md:flex-row flex-wrap gap-12 md:gap-6' : 'gap-12'} justify-center`, pt?.content ?? '')}`"
44
- >
45
- <!-- TODO: Fix suppressed ts error "${(item as any).class}" -->
46
- <component
47
- :is="`TileContent${variant}`"
48
- v-for="(item, index) in modules"
49
- :key="`${item?.headline}-${index}`"
50
- :class="`tile-collection-content-item-${index} ${pt?.item ?? ''} ${(item as any).class}`"
51
- v-bind="item"
52
- :index="index"
53
- />
54
- </ul>
55
- <!-- TODO: need to add the CTA -->
56
- </div>
57
- </section>
58
- </template>
@@ -1,60 +0,0 @@
1
- import { ComponentPassthrough } from '../../types'
2
- import { CardLabel } from '../../types'
3
- import { CTA } from '../CTA/CTA'
4
- import { Image } from '../Image/Image'
5
- import { Video } from '../Video/Video'
6
-
7
- export interface TileContentPassthrough extends ComponentPassthrough {
8
- media?: string
9
- mediaContainer?: string
10
- ctas?: string
11
- label?: string
12
- numericLabel?: string
13
- cta?: string
14
- body?: string
15
- text?: string
16
- list?: string
17
- listItem?: string
18
- footer?: string
19
- footerContent?: string
20
- }
21
-
22
- export interface TileContent {
23
- __typename?: 'TileContent'
24
- index?: number
25
- Image?: Image
26
- Video?: Video
27
- headline?: string
28
- subheadline?: string
29
- description?: string
30
- ctas?: CTA[]
31
- textColor?: string
32
- backgroundColor?: string
33
- cardLabel?: CardLabel
34
- alignment?: 'left' | 'center' | 'right'
35
- isImageStacked?: boolean
36
- pt?: TileContentPassthrough
37
- listItems?: string[]
38
- footer?: string
39
- }
40
-
41
- export interface TileContentTextTile extends Omit<TileContent, '__typename'> {
42
- __typename?: 'TileContentTextTile'
43
- }
44
-
45
- export interface TileContentIconTile extends Omit<TileContent, '__typename'> {
46
- __typename?: 'TileContentIconTile'
47
- }
48
-
49
- export interface TileContentImageTile extends Omit<TileContent, '__typename'> {
50
- __typename?: 'TileContentImageTile'
51
- }
52
-
53
- export interface TileContentVideoTile extends Omit<TileContent, '__typename'> {
54
- __typename?: 'TileContentVideoTile'
55
- }
56
-
57
- export interface TileContentImageStackedAnimatedTile
58
- extends Omit<TileContent, '__typename'> {
59
- __typename?: 'TileContentImageStackedAnimatedTile'
60
- }
@@ -1,116 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileContent } from './TileContent'
3
- import { computed } from 'vue'
4
- import Card from 'primevue/card'
5
- import ImageComponent from '../Image/Image.vue'
6
- import VideoComponent from '../Video/Video.vue'
7
- import { twMerge } from 'tailwind-merge'
8
- import {
9
- combinePassthroughs,
10
- TileContentPt,
11
- } from '../../config/defaultPassthrough'
12
-
13
- const props = defineProps<TileContent>()
14
- const pt = computed(() => combinePassthroughs(TileContentPt, props.pt ?? {}))
15
-
16
- const computedStyle = computed(() => {
17
- return {
18
- 'background-color': props.backgroundColor ?? 'transparent',
19
- color: props?.textColor ?? 'inherit',
20
- textAlign: props.alignment ?? 'center',
21
- }
22
- })
23
-
24
- const computedCardLabelStyle = computed(() => {
25
- return {
26
- 'background-color': props?.cardLabel?.backgroundColor ?? 'transparent',
27
- color: props?.cardLabel?.textColor ?? 'inherit',
28
- }
29
- })
30
- </script>
31
-
32
- <template>
33
- <div :class="`tile-content ${pt?.root ?? ''}`" :style="computedStyle">
34
- <div
35
- v-if="cardLabel && !isImageStacked"
36
- :style="computedCardLabelStyle"
37
- :class="`tile-label absolute ${pt?.label}`"
38
- >
39
- {{ cardLabel.content }}
40
- </div>
41
- <Card
42
- :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
43
- :style="computedStyle"
44
- :pt:footer:class="`tile-content-ctas ${pt?.ctas ?? ''}`"
45
- :pt:body:class="pt?.body ?? ''"
46
- >
47
- <template v-if="description || listItems" #content>
48
- <div :class="`flex flex-col tile-content-inner ${pt?.content ?? ''}`">
49
- <div v-if="isImageStacked" class="tile-content-text">
50
- <h3
51
- v-if="headline"
52
- :class="`tile-content-headline ${pt?.headline ?? ''}`"
53
- >
54
- {{ headline }}
55
- </h3>
56
- <p :class="`tile-content-description ${pt?.description ?? ''}`">
57
- {{ description }}
58
- </p>
59
- </div>
60
- <h3
61
- v-if="!isImageStacked && headline"
62
- :class="`tile-content-headline ${pt?.headline ?? ''}`"
63
- >
64
- {{ headline }}
65
- </h3>
66
- <h6
67
- v-if="subheadline && !isImageStacked"
68
- :class="`tile-content-subheadline ${pt?.subheadline ?? ''}`"
69
- >
70
- {{ subheadline }}
71
- </h6>
72
- <div
73
- v-if="Video || Image"
74
- :class="`tile-content-media ${pt?.media ?? ''}`"
75
- >
76
- <div
77
- v-if="isImageStacked && cardLabel"
78
- :style="computedCardLabelStyle"
79
- :class="`tile-label absolute ${pt?.label}`"
80
- >
81
- {{ cardLabel.content }}
82
- </div>
83
- <div class="tile-content-media-background"></div>
84
- <ImageComponent
85
- v-if="Image"
86
- v-bind="Image"
87
- :class="
88
- // @ts-ignore
89
- twMerge('w-full', Image.class)
90
- "
91
- />
92
- <VideoComponent v-if="Video" v-bind="Video" />
93
- </div>
94
- <p
95
- v-if="!isImageStacked"
96
- :class="`tile-content-description ${pt?.description ?? ''}`"
97
- >
98
- {{ description }}
99
- </p>
100
- </div>
101
- </template>
102
-
103
- <template v-if="ctas || footer" #footer>
104
- <p v-if="footer" :class="`${pt?.footer ?? ''}`">
105
- {{ footer }}
106
- </p>
107
- <CTA
108
- v-for="(item, index) in ctas"
109
- :key="`${item?.title}-${index}`"
110
- :class="`cta-${index} ${pt?.cta}`"
111
- :="item"
112
- />
113
- </template>
114
- </Card>
115
- </div>
116
- </template>
@@ -1,83 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileContentIconTile } from './TileContent'
3
- import { computed } from 'vue'
4
- import Card from 'primevue/card'
5
- import ImageComponent from '../Image/Image.vue'
6
- import VideoComponent from '../Video/Video.vue'
7
- import { twMerge } from 'tailwind-merge'
8
- import {
9
- combinePassthroughs,
10
- TileContentIconTilePt,
11
- } from '../../config/defaultPassthrough'
12
-
13
- const props = defineProps<TileContentIconTile>()
14
- const pt = computed(() =>
15
- combinePassthroughs(TileContentIconTilePt, props.pt ?? {})
16
- )
17
- </script>
18
-
19
- <template>
20
- <div :class="`tile-content ${pt?.root ?? ''}`">
21
- <div
22
- v-if="cardLabel"
23
- :class="`tile-label absolute ${cardLabel?.type === 'Numeric' ? pt?.numericLabel : pt?.label}`"
24
- >
25
- {{ cardLabel.content }}
26
- </div>
27
-
28
- <Card
29
- :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
30
- :pt:footer:class="`tile-content-footer ${pt?.footer ?? ''}`"
31
- :pt:body:class="pt?.body ?? ''"
32
- >
33
- <template v-if="description || listItems" #content>
34
- <div :class="`flex flex-col tile-content-inner ${pt?.content ?? ''}`">
35
- <div v-if="Image" :class="`tile-content-media ${pt?.media ?? ''}`">
36
- <div class="tile-content-media-background"></div>
37
- <ImageComponent
38
- v-if="Image"
39
- v-bind="Image"
40
- :class="
41
- // @ts-ignore
42
- twMerge('w-full', Image.class)
43
- "
44
- />
45
- <VideoComponent v-if="Video" v-bind="Video" class="w-full" />
46
- </div>
47
- <h3
48
- v-if="headline"
49
- :class="`tile-content-headline ${pt?.headline ?? ''}`"
50
- >
51
- {{ headline }}
52
- </h3>
53
- <h6
54
- v-if="subheadline && !isImageStacked"
55
- :class="`tile-content-subheadline ${pt?.subheadline ?? ''}`"
56
- >
57
- {{ subheadline }}
58
- </h6>
59
-
60
- <div
61
- v-if="description"
62
- :class="`tile-content-description ${pt?.description ?? ''}`"
63
- v-html="description"
64
- ></div>
65
- </div>
66
- </template>
67
-
68
- <template v-if="ctas || footer" #footer>
69
- <p v-if="footer" :class="`${pt?.footerContent ?? ''}`">
70
- {{ footer }}
71
- </p>
72
- <div :class="pt?.ctas ?? ''">
73
- <CTA
74
- v-for="(item, index) in ctas"
75
- :key="`cta-${item.title}-${index}`"
76
- :class="`cta-${index} ${pt?.cta}`"
77
- :="item"
78
- />
79
- </div>
80
- </template>
81
- </Card>
82
- </div>
83
- </template>
@@ -1,121 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileContentImageStackedAnimatedTile } from './TileContent'
3
- import { computed } from 'vue'
4
- import Card from 'primevue/card'
5
- import ImageComponent from '../Image/Image.vue'
6
- import VideoComponent from '../Video/Video.vue'
7
- import { twMerge } from 'tailwind-merge'
8
- import {
9
- combinePassthroughs,
10
- TileContentImageStackedAnimatedTilePt,
11
- } from '../../config/defaultPassthrough'
12
-
13
- const props = defineProps<TileContentImageStackedAnimatedTile>()
14
- const pt = computed(() =>
15
- combinePassthroughs(TileContentImageStackedAnimatedTilePt, props.pt ?? {})
16
- )
17
-
18
- const isEven = computed(() => !((props.index ?? 0) % 2))
19
- const isFirst = computed(() => props.index === 0)
20
- </script>
21
-
22
- <template>
23
- <div :class="`tile-content ${pt?.root ?? ''}`">
24
- <Card
25
- :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
26
- :pt:footer:class="`tile-content-ctas ${pt?.ctas ?? ''}`"
27
- :pt:body:class="pt?.body ?? ''"
28
- >
29
- <template #content>
30
- <div
31
- :class="`flex gap-[5vmin] md:gap-12 relative ${isEven ? 'flex-row-reverse' : ''} tile-content-inner ${pt?.content ?? ''}`"
32
- >
33
- <div
34
- :class="`tile-content-text flex-auto relative z-20 flex flex-col justify-center ${pt?.text ?? ''} ${isEven ? 'items-start *:text-left' : 'items-end *:text-right'}`"
35
- >
36
- <h3
37
- v-if="headline"
38
- :class="`tile-content-headline w-full ${pt?.headline ?? ''}`"
39
- >
40
- {{ headline }}
41
- </h3>
42
- <h6
43
- v-if="subheadline"
44
- :class="`tile-content-subheadline ${pt?.subheadline ?? ''} w-full`"
45
- >
46
- {{ subheadline }}
47
- </h6>
48
- <p
49
- v-if="description"
50
- :class="`tile-content-description ${pt?.description ?? ''} w-full`"
51
- >
52
- {{ description }}
53
- </p>
54
- </div>
55
- <div
56
- v-if="Video || Image"
57
- :class="`tile-content-media relative ${pt?.media ?? ''}`"
58
- >
59
- <img
60
- :class="{
61
- absolute: true,
62
- 'w-full': true,
63
- 'z-0': true,
64
- 'top-[36%]': isFirst,
65
- 'left-[-16%]': isFirst,
66
- // Odd items
67
- 'bg-left-top': (isEven && !isFirst) || !isEven,
68
- 'rotate-90': isEven && !isFirst,
69
- 'left-[-28%]': isEven && !isFirst,
70
- 'top-[-10%]': isEven && !isFirst,
71
- // Even items
72
- 'top-[-16%]': !isEven,
73
- 'right-[-16%]': !isEven,
74
- 'rotate-180': !isEven,
75
- }"
76
- :src="
77
- isEven
78
- ? 'https://images.ctfassets.net/qqblaiss500w/5Bp3ySaz0pqR5gLtdxOQoi/db01031466deed9b7b959c08c17e5681/circles1.f3eead2.svg'
79
- : 'https://images.ctfassets.net/qqblaiss500w/5Bp3ySaz0pqR5gLtdxOQoi/db01031466deed9b7b959c08c17e5681/circles1.f3eead2.svg'
80
- "
81
- />
82
-
83
- <div
84
- v-if="cardLabel"
85
- :class="{
86
- [pt?.label ?? '']: true,
87
- 'tile-label': true,
88
- 'top-8': true,
89
- 'right-0': isEven,
90
- 'left-0': !isEven,
91
- }"
92
- >
93
- {{ cardLabel.content }}
94
- </div>
95
- <ImageComponent
96
- v-if="Image"
97
- v-bind="Image"
98
- :class="
99
- // @ts-ignore
100
- twMerge('w-full relative rounded-full z-10', Image.class)
101
- "
102
- />
103
- <VideoComponent v-if="Video" v-bind="Video" />
104
- </div>
105
- </div>
106
- </template>
107
-
108
- <template v-if="ctas || footer" #footer>
109
- <p v-if="footer" :class="`${pt?.footer ?? ''}`">
110
- {{ footer }}
111
- </p>
112
- <CTA
113
- v-for="(item, index) in ctas"
114
- :key="`cta-${item.title}-${index}`"
115
- :class="`cta-${index} ${pt?.cta}`"
116
- :="item"
117
- />
118
- </template>
119
- </Card>
120
- </div>
121
- </template>
@@ -1,80 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileContentImageTile } from './TileContent'
3
- import { computed } from 'vue'
4
- import Card from 'primevue/card'
5
- import ImageComponent from '../Image/Image.vue'
6
- import { twMerge } from 'tailwind-merge'
7
- import {
8
- combinePassthroughs,
9
- TileContentImageTilePt,
10
- } from '../../config/defaultPassthrough'
11
-
12
- const props = defineProps<TileContentImageTile>()
13
- const pt = computed(() =>
14
- combinePassthroughs(TileContentImageTilePt, props.pt ?? {})
15
- )
16
- </script>
17
-
18
- <template>
19
- <div :class="`tile-content ${pt?.root ?? ''}`">
20
- <Card
21
- :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
22
- :pt:footer:class="`tile-content-ctas ${pt?.footer ?? ''}`"
23
- :pt:body:class="pt?.body ?? ''"
24
- >
25
- <template v-if="description || listItems" #content>
26
- <div :class="`flex flex-col tile-content-inner ${pt?.content ?? ''}`">
27
- <div v-if="Image" :class="`tile-content-media ${pt?.media ?? ''}`">
28
- <div
29
- v-if="cardLabel"
30
- :class="`tile-label ${cardLabel?.type === 'Numeric' ? pt?.numericLabel : pt?.label}`"
31
- >
32
- {{ cardLabel.content }}
33
- </div>
34
- <div class="tile-content-media-background"></div>
35
- <ImageComponent
36
- v-if="Image"
37
- v-bind="Image"
38
- :class="
39
- // @ts-ignore
40
- twMerge('w-full rounded-full', Image.class)
41
- "
42
- />
43
- </div>
44
- <h3
45
- v-if="headline"
46
- :class="`tile-content-headline ${pt?.headline ?? ''}`"
47
- >
48
- {{ headline }}
49
- </h3>
50
- <h6
51
- v-if="subheadline"
52
- :class="`tile-content-subheadline ${pt?.subheadline ?? ''}`"
53
- >
54
- {{ subheadline }}
55
- </h6>
56
-
57
- <div
58
- v-if="description"
59
- :class="`tile-content-description ${pt?.description ?? ''}`"
60
- v-html="description"
61
- ></div>
62
- </div>
63
- </template>
64
-
65
- <template v-if="ctas || footer" #footer>
66
- <p v-if="footer" :class="`${pt?.footerContent ?? ''}`">
67
- {{ footer }}
68
- </p>
69
- <div :class="pt?.ctas ?? ''">
70
- <CTA
71
- v-for="(item, index) in ctas"
72
- :key="`cta-${item.title}-${index}`"
73
- :class="`cta-${index} ${pt?.cta}`"
74
- :="item"
75
- />
76
- </div>
77
- </template>
78
- </Card>
79
- </div>
80
- </template>
@@ -1,63 +0,0 @@
1
- <script setup lang="ts">
2
- import { TileContentTextTile } from './TileContent'
3
- import { computed } from 'vue'
4
- import Card from 'primevue/card'
5
- import {
6
- combinePassthroughs,
7
- TileContentTextTilePt,
8
- } from '../../config/defaultPassthrough'
9
-
10
- const props = defineProps<TileContentTextTile>()
11
- const pt = computed(() =>
12
- combinePassthroughs(TileContentTextTilePt, props.pt ?? {})
13
- )
14
- </script>
15
-
16
- <template>
17
- <div :class="`tile-content ${pt?.root ?? ''}`">
18
- <div v-if="cardLabel" :class="`tile-label absolute ${pt?.label}`">
19
- {{ cardLabel.content }}
20
- </div>
21
- <Card
22
- :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
23
- :pt:header:class="`tile-content-headline ${pt?.headline ?? ''}`"
24
- :pt:footer:class="`tile-content-ctas ${pt?.footer ?? ''}`"
25
- :pt:body:class="pt?.body ?? ''"
26
- >
27
- <template v-if="headline" #header>
28
- {{ headline }}
29
- </template>
30
-
31
- <template v-if="description || subheadline" #content>
32
- <div :class="`flex flex-col tile-content-inner ${pt?.content ?? ''}`">
33
- <h6
34
- v-if="subheadline"
35
- :class="`tile-content-subheadline ${pt?.subheadline ?? ''}`"
36
- >
37
- {{ subheadline }}
38
- </h6>
39
-
40
- <div
41
- v-if="description"
42
- :class="`tile-content-description ${pt?.description ?? ''}`"
43
- v-html="description"
44
- ></div>
45
- </div>
46
- </template>
47
-
48
- <template v-if="ctas || footer" #footer>
49
- <p v-if="footer" :class="`${pt?.footerContent ?? ''}`">
50
- {{ footer }}
51
- </p>
52
- <div :class="pt?.ctas ?? ''">
53
- <CTA
54
- v-for="(item, index) in ctas"
55
- :key="`cta-${item.title}-${index}`"
56
- :class="`cta-${index} ${pt?.cta}`"
57
- :="item"
58
- />
59
- </div>
60
- </template>
61
- </Card>
62
- </div>
63
- </template>