@cooperco/cooper-component-library 0.0.10 → 0.1.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 (178) hide show
  1. package/dist/component-lib.js +6947 -0
  2. package/dist/component-lib.umd.cjs +98 -0
  3. package/package.json +29 -20
  4. package/src/assets/fonts/GT-Walsheim-Bold.woff +0 -0
  5. package/src/assets/fonts/GT-Walsheim-Bold.woff2 +0 -0
  6. package/src/assets/fonts/GT-Walsheim-LC-Bold.woff +0 -0
  7. package/src/assets/fonts/GT-Walsheim-LC-Bold.woff2 +0 -0
  8. package/src/assets/fonts/GT-Walsheim-LC-Regular.woff +0 -0
  9. package/src/assets/fonts/GT-Walsheim-LC-Regular.woff2 +0 -0
  10. package/src/assets/fonts/GT-Walsheim-Medium.woff +0 -0
  11. package/src/assets/fonts/GT-Walsheim-Medium.woff2 +0 -0
  12. package/src/assets/fonts/GT-Walsheim-Regular.woff +0 -0
  13. package/src/assets/fonts/GT-Walsheim-Regular.woff2 +0 -0
  14. package/src/assets/fonts/fonts.scss +60 -0
  15. package/src/assets/fonts/notosanssc-bold-webfont.woff +0 -0
  16. package/src/assets/fonts/notosanssc-bold-webfont.woff2 +0 -0
  17. package/src/assets/fonts/notosanssc-regular-webfont.woff +0 -0
  18. package/src/assets/fonts/notosanssc-regular-webfont.woff2 +0 -0
  19. package/src/assets/main.css +18 -114
  20. package/src/assets/theme.css +5 -1
  21. package/src/components/{types → Accordion}/Accordion.ts +8 -6
  22. package/src/components/Accordion/Accordion.vue +66 -0
  23. package/src/components/Accordion/AccordionItem.ts +25 -0
  24. package/src/components/Accordion/AccordionItem.vue +104 -0
  25. package/src/components/{AccordionItem.vue → Accordion/AccordionListItem.vue} +22 -14
  26. package/src/components/Accordion/AccordionTileItem.vue +75 -0
  27. package/src/components/CTA/CTA.ts +22 -0
  28. package/src/components/CTA/CTA.vue +65 -0
  29. package/src/components/CarouselModule/CarouselModule.ts +20 -0
  30. package/src/components/{CarouselModule.vue → CarouselModule/CarouselModule.vue} +25 -7
  31. package/src/components/ContainerCollectionModule/ContainerCollectionModule.ts +12 -0
  32. package/src/components/{ContainerCollectionModule.vue → ContainerCollectionModule/ContainerCollectionModule.vue} +12 -3
  33. package/src/components/ContainerModule/ContainerModule.ts +69 -0
  34. package/src/components/{ContainerModule.vue → ContainerModule/ContainerModule.vue} +33 -36
  35. package/src/components/ContentModule/ContentModule.ts +31 -0
  36. package/src/components/ContentModule/ContentModule.vue +65 -0
  37. package/src/components/{types → FooterNavigation}/FooterNavigation.ts +3 -2
  38. package/src/components/{FooterNavigation.vue → FooterNavigation/FooterNavigation.vue} +4 -2
  39. package/src/components/Image/Image.vue +17 -0
  40. package/src/components/{types → LogoCollectionModule}/LogoCollectionModule.ts +3 -3
  41. package/src/components/{LogoCollectionModule.vue → LogoCollectionModule/LogoCollectionModule.vue} +13 -3
  42. package/src/components/{types → NavigationElement}/NavigationElement.ts +6 -3
  43. package/src/components/{NavigationElement.vue → NavigationElement/NavigationElement.vue} +18 -9
  44. package/src/components/{types → PrimaryNavigation}/PrimaryNavigation.ts +2 -2
  45. package/src/components/{PrimaryNavigation.vue → PrimaryNavigation/PrimaryNavigation.vue} +7 -4
  46. package/src/components/{types → SplitModule}/SplitModule.ts +6 -5
  47. package/src/components/SplitModule/SplitModule.vue +57 -0
  48. package/src/components/TestimonialModule/TestimonialModule.ts +22 -0
  49. package/src/components/TestimonialModule/TestimonialModule.vue +51 -0
  50. package/src/components/TileCollectionModule/TileCollectionModule.ts +18 -0
  51. package/src/components/TileCollectionModule/TileCollectionModule.vue +58 -0
  52. package/src/components/TileContent/TileContent.ts +60 -0
  53. package/src/components/{TileContent.vue → TileContent/TileContent.vue} +25 -14
  54. package/src/components/TileContent/TileContentIconTile.vue +83 -0
  55. package/src/components/TileContent/TileContentImageStackedAnimatedTile.vue +121 -0
  56. package/src/components/TileContent/TileContentImageTile.vue +80 -0
  57. package/src/components/TileContent/TileContentTextTile.vue +63 -0
  58. package/src/components/TileContent/TileContentVideoTile.vue +81 -0
  59. package/src/components/{types → Video}/Video.ts +1 -1
  60. package/src/components/{Video.vue → Video/Video.vue} +1 -1
  61. package/src/assets/usercard.jpg +0 -0
  62. package/src/assets/vue.svg +0 -1
  63. package/src/components/Accordion.vue +0 -33
  64. package/src/components/CTA.vue +0 -39
  65. package/src/components/ContentAndImage.vue +0 -34
  66. package/src/components/ContentMediaModule.vue +0 -50
  67. package/src/components/ContentModule.vue +0 -51
  68. package/src/components/IconChevron.vue +0 -107
  69. package/src/components/Image.vue +0 -15
  70. package/src/components/LogoContainerModule.vue +0 -30
  71. package/src/components/SplitModule.vue +0 -42
  72. package/src/components/Testimonial.vue +0 -48
  73. package/src/components/TestimonialModule.vue +0 -48
  74. package/src/components/TileCollection.vue +0 -37
  75. package/src/components/TileCollectionModule.vue +0 -45
  76. package/src/components/types/AccordionItem.ts +0 -19
  77. package/src/components/types/CTA.ts +0 -13
  78. package/src/components/types/CarouselModule.ts +0 -21
  79. package/src/components/types/ContainerCollectionModule.ts +0 -12
  80. package/src/components/types/ContainerModule.ts +0 -35
  81. package/src/components/types/ContentAndImage.ts +0 -14
  82. package/src/components/types/ContentMediaModule.ts +0 -14
  83. package/src/components/types/ContentModule.ts +0 -21
  84. package/src/components/types/LogoContainerModule.ts +0 -12
  85. package/src/components/types/Testimonial.ts +0 -17
  86. package/src/components/types/TileCollection.ts +0 -14
  87. package/src/components/types/TileContent.ts +0 -34
  88. package/src/components/types/index.ts +0 -10
  89. package/src/presets/aura/accordion/index.js +0 -81
  90. package/src/presets/aura/autocomplete/index.js +0 -280
  91. package/src/presets/aura/avatar/index.js +0 -46
  92. package/src/presets/aura/badge/index.js +0 -43
  93. package/src/presets/aura/badgedirective/index.js +0 -49
  94. package/src/presets/aura/blockui/index.js +0 -8
  95. package/src/presets/aura/breadcrumb/index.js +0 -63
  96. package/src/presets/aura/button/index.js +0 -511
  97. package/src/presets/aura/calendar/index.js +0 -702
  98. package/src/presets/aura/card/index.js +0 -53
  99. package/src/presets/aura/carousel/index.js +0 -160
  100. package/src/presets/aura/cascadeselect/index.js +0 -220
  101. package/src/presets/aura/checkbox/index.js +0 -107
  102. package/src/presets/aura/chip/index.js +0 -45
  103. package/src/presets/aura/chips/index.js +0 -126
  104. package/src/presets/aura/colorpicker/index.js +0 -132
  105. package/src/presets/aura/confirmpopup/index.js +0 -111
  106. package/src/presets/aura/contextmenu/index.js +0 -132
  107. package/src/presets/aura/datatable/index.js +0 -1290
  108. package/src/presets/aura/dataview/index.js +0 -40
  109. package/src/presets/aura/deferred/index.js +0 -3
  110. package/src/presets/aura/dialog/index.js +0 -250
  111. package/src/presets/aura/divider/index.js +0 -72
  112. package/src/presets/aura/dock/index.js +0 -97
  113. package/src/presets/aura/dropdown/index.js +0 -297
  114. package/src/presets/aura/fieldset/index.js +0 -95
  115. package/src/presets/aura/fileupload/index.js +0 -175
  116. package/src/presets/aura/floatlabel/index.js +0 -26
  117. package/src/presets/aura/galleria/index.js +0 -353
  118. package/src/presets/aura/global.js +0 -90
  119. package/src/presets/aura/iconfield/index.js +0 -22
  120. package/src/presets/aura/image/index.js +0 -206
  121. package/src/presets/aura/index.js +0 -181
  122. package/src/presets/aura/inlinemessage/index.js +0 -46
  123. package/src/presets/aura/inplace/index.js +0 -27
  124. package/src/presets/aura/inputgroup/index.js +0 -5
  125. package/src/presets/aura/inputgroupaddon/index.js +0 -28
  126. package/src/presets/aura/inputmask/index.js +0 -47
  127. package/src/presets/aura/inputnumber/index.js +0 -293
  128. package/src/presets/aura/inputotp/index.js +0 -69
  129. package/src/presets/aura/inputswitch/index.js +0 -94
  130. package/src/presets/aura/inputtext/index.js +0 -63
  131. package/src/presets/aura/knob/index.js +0 -47
  132. package/src/presets/aura/listbox/index.js +0 -158
  133. package/src/presets/aura/megamenu/index.js +0 -206
  134. package/src/presets/aura/menu/index.js +0 -122
  135. package/src/presets/aura/menubar/index.js +0 -184
  136. package/src/presets/aura/message/index.js +0 -112
  137. package/src/presets/aura/metergroup/index.js +0 -110
  138. package/src/presets/aura/multiselect/index.js +0 -579
  139. package/src/presets/aura/orderlist/index.js +0 -281
  140. package/src/presets/aura/organizationchart/index.js +0 -142
  141. package/src/presets/aura/overlaypanel/index.js +0 -34
  142. package/src/presets/aura/paginator/index.js +0 -566
  143. package/src/presets/aura/panel/index.js +0 -102
  144. package/src/presets/aura/panelmenu/index.js +0 -130
  145. package/src/presets/aura/password/index.js +0 -143
  146. package/src/presets/aura/picklist/index.js +0 -718
  147. package/src/presets/aura/progressbar/index.js +0 -64
  148. package/src/presets/aura/progressspinner/index.js +0 -51
  149. package/src/presets/aura/radiobutton/index.js +0 -121
  150. package/src/presets/aura/rating/index.js +0 -95
  151. package/src/presets/aura/ripple/index.js +0 -6
  152. package/src/presets/aura/scrollpanel/index.js +0 -77
  153. package/src/presets/aura/scrolltop/index.js +0 -45
  154. package/src/presets/aura/selectbutton/index.js +0 -66
  155. package/src/presets/aura/sidebar/index.js +0 -160
  156. package/src/presets/aura/skeleton/index.js +0 -19
  157. package/src/presets/aura/slider/index.js +0 -144
  158. package/src/presets/aura/speeddial/index.js +0 -579
  159. package/src/presets/aura/splitbutton/index.js +0 -1185
  160. package/src/presets/aura/splitter/index.js +0 -71
  161. package/src/presets/aura/stepper/index.js +0 -183
  162. package/src/presets/aura/steps/index.js +0 -117
  163. package/src/presets/aura/tabmenu/index.js +0 -75
  164. package/src/presets/aura/tabview/index.js +0 -162
  165. package/src/presets/aura/tag/index.js +0 -44
  166. package/src/presets/aura/terminal/index.js +0 -60
  167. package/src/presets/aura/textarea/index.js +0 -49
  168. package/src/presets/aura/tieredmenu/index.js +0 -125
  169. package/src/presets/aura/timeline/index.js +0 -114
  170. package/src/presets/aura/toast/index.js +0 -151
  171. package/src/presets/aura/togglebutton/index.js +0 -98
  172. package/src/presets/aura/toolbar/index.js +0 -28
  173. package/src/presets/aura/tooltip/index.js +0 -73
  174. package/src/presets/aura/tree/index.js +0 -294
  175. package/src/presets/aura/treeselect/index.js +0 -404
  176. package/src/presets/aura/treetable/index.js +0 -513
  177. package/src/presets/aura/tristatecheckbox/index.js +0 -121
  178. /package/src/components/{types → Image}/Image.ts +0 -0
