@cooperco/cooper-component-library 0.0.10 → 0.1.1

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 (181) hide show
  1. package/dist/component-lib.js +6960 -0
  2. package/dist/component-lib.umd.cjs +98 -0
  3. package/dist/style.css +1 -0
  4. package/dist/vite.svg +16 -0
  5. package/package.json +93 -84
  6. package/src/assets/fonts/GT-Walsheim-Bold.woff +0 -0
  7. package/src/assets/fonts/GT-Walsheim-Bold.woff2 +0 -0
  8. package/src/assets/fonts/GT-Walsheim-LC-Bold.woff +0 -0
  9. package/src/assets/fonts/GT-Walsheim-LC-Bold.woff2 +0 -0
  10. package/src/assets/fonts/GT-Walsheim-LC-Regular.woff +0 -0
  11. package/src/assets/fonts/GT-Walsheim-LC-Regular.woff2 +0 -0
  12. package/src/assets/fonts/GT-Walsheim-Medium.woff +0 -0
  13. package/src/assets/fonts/GT-Walsheim-Medium.woff2 +0 -0
  14. package/src/assets/fonts/GT-Walsheim-Regular.woff +0 -0
  15. package/src/assets/fonts/GT-Walsheim-Regular.woff2 +0 -0
  16. package/src/assets/fonts/fonts.scss +60 -0
  17. package/src/assets/fonts/notosanssc-bold-webfont.woff +0 -0
  18. package/src/assets/fonts/notosanssc-bold-webfont.woff2 +0 -0
  19. package/src/assets/fonts/notosanssc-regular-webfont.woff +0 -0
  20. package/src/assets/fonts/notosanssc-regular-webfont.woff2 +0 -0
  21. package/src/assets/main.css +18 -114
  22. package/src/assets/theme.css +5 -1
  23. package/src/components/{types → Accordion}/Accordion.ts +8 -6
  24. package/src/components/Accordion/Accordion.vue +66 -0
  25. package/src/components/Accordion/AccordionItem.ts +25 -0
  26. package/src/components/Accordion/AccordionItem.vue +104 -0
  27. package/src/components/{AccordionItem.vue → Accordion/AccordionListItem.vue} +22 -14
  28. package/src/components/Accordion/AccordionTileItem.vue +75 -0
  29. package/src/components/CTA/CTA.ts +22 -0
  30. package/src/components/CTA/CTA.vue +65 -0
  31. package/src/components/CarouselModule/CarouselModule.ts +20 -0
  32. package/src/components/{CarouselModule.vue → CarouselModule/CarouselModule.vue} +25 -7
  33. package/src/components/ContainerCollectionModule/ContainerCollectionModule.ts +12 -0
  34. package/src/components/{ContainerCollectionModule.vue → ContainerCollectionModule/ContainerCollectionModule.vue} +12 -3
  35. package/src/components/ContainerModule/ContainerModule.ts +69 -0
  36. package/src/components/{ContainerModule.vue → ContainerModule/ContainerModule.vue} +33 -36
  37. package/src/components/ContentModule/ContentModule.ts +31 -0
  38. package/src/components/ContentModule/ContentModule.vue +65 -0
  39. package/src/components/{types → FooterNavigation}/FooterNavigation.ts +3 -2
  40. package/src/components/{FooterNavigation.vue → FooterNavigation/FooterNavigation.vue} +4 -2
  41. package/src/components/Image/Image.vue +17 -0
  42. package/src/components/{types → LogoCollectionModule}/LogoCollectionModule.ts +3 -3
  43. package/src/components/{LogoCollectionModule.vue → LogoCollectionModule/LogoCollectionModule.vue} +13 -3
  44. package/src/components/{types → NavigationElement}/NavigationElement.ts +6 -3
  45. package/src/components/{NavigationElement.vue → NavigationElement/NavigationElement.vue} +18 -9
  46. package/src/components/{types → PrimaryNavigation}/PrimaryNavigation.ts +2 -2
  47. package/src/components/{PrimaryNavigation.vue → PrimaryNavigation/PrimaryNavigation.vue} +7 -4
  48. package/src/components/{types → SplitModule}/SplitModule.ts +6 -5
  49. package/src/components/SplitModule/SplitModule.vue +57 -0
  50. package/src/components/TestimonialModule/TestimonialModule.ts +22 -0
  51. package/src/components/TestimonialModule/TestimonialModule.vue +51 -0
  52. package/src/components/TileCollectionModule/TileCollectionModule.ts +18 -0
  53. package/src/components/TileCollectionModule/TileCollectionModule.vue +58 -0
  54. package/src/components/TileContent/TileContent.ts +60 -0
  55. package/src/components/{TileContent.vue → TileContent/TileContent.vue} +25 -14
  56. package/src/components/TileContent/TileContentIconTile.vue +83 -0
  57. package/src/components/TileContent/TileContentImageStackedAnimatedTile.vue +121 -0
  58. package/src/components/TileContent/TileContentImageTile.vue +80 -0
  59. package/src/components/TileContent/TileContentTextTile.vue +63 -0
  60. package/src/components/TileContent/TileContentVideoTile.vue +81 -0
  61. package/src/components/{types → Video}/Video.ts +1 -1
  62. package/src/components/{Video.vue → Video/Video.vue} +1 -1
  63. package/src/config/defaultPassthrough.ts +261 -0
  64. package/src/assets/usercard.jpg +0 -0
  65. package/src/assets/vue.svg +0 -1
  66. package/src/components/Accordion.vue +0 -33
  67. package/src/components/CTA.vue +0 -39
  68. package/src/components/ContentAndImage.vue +0 -34
  69. package/src/components/ContentMediaModule.vue +0 -50
  70. package/src/components/ContentModule.vue +0 -51
  71. package/src/components/IconChevron.vue +0 -107
  72. package/src/components/Image.vue +0 -15
  73. package/src/components/LogoContainerModule.vue +0 -30
  74. package/src/components/SplitModule.vue +0 -42
  75. package/src/components/Testimonial.vue +0 -48
  76. package/src/components/TestimonialModule.vue +0 -48
  77. package/src/components/TileCollection.vue +0 -37
  78. package/src/components/TileCollectionModule.vue +0 -45
  79. package/src/components/types/AccordionItem.ts +0 -19
  80. package/src/components/types/CTA.ts +0 -13
  81. package/src/components/types/CarouselModule.ts +0 -21
  82. package/src/components/types/ContainerCollectionModule.ts +0 -12
  83. package/src/components/types/ContainerModule.ts +0 -35
  84. package/src/components/types/ContentAndImage.ts +0 -14
  85. package/src/components/types/ContentMediaModule.ts +0 -14
  86. package/src/components/types/ContentModule.ts +0 -21
  87. package/src/components/types/LogoContainerModule.ts +0 -12
  88. package/src/components/types/Testimonial.ts +0 -17
  89. package/src/components/types/TileCollection.ts +0 -14
  90. package/src/components/types/TileContent.ts +0 -34
  91. package/src/components/types/index.ts +0 -10
  92. package/src/presets/aura/accordion/index.js +0 -81
  93. package/src/presets/aura/autocomplete/index.js +0 -280
  94. package/src/presets/aura/avatar/index.js +0 -46
  95. package/src/presets/aura/badge/index.js +0 -43
  96. package/src/presets/aura/badgedirective/index.js +0 -49
  97. package/src/presets/aura/blockui/index.js +0 -8
  98. package/src/presets/aura/breadcrumb/index.js +0 -63
  99. package/src/presets/aura/button/index.js +0 -511
  100. package/src/presets/aura/calendar/index.js +0 -702
  101. package/src/presets/aura/card/index.js +0 -53
  102. package/src/presets/aura/carousel/index.js +0 -160
  103. package/src/presets/aura/cascadeselect/index.js +0 -220
  104. package/src/presets/aura/checkbox/index.js +0 -107
  105. package/src/presets/aura/chip/index.js +0 -45
  106. package/src/presets/aura/chips/index.js +0 -126
  107. package/src/presets/aura/colorpicker/index.js +0 -132
  108. package/src/presets/aura/confirmpopup/index.js +0 -111
  109. package/src/presets/aura/contextmenu/index.js +0 -132
  110. package/src/presets/aura/datatable/index.js +0 -1290
  111. package/src/presets/aura/dataview/index.js +0 -40
  112. package/src/presets/aura/deferred/index.js +0 -3
  113. package/src/presets/aura/dialog/index.js +0 -250
  114. package/src/presets/aura/divider/index.js +0 -72
  115. package/src/presets/aura/dock/index.js +0 -97
  116. package/src/presets/aura/dropdown/index.js +0 -297
  117. package/src/presets/aura/fieldset/index.js +0 -95
  118. package/src/presets/aura/fileupload/index.js +0 -175
  119. package/src/presets/aura/floatlabel/index.js +0 -26
  120. package/src/presets/aura/galleria/index.js +0 -353
  121. package/src/presets/aura/global.js +0 -90
  122. package/src/presets/aura/iconfield/index.js +0 -22
  123. package/src/presets/aura/image/index.js +0 -206
  124. package/src/presets/aura/index.js +0 -181
  125. package/src/presets/aura/inlinemessage/index.js +0 -46
  126. package/src/presets/aura/inplace/index.js +0 -27
  127. package/src/presets/aura/inputgroup/index.js +0 -5
  128. package/src/presets/aura/inputgroupaddon/index.js +0 -28
  129. package/src/presets/aura/inputmask/index.js +0 -47
  130. package/src/presets/aura/inputnumber/index.js +0 -293
  131. package/src/presets/aura/inputotp/index.js +0 -69
  132. package/src/presets/aura/inputswitch/index.js +0 -94
  133. package/src/presets/aura/inputtext/index.js +0 -63
  134. package/src/presets/aura/knob/index.js +0 -47
  135. package/src/presets/aura/listbox/index.js +0 -158
  136. package/src/presets/aura/megamenu/index.js +0 -206
  137. package/src/presets/aura/menu/index.js +0 -122
  138. package/src/presets/aura/menubar/index.js +0 -184
  139. package/src/presets/aura/message/index.js +0 -112
  140. package/src/presets/aura/metergroup/index.js +0 -110
  141. package/src/presets/aura/multiselect/index.js +0 -579
  142. package/src/presets/aura/orderlist/index.js +0 -281
  143. package/src/presets/aura/organizationchart/index.js +0 -142
  144. package/src/presets/aura/overlaypanel/index.js +0 -34
  145. package/src/presets/aura/paginator/index.js +0 -566
  146. package/src/presets/aura/panel/index.js +0 -102
  147. package/src/presets/aura/panelmenu/index.js +0 -130
  148. package/src/presets/aura/password/index.js +0 -143
  149. package/src/presets/aura/picklist/index.js +0 -718
  150. package/src/presets/aura/progressbar/index.js +0 -64
  151. package/src/presets/aura/progressspinner/index.js +0 -51
  152. package/src/presets/aura/radiobutton/index.js +0 -121
  153. package/src/presets/aura/rating/index.js +0 -95
  154. package/src/presets/aura/ripple/index.js +0 -6
  155. package/src/presets/aura/scrollpanel/index.js +0 -77
  156. package/src/presets/aura/scrolltop/index.js +0 -45
  157. package/src/presets/aura/selectbutton/index.js +0 -66
  158. package/src/presets/aura/sidebar/index.js +0 -160
  159. package/src/presets/aura/skeleton/index.js +0 -19
  160. package/src/presets/aura/slider/index.js +0 -144
  161. package/src/presets/aura/speeddial/index.js +0 -579
  162. package/src/presets/aura/splitbutton/index.js +0 -1185
  163. package/src/presets/aura/splitter/index.js +0 -71
  164. package/src/presets/aura/stepper/index.js +0 -183
  165. package/src/presets/aura/steps/index.js +0 -117
  166. package/src/presets/aura/tabmenu/index.js +0 -75
  167. package/src/presets/aura/tabview/index.js +0 -162
  168. package/src/presets/aura/tag/index.js +0 -44
  169. package/src/presets/aura/terminal/index.js +0 -60
  170. package/src/presets/aura/textarea/index.js +0 -49
  171. package/src/presets/aura/tieredmenu/index.js +0 -125
  172. package/src/presets/aura/timeline/index.js +0 -114
  173. package/src/presets/aura/toast/index.js +0 -151
  174. package/src/presets/aura/togglebutton/index.js +0 -98
  175. package/src/presets/aura/toolbar/index.js +0 -28
  176. package/src/presets/aura/tooltip/index.js +0 -73
  177. package/src/presets/aura/tree/index.js +0 -294
  178. package/src/presets/aura/treeselect/index.js +0 -404
  179. package/src/presets/aura/treetable/index.js +0 -513
  180. package/src/presets/aura/tristatecheckbox/index.js +0 -121
  181. /package/src/components/{types → Image}/Image.ts +0 -0
