@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.
- package/dist/component-lib.js +6960 -0
- package/dist/component-lib.umd.cjs +98 -0
- package/dist/style.css +1 -0
- package/dist/vite.svg +16 -0
- package/package.json +93 -84
- package/src/assets/fonts/GT-Walsheim-Bold.woff +0 -0
- package/src/assets/fonts/GT-Walsheim-Bold.woff2 +0 -0
- package/src/assets/fonts/GT-Walsheim-LC-Bold.woff +0 -0
- package/src/assets/fonts/GT-Walsheim-LC-Bold.woff2 +0 -0
- package/src/assets/fonts/GT-Walsheim-LC-Regular.woff +0 -0
- package/src/assets/fonts/GT-Walsheim-LC-Regular.woff2 +0 -0
- package/src/assets/fonts/GT-Walsheim-Medium.woff +0 -0
- package/src/assets/fonts/GT-Walsheim-Medium.woff2 +0 -0
- package/src/assets/fonts/GT-Walsheim-Regular.woff +0 -0
- package/src/assets/fonts/GT-Walsheim-Regular.woff2 +0 -0
- package/src/assets/fonts/fonts.scss +60 -0
- package/src/assets/fonts/notosanssc-bold-webfont.woff +0 -0
- package/src/assets/fonts/notosanssc-bold-webfont.woff2 +0 -0
- package/src/assets/fonts/notosanssc-regular-webfont.woff +0 -0
- package/src/assets/fonts/notosanssc-regular-webfont.woff2 +0 -0
- package/src/assets/main.css +18 -114
- package/src/assets/theme.css +5 -1
- package/src/components/{types → Accordion}/Accordion.ts +8 -6
- package/src/components/Accordion/Accordion.vue +66 -0
- package/src/components/Accordion/AccordionItem.ts +25 -0
- package/src/components/Accordion/AccordionItem.vue +104 -0
- package/src/components/{AccordionItem.vue → Accordion/AccordionListItem.vue} +22 -14
- package/src/components/Accordion/AccordionTileItem.vue +75 -0
- package/src/components/CTA/CTA.ts +22 -0
- package/src/components/CTA/CTA.vue +65 -0
- package/src/components/CarouselModule/CarouselModule.ts +20 -0
- package/src/components/{CarouselModule.vue → CarouselModule/CarouselModule.vue} +25 -7
- package/src/components/ContainerCollectionModule/ContainerCollectionModule.ts +12 -0
- package/src/components/{ContainerCollectionModule.vue → ContainerCollectionModule/ContainerCollectionModule.vue} +12 -3
- package/src/components/ContainerModule/ContainerModule.ts +69 -0
- package/src/components/{ContainerModule.vue → ContainerModule/ContainerModule.vue} +33 -36
- package/src/components/ContentModule/ContentModule.ts +31 -0
- package/src/components/ContentModule/ContentModule.vue +65 -0
- package/src/components/{types → FooterNavigation}/FooterNavigation.ts +3 -2
- package/src/components/{FooterNavigation.vue → FooterNavigation/FooterNavigation.vue} +4 -2
- package/src/components/Image/Image.vue +17 -0
- package/src/components/{types → LogoCollectionModule}/LogoCollectionModule.ts +3 -3
- package/src/components/{LogoCollectionModule.vue → LogoCollectionModule/LogoCollectionModule.vue} +13 -3
- package/src/components/{types → NavigationElement}/NavigationElement.ts +6 -3
- package/src/components/{NavigationElement.vue → NavigationElement/NavigationElement.vue} +18 -9
- package/src/components/{types → PrimaryNavigation}/PrimaryNavigation.ts +2 -2
- package/src/components/{PrimaryNavigation.vue → PrimaryNavigation/PrimaryNavigation.vue} +7 -4
- package/src/components/{types → SplitModule}/SplitModule.ts +6 -5
- package/src/components/SplitModule/SplitModule.vue +57 -0
- package/src/components/TestimonialModule/TestimonialModule.ts +22 -0
- package/src/components/TestimonialModule/TestimonialModule.vue +51 -0
- package/src/components/TileCollectionModule/TileCollectionModule.ts +18 -0
- package/src/components/TileCollectionModule/TileCollectionModule.vue +58 -0
- package/src/components/TileContent/TileContent.ts +60 -0
- package/src/components/{TileContent.vue → TileContent/TileContent.vue} +25 -14
- package/src/components/TileContent/TileContentIconTile.vue +83 -0
- package/src/components/TileContent/TileContentImageStackedAnimatedTile.vue +121 -0
- package/src/components/TileContent/TileContentImageTile.vue +80 -0
- package/src/components/TileContent/TileContentTextTile.vue +63 -0
- package/src/components/TileContent/TileContentVideoTile.vue +81 -0
- package/src/components/{types → Video}/Video.ts +1 -1
- package/src/components/{Video.vue → Video/Video.vue} +1 -1
- package/src/config/defaultPassthrough.ts +261 -0
- package/src/assets/usercard.jpg +0 -0
- package/src/assets/vue.svg +0 -1
- package/src/components/Accordion.vue +0 -33
- package/src/components/CTA.vue +0 -39
- package/src/components/ContentAndImage.vue +0 -34
- package/src/components/ContentMediaModule.vue +0 -50
- package/src/components/ContentModule.vue +0 -51
- package/src/components/IconChevron.vue +0 -107
- package/src/components/Image.vue +0 -15
- package/src/components/LogoContainerModule.vue +0 -30
- package/src/components/SplitModule.vue +0 -42
- package/src/components/Testimonial.vue +0 -48
- package/src/components/TestimonialModule.vue +0 -48
- package/src/components/TileCollection.vue +0 -37
- package/src/components/TileCollectionModule.vue +0 -45
- package/src/components/types/AccordionItem.ts +0 -19
- package/src/components/types/CTA.ts +0 -13
- package/src/components/types/CarouselModule.ts +0 -21
- package/src/components/types/ContainerCollectionModule.ts +0 -12
- package/src/components/types/ContainerModule.ts +0 -35
- package/src/components/types/ContentAndImage.ts +0 -14
- package/src/components/types/ContentMediaModule.ts +0 -14
- package/src/components/types/ContentModule.ts +0 -21
- package/src/components/types/LogoContainerModule.ts +0 -12
- package/src/components/types/Testimonial.ts +0 -17
- package/src/components/types/TileCollection.ts +0 -14
- package/src/components/types/TileContent.ts +0 -34
- package/src/components/types/index.ts +0 -10
- package/src/presets/aura/accordion/index.js +0 -81
- package/src/presets/aura/autocomplete/index.js +0 -280
- package/src/presets/aura/avatar/index.js +0 -46
- package/src/presets/aura/badge/index.js +0 -43
- package/src/presets/aura/badgedirective/index.js +0 -49
- package/src/presets/aura/blockui/index.js +0 -8
- package/src/presets/aura/breadcrumb/index.js +0 -63
- package/src/presets/aura/button/index.js +0 -511
- package/src/presets/aura/calendar/index.js +0 -702
- package/src/presets/aura/card/index.js +0 -53
- package/src/presets/aura/carousel/index.js +0 -160
- package/src/presets/aura/cascadeselect/index.js +0 -220
- package/src/presets/aura/checkbox/index.js +0 -107
- package/src/presets/aura/chip/index.js +0 -45
- package/src/presets/aura/chips/index.js +0 -126
- package/src/presets/aura/colorpicker/index.js +0 -132
- package/src/presets/aura/confirmpopup/index.js +0 -111
- package/src/presets/aura/contextmenu/index.js +0 -132
- package/src/presets/aura/datatable/index.js +0 -1290
- package/src/presets/aura/dataview/index.js +0 -40
- package/src/presets/aura/deferred/index.js +0 -3
- package/src/presets/aura/dialog/index.js +0 -250
- package/src/presets/aura/divider/index.js +0 -72
- package/src/presets/aura/dock/index.js +0 -97
- package/src/presets/aura/dropdown/index.js +0 -297
- package/src/presets/aura/fieldset/index.js +0 -95
- package/src/presets/aura/fileupload/index.js +0 -175
- package/src/presets/aura/floatlabel/index.js +0 -26
- package/src/presets/aura/galleria/index.js +0 -353
- package/src/presets/aura/global.js +0 -90
- package/src/presets/aura/iconfield/index.js +0 -22
- package/src/presets/aura/image/index.js +0 -206
- package/src/presets/aura/index.js +0 -181
- package/src/presets/aura/inlinemessage/index.js +0 -46
- package/src/presets/aura/inplace/index.js +0 -27
- package/src/presets/aura/inputgroup/index.js +0 -5
- package/src/presets/aura/inputgroupaddon/index.js +0 -28
- package/src/presets/aura/inputmask/index.js +0 -47
- package/src/presets/aura/inputnumber/index.js +0 -293
- package/src/presets/aura/inputotp/index.js +0 -69
- package/src/presets/aura/inputswitch/index.js +0 -94
- package/src/presets/aura/inputtext/index.js +0 -63
- package/src/presets/aura/knob/index.js +0 -47
- package/src/presets/aura/listbox/index.js +0 -158
- package/src/presets/aura/megamenu/index.js +0 -206
- package/src/presets/aura/menu/index.js +0 -122
- package/src/presets/aura/menubar/index.js +0 -184
- package/src/presets/aura/message/index.js +0 -112
- package/src/presets/aura/metergroup/index.js +0 -110
- package/src/presets/aura/multiselect/index.js +0 -579
- package/src/presets/aura/orderlist/index.js +0 -281
- package/src/presets/aura/organizationchart/index.js +0 -142
- package/src/presets/aura/overlaypanel/index.js +0 -34
- package/src/presets/aura/paginator/index.js +0 -566
- package/src/presets/aura/panel/index.js +0 -102
- package/src/presets/aura/panelmenu/index.js +0 -130
- package/src/presets/aura/password/index.js +0 -143
- package/src/presets/aura/picklist/index.js +0 -718
- package/src/presets/aura/progressbar/index.js +0 -64
- package/src/presets/aura/progressspinner/index.js +0 -51
- package/src/presets/aura/radiobutton/index.js +0 -121
- package/src/presets/aura/rating/index.js +0 -95
- package/src/presets/aura/ripple/index.js +0 -6
- package/src/presets/aura/scrollpanel/index.js +0 -77
- package/src/presets/aura/scrolltop/index.js +0 -45
- package/src/presets/aura/selectbutton/index.js +0 -66
- package/src/presets/aura/sidebar/index.js +0 -160
- package/src/presets/aura/skeleton/index.js +0 -19
- package/src/presets/aura/slider/index.js +0 -144
- package/src/presets/aura/speeddial/index.js +0 -579
- package/src/presets/aura/splitbutton/index.js +0 -1185
- package/src/presets/aura/splitter/index.js +0 -71
- package/src/presets/aura/stepper/index.js +0 -183
- package/src/presets/aura/steps/index.js +0 -117
- package/src/presets/aura/tabmenu/index.js +0 -75
- package/src/presets/aura/tabview/index.js +0 -162
- package/src/presets/aura/tag/index.js +0 -44
- package/src/presets/aura/terminal/index.js +0 -60
- package/src/presets/aura/textarea/index.js +0 -49
- package/src/presets/aura/tieredmenu/index.js +0 -125
- package/src/presets/aura/timeline/index.js +0 -114
- package/src/presets/aura/toast/index.js +0 -151
- package/src/presets/aura/togglebutton/index.js +0 -98
- package/src/presets/aura/toolbar/index.js +0 -28
- package/src/presets/aura/tooltip/index.js +0 -73
- package/src/presets/aura/tree/index.js +0 -294
- package/src/presets/aura/treeselect/index.js +0 -404
- package/src/presets/aura/treetable/index.js +0 -513
- package/src/presets/aura/tristatecheckbox/index.js +0 -121
- /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, {})
|
package/src/assets/usercard.jpg
DELETED
|
Binary file
|
package/src/assets/vue.svg
DELETED
|
@@ -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>
|
package/src/components/CTA.vue
DELETED
|
@@ -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>
|
package/src/components/Image.vue
DELETED
|
@@ -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>
|