@@ -0,0 +1,121 @@
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>
@@ -0,0 +1,80 @@
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>
@@ -0,0 +1,63 @@
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>
@@ -0,0 +1,81 @@
1
+ <script setup lang="ts">
2
+ import { TileContentVideoTile } from './TileContent'
3
+ import { computed } from 'vue'
4
+ import Card from 'primevue/card'
5
+ import VideoComponent from '../Video/Video.vue'
6
+ import {
7
+ combinePassthroughs,
8
+ TileContentVideoTilePt,
9
+ } from '../../config/defaultPassthrough'
10
+
11
+ const props = defineProps<TileContentVideoTile>()
12
+ const pt = computed(() =>
13
+ combinePassthroughs(TileContentVideoTilePt, props.pt ?? {})
14
+ )
15
+
16
+ const computedCardLabelStyle = computed(() => {
17
+ return {
18
+ 'background-color': props?.cardLabel?.backgroundColor ?? 'transparent',
19
+ color: props?.cardLabel?.textColor ?? 'inherit',
20
+ }
21
+ })
22
+ </script>
23
+
24
+ <template>
25
+ <div
26
+ :class="`tile-content relative text-center list-none flex-auto rounded overflow-visible mx-auto shadow-none ${pt?.root ?? ''}`"
27
+ >
28
+ <div
29
+ v-if="cardLabel"
30
+ :style="computedCardLabelStyle"
31
+ :class="`tile-label absolute ${pt?.label}`"
32
+ >
33
+ {{ cardLabel.content }}
34
+ </div>
35
+ <Card
36
+ :class="`${pt?.container ?? ''} tile-content-container shadow-none`"
37
+ :pt:footer:class="`tile-content-ctas ${pt?.ctas ?? ''}`"
38
+ :pt:body:class="pt?.body ?? ''"
39
+ >
40
+ <template v-if="description || listItems" #content>
41
+ <div :class="`flex flex-col tile-content-inner ${pt?.content ?? ''}`">
42
+ <h3
43
+ v-if="headline"
44
+ :class="`tile-content-headline ${pt?.headline ?? ''}`"
45
+ >
46
+ {{ headline }}
47
+ </h3>
48
+ <h6
49
+ v-if="subheadline"
50
+ :class="`tile-content-subheadline ${pt?.subheadline ?? ''}`"
51
+ >
52
+ {{ subheadline }}
53
+ </h6>
54
+
55
+ <div v-if="Video" :class="`tile-content-media ${pt?.media ?? ''}`">
56
+ <div class="tile-content-media-background"></div>
57
+ <VideoComponent v-if="Video" v-bind="Video" class="w-full" />
58
+ </div>
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?.footer ?? ''}`">
70
+ {{ footer }}
71
+ </p>
72
+ <CTA
73
+ v-for="(item, index) in ctas"
74
+ :key="`cta-${item.title}-${index}`"
75
+ :class="`cta-${index} ${pt?.cta}`"
76
+ :="item"
77
+ />
78
+ </template>
79
+ </Card>
80
+ </div>
81
+ </template>
@@ -1,4 +1,4 @@
1
- import { ImageMedia } from './Image'
1
+ import { ImageMedia } from '../Image/Image'
2
2
 
3
3
  export interface Video {
4
4
  __typename?: 'Video'
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { Video } from './types/Video'
2
+ import { Video } from './Video'
3
3
 
4
4
  withDefaults(defineProps<Video>(), { isEmbedded: false })
5
5
  </script>
Binary file
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
@@ -1,33 +0,0 @@
1
- <script setup lang="ts">
2
- // Can potentially merge this and Testimonial
3
- import { type Accordion } from './types/Accordion'
4
- import AccordionItem from './AccordionItem.vue'
5
-
6
- defineProps<Accordion>()
7
- </script>
8
-
9
- <template>
10
- <component :is="isChild ? 'div' : 'section'" class="accordion-module">
11
- <h3
12
- v-if="headline"
13
- :class="`accordion-module-headline ${pt?.headline ?? ''}`"
14
- >
15
- {{ headline }}
16
- </h3>
17
- <div
18
- v-if="modules"
19
- :class="`accordion-module-container container ${type === 'List' ? 'flex-col' : ''} flex ${pt?.container ?? ''}`"
20
- >
21
- <template v-for="(item, index) in modules">
22
- <AccordionItem
23
- :itemNumber="index"
24
- :isFirst="index === 0"
25
- :isLast="index === modules.length - 1"
26
- v-bind="item"
27
- />
28
- </template>
29
- </div>
30
- </component>
31
- </template>
32
-
33
- <style></style>
@@ -1,39 +0,0 @@
1
- <script setup lang="ts">
2
- import { CTA } from './types/CTA'
3
- import { CTAOptions } from '../types'
4
- import Button from 'primevue/button'
5
- import { computed } from 'vue'
6
-
7
- const props = defineProps<CTA>()
8
-
9
- const buttonTypeValue = computed(() => {
10
- return CTAOptions[props?.buttonType]
11
- })
12
-
13
- const fullClassname = computed(() => `cta ${props.class ?? ''}`)
14
-
15
- const computedStyle = computed(() => {
16
- return {
17
- color: props.textColor,
18
- 'background-color':
19
- buttonTypeValue.value == CTAOptions.fill ? props.color : 'transparent',
20
- 'border-color':
21
- buttonTypeValue.value != CTAOptions.link ? props.color : 'transparent',
22
- }
23
- })
24
-
25
- // Update to support url vs page
26
- const url = computed(() => {
27
- return props?.url?.link
28
- })
29
- </script>
30
-
31
- <template>
32
- <Button
33
- :class="fullClassname"
34
- :label="title"
35
- :style="computedStyle"
36
- :aria-label="ariaLabel"
37
- :link="buttonTypeValue == CTAOptions.link"
38
- />
39
- </template>
@@ -1,34 +0,0 @@
1
- <script setup lang="ts">
2
- // Can potentially merge this and Testimonial
3
- import { type ContentAndImage } from './types/ContentAndImage'
4
- import { computed } from 'vue'
5
- import ContentModule from './ContentModule.vue'
6
-
7
- const props = defineProps<ContentAndImage>()
8
-
9
- const computedStyle = computed(() => {
10
- return {
11
- 'background-color': props.backgroundColor ?? 'transparent',
12
- color: props.textColor ?? 'inherit',
13
- }
14
- })
15
- </script>
16
-
17
- <template>
18
- <component
19
- :is="isChild ? 'div' : 'section'"
20
- :style="computedStyle"
21
- class="content-and-image"
22
- >
23
- <div
24
- class="content-and-image-inner container flex flex-col lg:flex-row content-between justify-between mx-auto"
25
- :class="{ 'text-center': fullWidthContent }"
26
- >
27
- <div v-if="content" class="content">
28
- <ContentModule :="content" />
29
- </div>
30
-
31
- <img v-if="image" class="image" :="image" />
32
- </div>
33
- </component>
34
- </template>
@@ -1,50 +0,0 @@
1
- <script setup lang="ts">
2
- import { ContentMediaModule } from './types/ContentMediaModule'
3
- import { VariantOptions } from '../types'
4
- import { computed } from 'vue'
5
- import ContentModule from './ContentModule.vue'
6
-
7
- const props = defineProps<ContentMediaModule>()
8
-
9
- const variantValue = computed(() => {
10
- return VariantOptions[props.variant]
11
- })
12
-
13
- const computedStyle = computed(() => {
14
- return {
15
- 'background-color': props.backgroundColor ?? 'transparent',
16
- color: props.textColor ?? 'inherit',
17
- }
18
- })
19
- </script>
20
-
21
- <template>
22
- <component
23
- :is="isChild ? 'div' : 'section'"
24
- :style="computedStyle"
25
- class="content-media-module"
26
- >
27
- <div
28
- class="content-media-container flex flex-row gap-5 relative"
29
- :class="{ container: variantValue != VariantOptions.Hero }"
30
- >
31
- <img
32
- v-if="media"
33
- class="media"
34
- :class="{ 'w-screen': variantValue == VariantOptions.Hero }"
35
- :src="media.src"
36
- :alt="media.altTag"
37
- :height="media.height"
38
- :width="media.width"
39
- />
40
-
41
- <ContentModule
42
- class="content"
43
- :class="{
44
- absolute: variantValue == VariantOptions.Hero,
45
- }"
46
- :="content"
47
- />
48
- </div>
49
- </component>
50
- </template>
@@ -1,51 +0,0 @@
1
- <script setup lang="ts">
2
- import { ContentModule } from './types/ContentModule'
3
- import CTA from './CTA.vue'
4
- import { computed } from 'vue'
5
-
6
- const props = defineProps<ContentModule>()
7
-
8
- const computedStyle = computed(() => {
9
- return {
10
- 'background-color': props.backgroundColor ?? 'transparent',
11
- color: props.textColor ?? 'inherit',
12
- }
13
- })
14
- const computedClassname = computed(
15
- () => `content-module p-5 ${props.class ?? ''}`
16
- )
17
- </script>
18
-
19
- <template>
20
- <div :class="computedClassname" :style="computedStyle">
21
- <div :class="`content-module-container mx-auto ${pt?.container ?? ''}`">
22
- <img
23
- v-if="logo"
24
- :src="logo.src"
25
- :alt="logo.alt"
26
- :class="`${pt?.logo ?? ''}`"
27
- />
28
- <h2
29
- v-if="headline"
30
- :class="`content-module-headline ${pt?.headline ?? ''}`"
31
- >
32
- {{ headline }}
33
- </h2>
34
- <h2
35
- v-if="subHeadline"
36
- :class="`content-module-subHeadline ${pt?.subHeadline ?? ''}`"
37
- >
38
- {{ subHeadline }}
39
- </h2>
40
- <p
41
- v-if="description"
42
- :class="`content-module-description ${pt?.description ?? ''}`"
43
- >
44
- {{ description }}
45
- </p>
46
- <div v-if="CTAs" :class="`content-module-ctas ${pt?.ctas ?? ''}`">
47
- <CTA v-for="(item, index) in CTAs" v-bind="item" />
48
- </div>
49
- </div>
50
- </div>
51
- </template>
@@ -1,107 +0,0 @@
1
- <script lang="ts" setup>
2
- import { computed } from 'vue'
3
- const props = defineProps({
4
- bold: {
5
- type: Boolean,
6
- default: false,
7
- },
8
- orientation: {
9
- type: String,
10
- default: 'right',
11
- },
12
- })
13
-
14
- const orientClass = computed(() => {
15
- return 'orient-' + props.orientation
16
- })
17
- </script>
18
-
19
- <template>
20
- <i>
21
- <svg
22
- v-if="!props.bold"
23
- :class="orientClass"
24
- xwidth="19px"
25
- xheight="35px"
26
- height="1em"
27
- viewBox="0 0 19 35"
28
- version="1.1"
29
- xmlns="http://www.w3.org/2000/svg"
30
- xmlns:xlink="http://www.w3.org/1999/xlink"
31
- >
32
- <title>icon-arrow-lg</title>
33
- <defs>
34
- <path
35
- id="path-1"
36
- d="M366,124.5 C366,124.907277 365.845623,125.313759 365.536079,125.624786 L349.70258,141.534057 C349.084282,142.155314 348.08123,142.155314 347.463724,141.534057 C346.845425,140.9128 346.845425,139.905743 347.463724,139.284486 L362.177794,124.5 L347.463724,109.715514 C346.845425,109.094257 346.845425,108.0872 347.463724,107.465943 C348.082022,106.844686 349.085074,106.844686 349.70258,107.465943 L365.536079,123.375214 C365.845623,123.686241 366,124.092723 366,124.5"
37
- ></path>
38
- </defs>
39
- <g id="r4" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
40
- <g
41
- id="CCB_Sperm-Donor_HP_M_R4"
42
- transform="translate(-380.000000, -2753.000000)"
43
- >
44
- <g id="TESTIMONIALS" transform="translate(0.000000, 2175.000000)">
45
- <g id="Group-15" transform="translate(33.000000, 471.000000)">
46
- <mask id="mask-2" fill="white">
47
- <use xlink:href="#path-1"></use>
48
- </mask>
49
- <use
50
- id="icon-arrow-lg"
51
- fill="currentcolor"
52
- xlink:href="#path-1"
53
- ></use>
54
- </g>
55
- </g>
56
- </g>
57
- </g>
58
- </svg>
59
- <svg
60
- v-if="props.bold"
61
- :class="orientClass"
62
- xwidth="7px"
63
- xheight="10px"
64
- height="1em"
65
- viewBox="0 0 7 10"
66
- version="1.1"
67
- xmlns="http://www.w3.org/2000/svg"
68
- xmlns:xlink="http://www.w3.org/1999/xlink"
69
- >
70
- <title>icon-arrow</title>
71
- <g id="r4" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
72
- <g
73
- id="CCB_Sperm-Donor_Location_1_D_R4"
74
- transform="translate(-182.000000, -2023.000000)"
75
- fill="currentcolor"
76
- >
77
- <g id="Group-2" transform="translate(120.000000, 409.000000)">
78
- <g id="Group" transform="translate(0.000000, 90.000000)">
79
- <g id="LOS-ALTOS" transform="translate(60.000000, 1294.000000)">
80
- <g id="ADDRESS" transform="translate(0.000000, 12.000000)">
81
- <g id="Group-19" transform="translate(2.696552, 214.000000)">
82
- <path
83
- id="icon-arrow"
84
- d="M5.59137931,8.92855676 C5.59137931,9.13884623 5.51349799,9.34872498 5.35733597,9.50931713 L1.36342228,13.6165333 C1.05149763,13.9373069 0.545868153,13.9373069 0.233943494,13.6165333 C-0.0779811647,13.2957597 -0.0779811647,12.7757862 0.233943494,12.4550126 L3.66271839,8.92855676 L0.233943494,5.40210093 C-0.0779811647,5.08132735 -0.0779811647,4.56135377 0.233943494,4.24058019 C0.545868153,3.9198066 1.05149763,3.9198066 1.36342228,4.24058019 L5.35733597,8.34779639 C5.51349799,8.50838854 5.59137931,8.71826729 5.59137931,8.92855676 Z"
85
- ></path>
86
- </g>
87
- </g>
88
- </g>
89
- </g>
90
- </g>
91
- </g>
92
- </g>
93
- </svg>
94
- </i>
95
- </template>
96
-
97
- <style scoped>
98
- .orient-up {
99
- transform: rotate(-90deg);
100
- }
101
- .orient-down {
102
- transform: rotate(90deg);
103
- }
104
- .orient-left {
105
- transform: rotate(180deg);
106
- }
107
- </style>