@@ -0,0 +1,261 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { twMerge } from 'tailwind-merge'
3
+ import { ComponentPassthrough } from '../types'
4
+ import { ContainerModulePassthrough } from '../components/ContainerModule/ContainerModule'
5
+ import { AccordionItemPassthrough } from '../components/Accordion/AccordionItem'
6
+ import { AccordionPassthrough } from '../components/Accordion/Accordion'
7
+ import { CarouselPassthrough } from '../components/CarouselModule/CarouselModule'
8
+ import { ContentModulePassthrough } from '../components/ContentModule/ContentModule'
9
+ import { TestimonialModulePassthrough } from '../components/TestimonialModule/TestimonialModule'
10
+ import { TileContentPassthrough } from '../components/TileContent/TileContent'
11
+ import { CTAPassthrough } from '../components/CTA/CTA'
12
+
13
+ export const DEFAULT_PASSTHROUGH: ComponentPassthrough = {
14
+ headline:
15
+ 'mb-12 text-4xl md:text-5xl font-bold leading-tight text-center text-primary',
16
+ subheadline: 'mb-2',
17
+ content: '',
18
+ description: '',
19
+ start: '',
20
+ center: '',
21
+ end: '',
22
+ container: 'max-w-[1024px] mx-auto',
23
+ }
24
+
25
+ interface GenericComponentPassthrough
26
+ extends ComponentPassthrough,
27
+ AccordionPassthrough,
28
+ AccordionItemPassthrough,
29
+ CarouselPassthrough,
30
+ ContainerModulePassthrough,
31
+ ContentModulePassthrough,
32
+ CTAPassthrough,
33
+ TestimonialModulePassthrough,
34
+ TileContentPassthrough {}
35
+
36
+ /**
37
+ * TODO: Need to define the types for the passthroughs.
38
+ * REMOVE eslint-disable once types are defined
39
+ */
40
+ export const combinePassthroughs = <
41
+ PtType extends GenericComponentPassthrough,
42
+ OverrideType extends GenericComponentPassthrough,
43
+ >(
44
+ passthrough: PtType,
45
+ overrides: OverrideType
46
+ ) => {
47
+ const built: GenericComponentPassthrough = {}
48
+
49
+ // First combine the core passthroughs
50
+ for (const key in passthrough) {
51
+ ;(built as any)[key] = twMerge(
52
+ (passthrough as any)[key] ?? '',
53
+ (overrides as any)[key] ?? ''
54
+ )
55
+ }
56
+
57
+ // Combine any overrides
58
+ for (const key in overrides) {
59
+ ;(built as any)[key] = twMerge(
60
+ (built as any)[key] ?? '',
61
+ (overrides as any)[key] ?? ''
62
+ )
63
+ }
64
+
65
+ return built
66
+ }
67
+
68
+ export interface AccordionPtVariants {
69
+ List: AccordionPassthrough
70
+ Tile: AccordionPassthrough
71
+ }
72
+
73
+ export const AccordionPt: AccordionPtVariants = {
74
+ List: combinePassthroughs(DEFAULT_PASSTHROUGH, {
75
+ container: 'flex flex-col',
76
+ }),
77
+ Tile: combinePassthroughs(DEFAULT_PASSTHROUGH, {
78
+ container: 'flex flex-wrap gap-4 items-stretch relative',
79
+ // we should make the "has-.." class programmatic, so it goes off the height of the opened item.
80
+ root: 'mb-0 relative transition-all duration-200 has-[.active]:mb-[550px]',
81
+ }),
82
+ }
83
+
84
+ export const AccordionItemPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
85
+ headline: 'text-lg md:text-lg mb-0 *:text-left',
86
+ image: 'w-14 mr-4',
87
+ })
88
+
89
+ export const AccordionListItemPt = combinePassthroughs(AccordionItemPt, {
90
+ root: 'border-b first:border-t first:border-t-black border-b-black',
91
+ headline:
92
+ 'text-primary-950 text-xl md:text-xl py-6 pr-2 *:text-left font-bold ',
93
+ icon: 'text-primary-950',
94
+ content: 'pb-6',
95
+ })
96
+
97
+ export const AccordionTileItemPt = combinePassthroughs(AccordionItemPt, {
98
+ root: ' w-full md:w-[23%]',
99
+ headline:
100
+ 'transition-height mb-0 h-[90%] duration-200 py-16 md:text-3xl text-3xl text-center relative rounded-2xl text-white h-[90%] bg-primary group-[.active]:rounded-t-2lg group-[.active]:rounded-b-none group-[.active]:h-full flex items-center justify-center',
101
+ button:
102
+ 'h-full w-fit text-center *:text-center justify-center md:*:[word-spacing:100px]', // word-spacing so that text wraps when not in mobile
103
+ icon: 'absolute top-4 right-6',
104
+ content:
105
+ 'group-[.first]:rounded-tl-none group-[.last]:rounded-tr-none transition-opacity duration-200 opacity-0 left-0 absolute w-full p-12 text-white rounded-2xl bg-primary group-[.active]:opacity-100',
106
+ })
107
+
108
+ export const CarouselModulePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
109
+
110
+ export const CarouselModuleAltPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
111
+
112
+ export const ContainerCollectionModulePt = combinePassthroughs(
113
+ DEFAULT_PASSTHROUGH,
114
+ {
115
+ root: 'px-8 md:px-0',
116
+ content: 'max-w-[1024px]',
117
+ }
118
+ )
119
+
120
+ export interface ContainerModulePtVariants {
121
+ Hero: ContainerModulePassthrough
122
+ Centered: ContainerModulePassthrough
123
+ }
124
+
125
+ export const ContainerModulePt: ContainerModulePtVariants = {
126
+ Centered: combinePassthroughs(DEFAULT_PASSTHROUGH, {
127
+ root: 'px-8 md:px-0',
128
+ inner: 'h-full mx-auto max-w-[1024px]',
129
+ fullWidthContent: 'max-w-full w-full',
130
+ }),
131
+ Hero: combinePassthroughs(DEFAULT_PASSTHROUGH, {
132
+ root: 'md:h-[500px] mb-12',
133
+ inner: 'md:flex md:items-center h-full py-16 px-4 md:px-16 mb-8',
134
+ headline:
135
+ 'md:text-left text-primary-950 text-[8.75vmin] md:text-6xl text-center',
136
+ }),
137
+ }
138
+
139
+ export const ContentModulePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
140
+ root: 'p-5',
141
+ headline: 'mb-4 text-4xl md:text-4xl',
142
+ description: '',
143
+ ctas: 'mt-4',
144
+ cta: '',
145
+ })
146
+
147
+ export interface CTAPtVariants {
148
+ fill: CTAPassthrough
149
+ logo: CTAPassthrough
150
+ link: CTAPassthrough
151
+ outline: CTAPassthrough
152
+ }
153
+
154
+ export const CTAPt: CTAPtVariants = {
155
+ link: {
156
+ logo: 'p-2 bg-[#18a589] rounded-full',
157
+ },
158
+ logo: {
159
+ logo: 'p-2 bg-[#18a589] rounded-full',
160
+ },
161
+ fill: {},
162
+ outline: {},
163
+ }
164
+
165
+ export const FooterNavigationPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
166
+
167
+ export const ImagePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
168
+
169
+ export const LogoCollectionModulePt = combinePassthroughs(
170
+ DEFAULT_PASSTHROUGH,
171
+ {}
172
+ )
173
+
174
+ export const NavigationElementPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
175
+ icon: 'ps-2 text-xs',
176
+ })
177
+
178
+ export const PrimaryNavigationPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
179
+
180
+ export const SplitModulePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
181
+ root: 'px-8 md:px-0',
182
+ content:
183
+ 'max-w-[1024px] flex justify-evenly gap-4 mx-auto flex-col md:flex-row',
184
+ })
185
+
186
+ export const TestimonialModulePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
187
+ headline: 'text-primary-950',
188
+ quote: 'text-primary-950 text-lg font-bold',
189
+ text: 'space-y-4 w-full md:w-1/2',
190
+ author: 'text-lg text-gray-600',
191
+ details: 'text-lg text-gray-600',
192
+ media: 'md:w-1/2 w-full',
193
+ })
194
+
195
+ export interface TileCollectionPtVariants {
196
+ IconTile: ComponentPassthrough
197
+ ImageTile: ComponentPassthrough
198
+ VideoTile: ComponentPassthrough
199
+ TextTile: ComponentPassthrough
200
+ ImageStackedAnimatedTile: ComponentPassthrough
201
+ }
202
+
203
+ export const TileCollectionModulePt = combinePassthroughs(DEFAULT_PASSTHROUGH, {
204
+ root: 'px-8 md:px-0',
205
+ })
206
+
207
+ export const TileContentPt = {
208
+ root: 'w-full md:w-[48%] lg:w-[30%] relative flex-auto rounded overflow-visible mx-auto shadow-none flex-none !m-0',
209
+ label:
210
+ 'bg-[#18a589] w-[120px] p-2 rounded-[50%] rounded-lg text-2xl text-white flex items-center justify-center leading-none font-bold absolute right-[-4%] top-8',
211
+ numericLabel:
212
+ 'absolute rounded-full bg-primary w-[25%] h-[25%] left-4 top-8 md:left-0 md:top-2 text-4xl text-white font-bold flex items-center justify-center',
213
+ headline: 'mb-4 text-4xl md:text-3xl text-center text-primary-950 font-bold',
214
+ // media: 'h-auto w-full mx-auto mb-8 flex items-center justify-center',
215
+ cta: 'text-xl *:font-bold mx-auto text-center font-bold',
216
+ ctas: 'flex gap-2',
217
+ container: 'h-full',
218
+ description: 'leading-normal text-lg',
219
+ body: 'h-full flex flex-col justify-between',
220
+ footer: 'font-bold text-center mt-4 space-y-2',
221
+ footerContent: 'font-bold text-center',
222
+ }
223
+
224
+ export const TileContentIconTilePt = combinePassthroughs(TileContentPt, {
225
+ root: 'bg-white rounded-2xl p-8',
226
+ ctas: 'text-center',
227
+ media: 'mb-6 mx-auto',
228
+ numericLabel:
229
+ 'bg-[#18a589] w-[50px] p-2 rounded-[50%] h-[40px] rounded-lg text-3xl md:text-3xl text-white flex items-center justify-center leading-none font-bold absolute left-[-4%] md:left-[-4%] top-8 md:top-8',
230
+ })
231
+
232
+ export const TileContentImageStackedAnimatedTilePt = combinePassthroughs(
233
+ TileContentPt,
234
+ {
235
+ root: '!w-full',
236
+ inner: 'justify-center',
237
+ label:
238
+ 'rounded-full flex items-center justify-center font-bold absolute text-white bg-primary z-20 w-auto w-20 h-20 text-4xl rounded-full font-bold',
239
+ media: 'flex-[1_0_26%] md:flex-[1_0_20%]',
240
+ headline: 'font-bold text-left max-w-[400px]',
241
+ subheadline:
242
+ 'text-[4.5vmin] md:text-3xl font-bold text-white max-w-[400px]',
243
+ description: 'text-lg max-w-[400px]',
244
+ }
245
+ )
246
+ export const TileContentImageTilePt = combinePassthroughs(TileContentPt, {
247
+ media: 'relative mb-4 md:w-3/4 mx-auto',
248
+ })
249
+ export const TileContentTextTilePt = combinePassthroughs(TileContentPt, {
250
+ ctas: 'flex-col gap-4',
251
+ description: 'text-center',
252
+ })
253
+ export const TileContentVideoTilePt = combinePassthroughs(TileContentPt, {
254
+ root: 'bg-white p-8 rounded-xl',
255
+ headline: 'text-3xl md:text-3xl mb-2 text-primary font-bold',
256
+ subheadline: 'text-base md:text-base text-primary-950 text-center',
257
+ media: 'mb-4 mt-6',
258
+ description: 'text-left',
259
+ })
260
+
261
+ export const VideoPt = combinePassthroughs(DEFAULT_PASSTHROUGH, {})
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>
@@ -1,15 +0,0 @@
1
- <script setup lang="ts">
2
- import { Image } from './types/Image'
3
-
4
- defineProps<Image>()
5
- </script>
6
-
7
- <template>
8
- <img
9
- :src="media.src"
10
- :alt="altTag"
11
- :height="media.height"
12
- :width="media.width"
13
- :class="class"
14
- />
15
- </template>
@@ -1,30 +0,0 @@
1
- <script setup lang="ts">
2
- import { LogoContainerModule } from './types/LogoContainerModule'
3
- import { computed } from 'vue'
4
-
5
- const props = defineProps<LogoContainerModule>()
6
-
7
- const computedStyle = computed(() => {
8
- return {
9
- 'background-color': props.backgroundColor ?? 'transparent',
10
- color: props.textColor ?? 'inherit',
11
- }
12
- })
13
- </script>
14
-
15
- <template>
16
- <section :style="computedStyle" class="logo-module">
17
- <div :class="`container mx-auto ${pt?.container ?? ''}`">
18
- <h2 v-if="headline" :class="`logo-module-headline ${pt?.headline ?? ''}`">
19
- {{ headline }}
20
- </h2>
21
- <div
22
- v-if="modules"
23
- :class="`logo-module-content flex flex-wrap justify-evenly gap-2 ${pt?.content ?? ''}`"
24
- >
25
- <Image v-for="image in modules" v-bind="image" />
26
- </div>
27
- </div>
28
- </section>
29
- </template>
30
- ./types/LogoContainerModule
@@ -1,42 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from 'vue'
3
- import { SplitModule } from './types/SplitModule'
4
-
5
- const props = defineProps<SplitModule>()
6
-
7
- const computedStyle = computed(() => {
8
- return {
9
- 'background-color': props.backgroundColor ?? 'transparent',
10
- 'background-image': `url(${props.backgroundImage ?? ''})`,
11
- 'background-size': 'cover',
12
- }
13
- })
14
- </script>
15
-
16
- <template>
17
- <section class="split-module" :style="computedStyle">
18
- <h2 :class="`headline ${pt?.headline ?? ''}`">{{ headline }}</h2>
19
- <div
20
- :class="`split-module-content flex justify-evenly gap-4 mx-auto ${pt?.content ?? ''}`"
21
- >
22
- <component
23
- v-if="start"
24
- :is="start.__typename"
25
- v-bind="start"
26
- class="split-module-left"
27
- />
28
- <component
29
- v-if="center"
30
- :is="center.__typename"
31
- v-bind="center"
32
- class="split-module-center"
33
- />
34
- <component
35
- v-if="end"
36
- :is="end.__typename"
37
- v-bind="end"
38
- class="split-module-right"
39
- />
40
- </div>
41
- </section>
42
- </template>