@opensite/ui 1.3.2 → 1.3.4
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/footer-accordion-social.cjs +1344 -0
- package/dist/footer-accordion-social.d.cts +154 -0
- package/dist/footer-accordion-social.d.ts +154 -0
- package/dist/footer-accordion-social.js +1322 -0
- package/dist/footer-info-cards-accordion.cjs +1427 -0
- package/dist/footer-info-cards-accordion.d.cts +278 -0
- package/dist/footer-info-cards-accordion.d.ts +278 -0
- package/dist/footer-info-cards-accordion.js +1404 -0
- package/dist/footer-newsletter-contact.cjs +1281 -0
- package/dist/footer-newsletter-contact.d.cts +163 -0
- package/dist/footer-newsletter-contact.d.ts +163 -0
- package/dist/footer-newsletter-contact.js +1259 -0
- package/dist/footer-split-image-accordion.cjs +1395 -0
- package/dist/footer-split-image-accordion.d.cts +236 -0
- package/dist/footer-split-image-accordion.d.ts +236 -0
- package/dist/footer-split-image-accordion.js +1372 -0
- package/dist/list-achievements-showcase.cjs +1141 -0
- package/dist/list-achievements-showcase.d.cts +131 -0
- package/dist/list-achievements-showcase.d.ts +131 -0
- package/dist/list-achievements-showcase.js +1119 -0
- package/dist/list-career-timeline.cjs +531 -0
- package/dist/list-career-timeline.d.cts +153 -0
- package/dist/list-career-timeline.d.ts +153 -0
- package/dist/list-career-timeline.js +509 -0
- package/dist/list-feature-comparison.cjs +1211 -0
- package/dist/list-feature-comparison.d.cts +189 -0
- package/dist/list-feature-comparison.d.ts +189 -0
- package/dist/list-feature-comparison.js +1190 -0
- package/dist/list-metrics-dashboard.cjs +1402 -0
- package/dist/list-metrics-dashboard.d.cts +191 -0
- package/dist/list-metrics-dashboard.d.ts +191 -0
- package/dist/list-metrics-dashboard.js +1379 -0
- package/dist/list-service-category-table.cjs +762 -0
- package/dist/list-service-category-table.d.cts +135 -0
- package/dist/list-service-category-table.d.ts +135 -0
- package/dist/list-service-category-table.js +741 -0
- package/dist/offer-modal-membership-image.cjs +1361 -0
- package/dist/offer-modal-membership-image.d.cts +194 -0
- package/dist/offer-modal-membership-image.d.ts +194 -0
- package/dist/offer-modal-membership-image.js +1339 -0
- package/dist/offer-modal-newsletter-discount.cjs +1296 -0
- package/dist/offer-modal-newsletter-discount.d.cts +164 -0
- package/dist/offer-modal-newsletter-discount.d.ts +164 -0
- package/dist/offer-modal-newsletter-discount.js +1274 -0
- package/dist/offer-modal-sheet-newsletter.cjs +1360 -0
- package/dist/offer-modal-sheet-newsletter.d.cts +221 -0
- package/dist/offer-modal-sheet-newsletter.d.ts +221 -0
- package/dist/offer-modal-sheet-newsletter.js +1337 -0
- package/dist/pricing-addons-cards.cjs +1143 -0
- package/dist/pricing-addons-cards.d.cts +203 -0
- package/dist/pricing-addons-cards.d.ts +203 -0
- package/dist/pricing-addons-cards.js +1122 -0
- package/dist/pricing-addons-featured.cjs +1224 -0
- package/dist/pricing-addons-featured.d.cts +271 -0
- package/dist/pricing-addons-featured.d.ts +271 -0
- package/dist/pricing-addons-featured.js +1203 -0
- package/dist/pricing-collapsible-plans.cjs +1315 -0
- package/dist/pricing-collapsible-plans.d.cts +258 -0
- package/dist/pricing-collapsible-plans.d.ts +258 -0
- package/dist/pricing-collapsible-plans.js +1294 -0
- package/dist/pricing-columns-toggle.cjs +1234 -0
- package/dist/pricing-columns-toggle.d.cts +251 -0
- package/dist/pricing-columns-toggle.d.ts +251 -0
- package/dist/pricing-columns-toggle.js +1212 -0
- package/dist/pricing-comparison-headers.cjs +1235 -0
- package/dist/pricing-comparison-headers.d.cts +245 -0
- package/dist/pricing-comparison-headers.d.ts +245 -0
- package/dist/pricing-comparison-headers.js +1213 -0
- package/dist/pricing-comparison-table.cjs +1374 -0
- package/dist/pricing-comparison-table.d.cts +280 -0
- package/dist/pricing-comparison-table.d.ts +280 -0
- package/dist/pricing-comparison-table.js +1352 -0
- package/dist/pricing-discount-card.cjs +1217 -0
- package/dist/pricing-discount-card.d.cts +195 -0
- package/dist/pricing-discount-card.d.ts +195 -0
- package/dist/pricing-discount-card.js +1195 -0
- package/dist/pricing-enterprise-contact.cjs +1094 -0
- package/dist/pricing-enterprise-contact.d.cts +170 -0
- package/dist/pricing-enterprise-contact.d.ts +170 -0
- package/dist/pricing-enterprise-contact.js +1073 -0
- package/dist/pricing-feature-matrix.cjs +1197 -0
- package/dist/pricing-feature-matrix.d.cts +56 -0
- package/dist/pricing-feature-matrix.d.ts +56 -0
- package/dist/pricing-feature-matrix.js +1174 -0
- package/dist/pricing-four-tier-toggle.cjs +1320 -0
- package/dist/pricing-four-tier-toggle.d.cts +266 -0
- package/dist/pricing-four-tier-toggle.d.ts +266 -0
- package/dist/pricing-four-tier-toggle.js +1297 -0
- package/dist/pricing-full-comparison.cjs +1301 -0
- package/dist/pricing-full-comparison.d.cts +265 -0
- package/dist/pricing-full-comparison.d.ts +265 -0
- package/dist/pricing-full-comparison.js +1279 -0
- package/dist/pricing-gradient-cards.cjs +1248 -0
- package/dist/pricing-gradient-cards.d.cts +258 -0
- package/dist/pricing-gradient-cards.d.ts +258 -0
- package/dist/pricing-gradient-cards.js +1226 -0
- package/dist/pricing-icon-headers.cjs +1163 -0
- package/dist/pricing-icon-headers.d.cts +218 -0
- package/dist/pricing-icon-headers.d.ts +218 -0
- package/dist/pricing-icon-headers.js +1142 -0
- package/dist/pricing-minimal-cards.cjs +1146 -0
- package/dist/pricing-minimal-cards.d.cts +210 -0
- package/dist/pricing-minimal-cards.d.ts +210 -0
- package/dist/pricing-minimal-cards.js +1125 -0
- package/dist/pricing-packages-radio.cjs +1203 -0
- package/dist/pricing-packages-radio.d.cts +243 -0
- package/dist/pricing-packages-radio.d.ts +243 -0
- package/dist/pricing-packages-radio.js +1182 -0
- package/dist/pricing-popular-highlight.cjs +1293 -0
- package/dist/pricing-popular-highlight.d.cts +255 -0
- package/dist/pricing-popular-highlight.d.ts +255 -0
- package/dist/pricing-popular-highlight.js +1271 -0
- package/dist/pricing-radio-toggle.cjs +1277 -0
- package/dist/pricing-radio-toggle.d.cts +251 -0
- package/dist/pricing-radio-toggle.d.ts +251 -0
- package/dist/pricing-radio-toggle.js +1255 -0
- package/dist/pricing-responsive-table.cjs +1229 -0
- package/dist/pricing-responsive-table.d.cts +55 -0
- package/dist/pricing-responsive-table.d.ts +55 -0
- package/dist/pricing-responsive-table.js +1206 -0
- package/dist/pricing-services-cards.cjs +1209 -0
- package/dist/pricing-services-cards.d.cts +230 -0
- package/dist/pricing-services-cards.d.ts +230 -0
- package/dist/pricing-services-cards.js +1188 -0
- package/dist/pricing-simple-card.cjs +1102 -0
- package/dist/pricing-simple-card.d.cts +174 -0
- package/dist/pricing-simple-card.d.ts +174 -0
- package/dist/pricing-simple-card.js +1081 -0
- package/dist/pricing-single-card.cjs +1174 -0
- package/dist/pricing-single-card.d.cts +201 -0
- package/dist/pricing-single-card.d.ts +201 -0
- package/dist/pricing-single-card.js +1152 -0
- package/dist/pricing-split-layout.cjs +1001 -0
- package/dist/pricing-split-layout.d.cts +44 -0
- package/dist/pricing-split-layout.d.ts +44 -0
- package/dist/pricing-split-layout.js +980 -0
- package/dist/pricing-spotlight-card.cjs +1157 -0
- package/dist/pricing-spotlight-card.d.cts +201 -0
- package/dist/pricing-spotlight-card.d.ts +201 -0
- package/dist/pricing-spotlight-card.js +1136 -0
- package/dist/pricing-switch-cards.cjs +1274 -0
- package/dist/pricing-switch-cards.d.cts +254 -0
- package/dist/pricing-switch-cards.d.ts +254 -0
- package/dist/pricing-switch-cards.js +1252 -0
- package/dist/pricing-tabs-toggle.cjs +1314 -0
- package/dist/pricing-tabs-toggle.d.cts +274 -0
- package/dist/pricing-tabs-toggle.d.ts +274 -0
- package/dist/pricing-tabs-toggle.js +1291 -0
- package/dist/pricing-tier-grid.cjs +1190 -0
- package/dist/pricing-tier-grid.d.cts +224 -0
- package/dist/pricing-tier-grid.d.ts +224 -0
- package/dist/pricing-tier-grid.js +1169 -0
- package/dist/pricing-toggle-cards.cjs +1330 -0
- package/dist/pricing-toggle-cards.d.cts +267 -0
- package/dist/pricing-toggle-cards.d.ts +267 -0
- package/dist/pricing-toggle-cards.js +1307 -0
- package/dist/pricing-toggle-period.cjs +1251 -0
- package/dist/pricing-toggle-period.d.cts +265 -0
- package/dist/pricing-toggle-period.d.ts +265 -0
- package/dist/pricing-toggle-period.js +1230 -0
- package/dist/pricing-two-column-basic.cjs +1243 -0
- package/dist/pricing-two-column-basic.d.cts +244 -0
- package/dist/pricing-two-column-basic.d.ts +244 -0
- package/dist/pricing-two-column-basic.js +1222 -0
- package/dist/registry.cjs +109 -85
- package/dist/registry.js +931 -907
- package/package.json +1 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bi_ClKrO.js';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
import './blocks-k17uluAz.js';
|
|
5
|
+
import 'class-variance-authority';
|
|
6
|
+
import './button-variants-lRElsmTc.js';
|
|
7
|
+
import 'class-variance-authority/types';
|
|
8
|
+
|
|
9
|
+
interface ListExperienceItem {
|
|
10
|
+
/**
|
|
11
|
+
* Time period (e.g., "2019 - PRESENT")
|
|
12
|
+
*/
|
|
13
|
+
year?: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Job role or position
|
|
16
|
+
*/
|
|
17
|
+
role?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Company or organization name
|
|
20
|
+
*/
|
|
21
|
+
company?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
interface ListAwardItem {
|
|
24
|
+
/**
|
|
25
|
+
* Year of the award
|
|
26
|
+
*/
|
|
27
|
+
year?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Title of the award
|
|
30
|
+
*/
|
|
31
|
+
title?: React.ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Organization that gave the award
|
|
34
|
+
*/
|
|
35
|
+
organization?: React.ReactNode;
|
|
36
|
+
}
|
|
37
|
+
interface ListCareerTimelineProps {
|
|
38
|
+
/**
|
|
39
|
+
* Section label (e.g., "/ CAREER PATH")
|
|
40
|
+
*/
|
|
41
|
+
sectionLabel?: React.ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* Additional CSS classes for the section label
|
|
44
|
+
*/
|
|
45
|
+
sectionLabelClassName?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Main heading text (supports line breaks)
|
|
48
|
+
*/
|
|
49
|
+
heading?: React.ReactNode;
|
|
50
|
+
/**
|
|
51
|
+
* Additional CSS classes for the heading
|
|
52
|
+
*/
|
|
53
|
+
headingClassName?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Experience section label
|
|
56
|
+
*/
|
|
57
|
+
experienceLabel?: React.ReactNode;
|
|
58
|
+
/**
|
|
59
|
+
* Additional CSS classes for the experience label
|
|
60
|
+
*/
|
|
61
|
+
experienceLabelClassName?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Array of experience items
|
|
64
|
+
*/
|
|
65
|
+
experiences?: ListExperienceItem[];
|
|
66
|
+
/**
|
|
67
|
+
* Custom slot for rendering experiences (overrides experiences array)
|
|
68
|
+
*/
|
|
69
|
+
experiencesSlot?: React.ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* Additional CSS classes for the experiences container
|
|
72
|
+
*/
|
|
73
|
+
experiencesClassName?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Additional CSS classes for individual experience rows
|
|
76
|
+
*/
|
|
77
|
+
experienceRowClassName?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Achievements section label
|
|
80
|
+
*/
|
|
81
|
+
achievementsLabel?: React.ReactNode;
|
|
82
|
+
/**
|
|
83
|
+
* Additional CSS classes for the achievements label
|
|
84
|
+
*/
|
|
85
|
+
achievementsLabelClassName?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Array of award/achievement items
|
|
88
|
+
*/
|
|
89
|
+
awards?: ListAwardItem[];
|
|
90
|
+
/**
|
|
91
|
+
* Custom slot for rendering awards (overrides awards array)
|
|
92
|
+
*/
|
|
93
|
+
awardsSlot?: React.ReactNode;
|
|
94
|
+
/**
|
|
95
|
+
* Additional CSS classes for the awards container
|
|
96
|
+
*/
|
|
97
|
+
awardsClassName?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Additional CSS classes for individual award rows
|
|
100
|
+
*/
|
|
101
|
+
awardRowClassName?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Additional CSS classes for the content wrapper
|
|
104
|
+
*/
|
|
105
|
+
contentClassName?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Additional CSS classes for the section wrapper
|
|
108
|
+
*/
|
|
109
|
+
className?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Background style for the section
|
|
112
|
+
*/
|
|
113
|
+
background?: SectionBackground;
|
|
114
|
+
/**
|
|
115
|
+
* Vertical spacing for the section
|
|
116
|
+
*/
|
|
117
|
+
spacing?: SectionSpacing;
|
|
118
|
+
/**
|
|
119
|
+
* Optional background pattern name or URL
|
|
120
|
+
*/
|
|
121
|
+
pattern?: PatternName | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Pattern overlay opacity (0-1)
|
|
124
|
+
*/
|
|
125
|
+
patternOpacity?: number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* ListCareerTimeline - A two-section timeline displaying professional experience
|
|
129
|
+
* and achievements/awards. Features a bold heading, experience history with roles
|
|
130
|
+
* and companies, and a comprehensive awards section with organizations.
|
|
131
|
+
*
|
|
132
|
+
* Perfect for portfolio pages, about sections, or resume-style presentations
|
|
133
|
+
* showcasing career progression and professional recognition.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```tsx
|
|
137
|
+
* <ListCareerTimeline
|
|
138
|
+
* sectionLabel="/ CAREER PATH"
|
|
139
|
+
* heading={<>BUILDING SOLUTIONS,<br /> SHAPING THE FUTURE</>}
|
|
140
|
+
* experienceLabel="/ EXPERIENCE"
|
|
141
|
+
* experiences={[
|
|
142
|
+
* { year: "2019 - PRESENT", role: "SENIOR SOFTWARE ENGINEER", company: "TECH CORP" }
|
|
143
|
+
* ]}
|
|
144
|
+
* achievementsLabel="/ ACHIEVEMENTS"
|
|
145
|
+
* awards={[
|
|
146
|
+
* { year: "2023", title: "BEST SOFTWARE ENGINEER", organization: "TECH AWARDS" }
|
|
147
|
+
* ]}
|
|
148
|
+
* />
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
declare function ListCareerTimeline({ sectionLabel, sectionLabelClassName, heading, headingClassName, experienceLabel, experienceLabelClassName, experiences, experiencesSlot, experiencesClassName, experienceRowClassName, achievementsLabel, achievementsLabelClassName, awards, awardsSlot, awardsClassName, awardRowClassName, contentClassName, className, background, spacing, pattern, patternOpacity, }: ListCareerTimelineProps): React.JSX.Element;
|
|
152
|
+
|
|
153
|
+
export { ListCareerTimeline, type ListCareerTimelineProps };
|
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as React3 from 'react';
|
|
3
|
+
import React3__default, { useMemo } from 'react';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
7
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
// components/blocks/list/list-career-timeline.tsx
|
|
10
|
+
function cn(...inputs) {
|
|
11
|
+
return twMerge(clsx(inputs));
|
|
12
|
+
}
|
|
13
|
+
function Separator({
|
|
14
|
+
className,
|
|
15
|
+
orientation = "horizontal",
|
|
16
|
+
decorative = true,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
SeparatorPrimitive.Root,
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "separator",
|
|
23
|
+
decorative,
|
|
24
|
+
orientation,
|
|
25
|
+
className: cn(
|
|
26
|
+
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
27
|
+
className
|
|
28
|
+
),
|
|
29
|
+
...props
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
var maxWidthStyles = {
|
|
34
|
+
sm: "max-w-screen-sm",
|
|
35
|
+
md: "max-w-screen-md",
|
|
36
|
+
lg: "max-w-screen-lg",
|
|
37
|
+
xl: "max-w-7xl",
|
|
38
|
+
"2xl": "max-w-screen-2xl",
|
|
39
|
+
"4xl": "max-w-[1536px]",
|
|
40
|
+
full: "max-w-full"
|
|
41
|
+
};
|
|
42
|
+
var Container = React3__default.forwardRef(
|
|
43
|
+
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
44
|
+
const Component = as;
|
|
45
|
+
return /* @__PURE__ */ jsx(
|
|
46
|
+
Component,
|
|
47
|
+
{
|
|
48
|
+
ref,
|
|
49
|
+
className: cn(
|
|
50
|
+
"mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
51
|
+
maxWidthStyles[maxWidth],
|
|
52
|
+
className
|
|
53
|
+
),
|
|
54
|
+
...props,
|
|
55
|
+
children
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
Container.displayName = "Container";
|
|
61
|
+
|
|
62
|
+
// lib/patternSvgs.ts
|
|
63
|
+
var patternSvgs = {
|
|
64
|
+
squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
|
|
65
|
+
grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
|
|
66
|
+
noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
|
|
67
|
+
dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
|
|
68
|
+
dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
|
|
69
|
+
dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
|
|
70
|
+
circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
|
|
71
|
+
waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
|
|
72
|
+
crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
|
|
73
|
+
architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
|
|
74
|
+
tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
|
|
75
|
+
p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
|
|
76
|
+
};
|
|
77
|
+
var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
|
|
78
|
+
var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
|
|
79
|
+
var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
|
|
80
|
+
var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
|
|
81
|
+
var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
|
|
82
|
+
var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
|
|
83
|
+
var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
|
|
84
|
+
var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxs(
|
|
85
|
+
"svg",
|
|
86
|
+
{
|
|
87
|
+
className: "h-full w-full",
|
|
88
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
89
|
+
style: mask ? {
|
|
90
|
+
maskImage: mask,
|
|
91
|
+
WebkitMaskImage: mask
|
|
92
|
+
} : void 0,
|
|
93
|
+
children: [
|
|
94
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
95
|
+
"pattern",
|
|
96
|
+
{
|
|
97
|
+
id,
|
|
98
|
+
x: "0",
|
|
99
|
+
y: "0",
|
|
100
|
+
width: "100",
|
|
101
|
+
height: "100",
|
|
102
|
+
patternUnits: "userSpaceOnUse",
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ jsx(
|
|
105
|
+
"path",
|
|
106
|
+
{
|
|
107
|
+
d: "M0 50h40M60 50h40M50 0v40M50 60v40",
|
|
108
|
+
stroke: "hsl(var(--muted))",
|
|
109
|
+
strokeWidth: "1",
|
|
110
|
+
fill: "none"
|
|
111
|
+
}
|
|
112
|
+
),
|
|
113
|
+
/* @__PURE__ */ jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
|
|
114
|
+
/* @__PURE__ */ jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
|
|
115
|
+
/* @__PURE__ */ jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
|
|
116
|
+
/* @__PURE__ */ jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
|
|
117
|
+
/* @__PURE__ */ jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
) }),
|
|
121
|
+
/* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxs(
|
|
126
|
+
"svg",
|
|
127
|
+
{
|
|
128
|
+
className: "h-full w-full",
|
|
129
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
130
|
+
style: mask ? {
|
|
131
|
+
maskImage: mask,
|
|
132
|
+
WebkitMaskImage: mask
|
|
133
|
+
} : void 0,
|
|
134
|
+
children: [
|
|
135
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
136
|
+
"pattern",
|
|
137
|
+
{
|
|
138
|
+
id,
|
|
139
|
+
x: "0",
|
|
140
|
+
y: "0",
|
|
141
|
+
width: "40",
|
|
142
|
+
height: "40",
|
|
143
|
+
patternUnits: "userSpaceOnUse",
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ jsx(
|
|
146
|
+
"path",
|
|
147
|
+
{
|
|
148
|
+
d: "M0 20h40M20 0v40",
|
|
149
|
+
stroke: "hsl(var(--muted))",
|
|
150
|
+
strokeWidth: "0.5",
|
|
151
|
+
fill: "none"
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
/* @__PURE__ */ jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
) }),
|
|
158
|
+
/* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
var gridPattern = (size, mask) => /* @__PURE__ */ jsx(
|
|
163
|
+
"div",
|
|
164
|
+
{
|
|
165
|
+
className: "h-full w-full bg-[linear-gradient(to_right,_hsl(var(--muted))_1px,_transparent_1px),linear-gradient(to_bottom,_hsl(var(--muted))_1px,_transparent_1px)]",
|
|
166
|
+
style: {
|
|
167
|
+
backgroundSize: `${size}px ${size}px`,
|
|
168
|
+
...mask ? {
|
|
169
|
+
maskImage: mask,
|
|
170
|
+
WebkitMaskImage: mask
|
|
171
|
+
} : {}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsx(
|
|
176
|
+
"div",
|
|
177
|
+
{
|
|
178
|
+
className: "h-full w-full",
|
|
179
|
+
style: {
|
|
180
|
+
backgroundImage: "repeating-linear-gradient(45deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px), repeating-linear-gradient(135deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px)",
|
|
181
|
+
...mask ? {
|
|
182
|
+
maskImage: mask,
|
|
183
|
+
WebkitMaskImage: mask
|
|
184
|
+
} : {}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
var dashedGridMaskBase = "repeating-linear-gradient(to right, black 0px, black 3px, transparent 3px, transparent 8px), repeating-linear-gradient(to bottom, black 0px, black 3px, transparent 3px, transparent 8px)";
|
|
189
|
+
var dashedGridPattern = (fadeMask) => {
|
|
190
|
+
const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
|
|
191
|
+
return /* @__PURE__ */ jsx(
|
|
192
|
+
"div",
|
|
193
|
+
{
|
|
194
|
+
className: "h-full w-full",
|
|
195
|
+
style: {
|
|
196
|
+
backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
|
|
197
|
+
backgroundSize: "20px 20px",
|
|
198
|
+
backgroundPosition: "0 0, 0 0",
|
|
199
|
+
maskImage: mask,
|
|
200
|
+
WebkitMaskImage: mask,
|
|
201
|
+
maskComposite: "intersect",
|
|
202
|
+
WebkitMaskComposite: "source-in"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
};
|
|
207
|
+
var gradientGlow = (position) => /* @__PURE__ */ jsx(
|
|
208
|
+
"div",
|
|
209
|
+
{
|
|
210
|
+
className: cn(
|
|
211
|
+
"pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
|
|
212
|
+
position === "top" ? "-top-1/4" : "-bottom-1/4"
|
|
213
|
+
),
|
|
214
|
+
style: {
|
|
215
|
+
background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
);
|
|
219
|
+
var spotlight = (position) => /* @__PURE__ */ jsx(
|
|
220
|
+
"div",
|
|
221
|
+
{
|
|
222
|
+
className: cn(
|
|
223
|
+
"pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
|
|
224
|
+
position === "left" ? "-left-1/4" : "-right-1/4"
|
|
225
|
+
),
|
|
226
|
+
style: {
|
|
227
|
+
background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
);
|
|
231
|
+
var patternOverlays = {
|
|
232
|
+
circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
|
|
233
|
+
circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
|
|
234
|
+
circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
|
|
235
|
+
circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
|
|
236
|
+
circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
|
|
237
|
+
circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
|
|
238
|
+
circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
|
|
239
|
+
circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
|
|
240
|
+
dashedGridBasic: () => dashedGridPattern(),
|
|
241
|
+
dashedGridFadeTop: () => dashedGridPattern(maskTop),
|
|
242
|
+
dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
|
|
243
|
+
dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
|
|
244
|
+
dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
|
|
245
|
+
dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
|
|
246
|
+
dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
|
|
247
|
+
dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
|
|
248
|
+
diagonalCrossBasic: () => diagonalCrossPattern(),
|
|
249
|
+
diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
|
|
250
|
+
diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
|
|
251
|
+
diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
|
|
252
|
+
diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
|
|
253
|
+
diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
|
|
254
|
+
diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
|
|
255
|
+
diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
|
|
256
|
+
gridBasic: () => gridPattern(40),
|
|
257
|
+
gridFadeTop: () => gridPattern(32, maskTop),
|
|
258
|
+
gridFadeBottom: () => gridPattern(32, maskBottom),
|
|
259
|
+
gridFadeCenter: () => gridPattern(40, maskCenter),
|
|
260
|
+
gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
|
|
261
|
+
gridFadeTopRight: () => gridPattern(32, maskTopRight),
|
|
262
|
+
gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
|
|
263
|
+
gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
|
|
264
|
+
gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
|
|
265
|
+
gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
|
|
266
|
+
gradientGlowTop: () => gradientGlow("top"),
|
|
267
|
+
gradientGlowBottom: () => gradientGlow("bottom"),
|
|
268
|
+
spotlightLeft: () => spotlight("left"),
|
|
269
|
+
spotlightRight: () => spotlight("right")
|
|
270
|
+
};
|
|
271
|
+
var inlinePatternStyles = {
|
|
272
|
+
radialGradientTop: {
|
|
273
|
+
background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
|
|
274
|
+
},
|
|
275
|
+
radialGradientBottom: {
|
|
276
|
+
background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
function PatternBackground({
|
|
280
|
+
pattern,
|
|
281
|
+
opacity = 0.08,
|
|
282
|
+
className,
|
|
283
|
+
style
|
|
284
|
+
}) {
|
|
285
|
+
if (!pattern) {
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
288
|
+
if (pattern in inlinePatternStyles) {
|
|
289
|
+
const inlineStyle = inlinePatternStyles[pattern];
|
|
290
|
+
return /* @__PURE__ */ jsx(
|
|
291
|
+
"div",
|
|
292
|
+
{
|
|
293
|
+
className: cn("pointer-events-none absolute inset-0 z-0", className),
|
|
294
|
+
style: { ...inlineStyle, opacity, ...style },
|
|
295
|
+
"aria-hidden": "true"
|
|
296
|
+
}
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
if (pattern in patternOverlays) {
|
|
300
|
+
const Overlay = patternOverlays[pattern];
|
|
301
|
+
return /* @__PURE__ */ jsx(
|
|
302
|
+
"div",
|
|
303
|
+
{
|
|
304
|
+
className: cn("pointer-events-none absolute inset-0 z-0", className),
|
|
305
|
+
style: { opacity, ...style },
|
|
306
|
+
"aria-hidden": "true",
|
|
307
|
+
children: Overlay()
|
|
308
|
+
}
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
|
|
312
|
+
return /* @__PURE__ */ jsx(
|
|
313
|
+
"div",
|
|
314
|
+
{
|
|
315
|
+
className: cn("pointer-events-none absolute inset-0 z-0", className),
|
|
316
|
+
style: {
|
|
317
|
+
backgroundImage: `url(${patternUrl})`,
|
|
318
|
+
backgroundRepeat: "repeat",
|
|
319
|
+
backgroundSize: "auto",
|
|
320
|
+
opacity,
|
|
321
|
+
...style
|
|
322
|
+
},
|
|
323
|
+
"aria-hidden": "true"
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
var backgroundStyles = {
|
|
328
|
+
default: "bg-background text-foreground",
|
|
329
|
+
white: "bg-white text-dark",
|
|
330
|
+
gray: "bg-muted/30 text-foreground",
|
|
331
|
+
dark: "bg-foreground text-background",
|
|
332
|
+
transparent: "bg-transparent text-foreground",
|
|
333
|
+
gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
|
|
334
|
+
primary: "bg-primary text-primary-foreground",
|
|
335
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
336
|
+
muted: "bg-muted text-muted-foreground"
|
|
337
|
+
};
|
|
338
|
+
var spacingStyles = {
|
|
339
|
+
none: "py-0 md:py-0",
|
|
340
|
+
sm: "py-12 md:py-16",
|
|
341
|
+
md: "py-16 md:py-24",
|
|
342
|
+
lg: "py-20 md:py-32",
|
|
343
|
+
xl: "py-24 md:py-40"
|
|
344
|
+
};
|
|
345
|
+
var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
|
|
346
|
+
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
347
|
+
var Section = React3__default.forwardRef(
|
|
348
|
+
({
|
|
349
|
+
id,
|
|
350
|
+
title,
|
|
351
|
+
subtitle,
|
|
352
|
+
children,
|
|
353
|
+
className,
|
|
354
|
+
style,
|
|
355
|
+
background = "default",
|
|
356
|
+
spacing = "lg",
|
|
357
|
+
pattern,
|
|
358
|
+
patternOpacity,
|
|
359
|
+
patternClassName,
|
|
360
|
+
containerClassName,
|
|
361
|
+
containerMaxWidth = "xl",
|
|
362
|
+
...props
|
|
363
|
+
}, ref) => {
|
|
364
|
+
const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
|
|
365
|
+
return /* @__PURE__ */ jsxs(
|
|
366
|
+
"section",
|
|
367
|
+
{
|
|
368
|
+
ref,
|
|
369
|
+
id,
|
|
370
|
+
className: cn(
|
|
371
|
+
"relative",
|
|
372
|
+
pattern ? "overflow-hidden" : null,
|
|
373
|
+
backgroundStyles[background],
|
|
374
|
+
isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
|
|
375
|
+
className
|
|
376
|
+
),
|
|
377
|
+
style,
|
|
378
|
+
...props,
|
|
379
|
+
children: [
|
|
380
|
+
/* @__PURE__ */ jsx(
|
|
381
|
+
PatternBackground,
|
|
382
|
+
{
|
|
383
|
+
pattern,
|
|
384
|
+
opacity: effectivePatternOpacity,
|
|
385
|
+
className: patternClassName
|
|
386
|
+
}
|
|
387
|
+
),
|
|
388
|
+
/* @__PURE__ */ jsxs(
|
|
389
|
+
Container,
|
|
390
|
+
{
|
|
391
|
+
maxWidth: containerMaxWidth,
|
|
392
|
+
className: cn("relative z-10", containerClassName),
|
|
393
|
+
children: [
|
|
394
|
+
(title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
|
|
395
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider", children: subtitle }),
|
|
396
|
+
title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
|
|
397
|
+
] }),
|
|
398
|
+
children
|
|
399
|
+
]
|
|
400
|
+
}
|
|
401
|
+
)
|
|
402
|
+
]
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
);
|
|
407
|
+
Section.displayName = "Section";
|
|
408
|
+
function ListCareerTimeline({
|
|
409
|
+
sectionLabel,
|
|
410
|
+
sectionLabelClassName,
|
|
411
|
+
heading,
|
|
412
|
+
headingClassName,
|
|
413
|
+
experienceLabel,
|
|
414
|
+
experienceLabelClassName,
|
|
415
|
+
experiences,
|
|
416
|
+
experiencesSlot,
|
|
417
|
+
experiencesClassName,
|
|
418
|
+
experienceRowClassName,
|
|
419
|
+
achievementsLabel,
|
|
420
|
+
achievementsLabelClassName,
|
|
421
|
+
awards,
|
|
422
|
+
awardsSlot,
|
|
423
|
+
awardsClassName,
|
|
424
|
+
awardRowClassName,
|
|
425
|
+
contentClassName,
|
|
426
|
+
className,
|
|
427
|
+
background,
|
|
428
|
+
spacing,
|
|
429
|
+
pattern,
|
|
430
|
+
patternOpacity
|
|
431
|
+
}) {
|
|
432
|
+
const renderExperiences = useMemo(() => {
|
|
433
|
+
if (experiencesSlot) return experiencesSlot;
|
|
434
|
+
if (!experiences || experiences.length === 0) return null;
|
|
435
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React3.Fragment, { children: [
|
|
436
|
+
/* @__PURE__ */ jsx(Separator, {}),
|
|
437
|
+
/* @__PURE__ */ jsxs(
|
|
438
|
+
"div",
|
|
439
|
+
{
|
|
440
|
+
className: cn(
|
|
441
|
+
"my-2.5 grid gap-2.5 text-sm sm:grid-cols-3",
|
|
442
|
+
experienceRowClassName
|
|
443
|
+
),
|
|
444
|
+
children: [
|
|
445
|
+
experience.year && (typeof experience.year === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: experience.year }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: experience.year })),
|
|
446
|
+
experience.role && (typeof experience.role === "string" ? /* @__PURE__ */ jsx("p", { children: experience.role }) : /* @__PURE__ */ jsx("div", { children: experience.role })),
|
|
447
|
+
experience.company && (typeof experience.company === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: experience.company }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: experience.company }))
|
|
448
|
+
]
|
|
449
|
+
}
|
|
450
|
+
)
|
|
451
|
+
] }, idx)) });
|
|
452
|
+
}, [experiencesSlot, experiences, experiencesClassName, experienceRowClassName]);
|
|
453
|
+
const renderAwards = useMemo(() => {
|
|
454
|
+
if (awardsSlot) return awardsSlot;
|
|
455
|
+
if (!awards || awards.length === 0) return null;
|
|
456
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React3.Fragment, { children: [
|
|
457
|
+
/* @__PURE__ */ jsx(Separator, {}),
|
|
458
|
+
/* @__PURE__ */ jsxs(
|
|
459
|
+
"div",
|
|
460
|
+
{
|
|
461
|
+
className: cn(
|
|
462
|
+
"my-2.5 grid gap-2.5 text-sm sm:grid-cols-3",
|
|
463
|
+
awardRowClassName
|
|
464
|
+
),
|
|
465
|
+
children: [
|
|
466
|
+
award.year && (typeof award.year === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: award.year }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: award.year })),
|
|
467
|
+
award.title && (typeof award.title === "string" ? /* @__PURE__ */ jsx("p", { children: award.title }) : /* @__PURE__ */ jsx("div", { children: award.title })),
|
|
468
|
+
award.organization && (typeof award.organization === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: award.organization }) : /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: award.organization }))
|
|
469
|
+
]
|
|
470
|
+
}
|
|
471
|
+
)
|
|
472
|
+
] }, idx)) });
|
|
473
|
+
}, [awardsSlot, awards, awardsClassName, awardRowClassName]);
|
|
474
|
+
return /* @__PURE__ */ jsx(
|
|
475
|
+
Section,
|
|
476
|
+
{
|
|
477
|
+
background,
|
|
478
|
+
spacing,
|
|
479
|
+
className,
|
|
480
|
+
pattern,
|
|
481
|
+
patternOpacity,
|
|
482
|
+
children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-12", contentClassName), children: [
|
|
483
|
+
(sectionLabel || heading) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
|
|
484
|
+
sectionLabel && (typeof sectionLabel === "string" ? /* @__PURE__ */ jsx(
|
|
485
|
+
"span",
|
|
486
|
+
{
|
|
487
|
+
className: cn(
|
|
488
|
+
"text-sm text-muted-foreground",
|
|
489
|
+
sectionLabelClassName
|
|
490
|
+
),
|
|
491
|
+
children: sectionLabel
|
|
492
|
+
}
|
|
493
|
+
) : /* @__PURE__ */ jsx("div", { className: sectionLabelClassName, children: sectionLabel })),
|
|
494
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("text-4xl md:text-6xl", headingClassName), children: heading }))
|
|
495
|
+
] }),
|
|
496
|
+
(experienceLabel || experiencesSlot || experiences) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-7", children: [
|
|
497
|
+
experienceLabel && (typeof experienceLabel === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-xl", experienceLabelClassName), children: experienceLabel }) : /* @__PURE__ */ jsx("div", { className: experienceLabelClassName, children: experienceLabel })),
|
|
498
|
+
renderExperiences
|
|
499
|
+
] }),
|
|
500
|
+
(achievementsLabel || awardsSlot || awards) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-7", children: [
|
|
501
|
+
achievementsLabel && (typeof achievementsLabel === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-xl", achievementsLabelClassName), children: achievementsLabel }) : /* @__PURE__ */ jsx("div", { className: achievementsLabelClassName, children: achievementsLabel })),
|
|
502
|
+
renderAwards
|
|
503
|
+
] })
|
|
504
|
+
] })
|
|
505
|
+
}
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export { ListCareerTimeline };
|