@appcorp/shadcn 1.1.58 → 1.1.60
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/components/enhanced-checkbox.d.ts +1 -0
- package/package.json +7 -7
- package/templates/data/school-v1.d.ts +189 -210
- package/templates/data/school-v1.js +191 -144
- package/templates/school-v1/footer.d.ts +1 -1
- package/templates/school-v1/footer.js +22 -17
- package/templates/school-v1/index.d.ts +8 -7
- package/templates/school-v1/index.js +5 -2
- package/templates/school-v1/navigation.js +9 -9
- package/templates/school-v1/sections/about.js +1 -1
- package/templates/school-v1/sections/admissions.js +8 -8
- package/templates/school-v1/sections/faqs.js +2 -2
- package/templates/school-v1/sections/hero.js +2 -2
- package/templates/school-v1/sections/programs.js +1 -1
- package/templates/school-v1/sections/why-choose-us.js +2 -2
|
@@ -4,12 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Footer = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
7
8
|
var link_1 = __importDefault(require("next/link"));
|
|
8
9
|
var lucide_react_1 = require("lucide-react");
|
|
9
10
|
var separator_1 = require("../../components/ui/separator");
|
|
10
|
-
var
|
|
11
|
+
var iconMap = {
|
|
12
|
+
facebook: lucide_react_1.Facebook,
|
|
13
|
+
instagram: lucide_react_1.Instagram,
|
|
14
|
+
twitter: lucide_react_1.Twitter,
|
|
15
|
+
youtube: lucide_react_1.Youtube,
|
|
16
|
+
};
|
|
11
17
|
var Footer = function (_a) {
|
|
12
|
-
var
|
|
18
|
+
var address = _a.address, brandDescription = _a.brandDescription, brandFullName = _a.brandFullName, brandShortName = _a.brandShortName, emailHref = _a.emailHref, emailLabel = _a.emailLabel, partnerHref = _a.partnerHref, partnerLabel = _a.partnerLabel, phoneHref = _a.phoneHref, phoneLabel = _a.phoneLabel, programs = _a.programs, quickLinks = _a.quickLinks, socialLinks = _a.socialLinks;
|
|
13
19
|
return (react_1.default.createElement("footer", { className: "bg-blue-950 text-blue-100" },
|
|
14
20
|
react_1.default.createElement("div", { className: "container mx-auto px-4 py-12" },
|
|
15
21
|
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4" },
|
|
@@ -18,20 +24,19 @@ var Footer = function (_a) {
|
|
|
18
24
|
react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-600" },
|
|
19
25
|
react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
|
|
20
26
|
react_1.default.createElement("div", null,
|
|
21
|
-
react_1.default.createElement("div", { className: "font-bold text-white" },
|
|
22
|
-
react_1.default.createElement("div", { className: "text-xs text-blue-300" },
|
|
23
|
-
react_1.default.createElement("p", { className: "text-sm text-blue-300" },
|
|
27
|
+
react_1.default.createElement("div", { className: "font-bold text-white" }, brandShortName),
|
|
28
|
+
react_1.default.createElement("div", { className: "text-xs text-blue-300" }, brandFullName))),
|
|
29
|
+
react_1.default.createElement("p", { className: "text-sm text-blue-300" }, brandDescription),
|
|
24
30
|
react_1.default.createElement("div", { className: "mt-4 flex gap-3" }, socialLinks
|
|
25
31
|
.filter(function (s) { return s.enable; })
|
|
26
32
|
.sort(function (a, b) { return a.order - b.order; })
|
|
27
33
|
.map(function (s) {
|
|
28
34
|
var _a;
|
|
29
35
|
var aria = (_a = s.aria) !== null && _a !== void 0 ? _a : s.name;
|
|
30
|
-
return (react_1.default.createElement(link_1.default, { key: "".concat(s.name, "-").concat(s.order), href: s.href, "aria-label": aria, className: "text-blue-300 transition-colors hover:text-white" },
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
s.name === "youtube" && react_1.default.createElement(lucide_react_1.Youtube, { className: "h-5 w-5" })));
|
|
36
|
+
return (react_1.default.createElement(link_1.default, { key: "".concat(s.name, "-").concat(s.order), href: s.href, "aria-label": aria, className: "text-blue-300 transition-colors hover:text-white" }, iconMap[s.name] &&
|
|
37
|
+
react_1.default.createElement(iconMap[s.name], {
|
|
38
|
+
className: "h-5 w-5",
|
|
39
|
+
})));
|
|
35
40
|
}))),
|
|
36
41
|
react_1.default.createElement("div", null,
|
|
37
42
|
react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Quick Links"),
|
|
@@ -42,29 +47,29 @@ var Footer = function (_a) {
|
|
|
42
47
|
react_1.default.createElement(link_1.default, { href: link.href, className: "text-blue-300 transition-colors hover:text-white" }, link.label))); }))),
|
|
43
48
|
react_1.default.createElement("div", null,
|
|
44
49
|
react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Programs"),
|
|
45
|
-
react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, programs.map(function (program) { return (react_1.default.createElement("li", { key: program, className: "text-blue-300" }, program)); }))),
|
|
50
|
+
react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, programs.map(function (program) { return (react_1.default.createElement("li", { key: program.id, className: "text-blue-300" }, program.label)); }))),
|
|
46
51
|
react_1.default.createElement("div", null,
|
|
47
52
|
react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Contact"),
|
|
48
53
|
react_1.default.createElement("ul", { className: "space-y-3 text-sm" },
|
|
49
54
|
react_1.default.createElement("li", { className: "flex items-start gap-2 text-blue-300" },
|
|
50
55
|
react_1.default.createElement(lucide_react_1.MapPin, { className: "mt-0.5 h-4 w-4 shrink-0" }),
|
|
51
|
-
react_1.default.createElement("span", null,
|
|
56
|
+
react_1.default.createElement("span", null, address)),
|
|
52
57
|
react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
|
|
53
58
|
react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4 shrink-0" }),
|
|
54
|
-
react_1.default.createElement(link_1.default, { href:
|
|
59
|
+
react_1.default.createElement(link_1.default, { href: phoneHref, className: "transition-colors hover:text-white" }, phoneLabel)),
|
|
55
60
|
react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
|
|
56
61
|
react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4 shrink-0" }),
|
|
57
|
-
react_1.default.createElement(link_1.default, { href:
|
|
62
|
+
react_1.default.createElement(link_1.default, { href: emailHref, className: "transition-colors hover:text-white" }, emailLabel))))),
|
|
58
63
|
react_1.default.createElement(separator_1.Separator, { className: "my-8 bg-blue-800" }),
|
|
59
64
|
react_1.default.createElement("div", { className: "flex flex-col items-center justify-between gap-4 text-sm text-blue-400 md:flex-row" },
|
|
60
65
|
react_1.default.createElement("p", null,
|
|
61
66
|
"\u00A9 ",
|
|
62
67
|
new Date().getFullYear(),
|
|
63
68
|
" ",
|
|
64
|
-
|
|
69
|
+
brandFullName,
|
|
65
70
|
". All rights reserved."),
|
|
66
71
|
react_1.default.createElement("div", { className: "flex gap-1" },
|
|
67
|
-
"our Tech Partners",
|
|
68
|
-
|
|
72
|
+
"our Tech Partners",
|
|
73
|
+
partnerLabel && partnerHref && (react_1.default.createElement(link_1.default, { target: "_blank", href: partnerHref, className: "transition-colors hover:text-white" }, partnerLabel)))))));
|
|
69
74
|
};
|
|
70
75
|
exports.Footer = Footer;
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AboutData, AdmissionsData, ContactData, FAQsData, HeroData, ManagementData, PoliciesData, ProgramsData, TestimonialData, WhyUsData } from "../../templates/data/school-v1";
|
|
2
|
+
import { AboutData, AdmissionsData, ContactData, FAQsData, FooterData, HeroData, ManagementData, PoliciesData, ProgramsData, TestimonialData, WhyUsData } from "../../templates/data/school-v1";
|
|
3
3
|
export type SchoolV1TemplateProps = {
|
|
4
4
|
overrides?: {
|
|
5
|
-
heroData?: HeroData;
|
|
6
5
|
aboutData?: AboutData;
|
|
7
|
-
programsData?: ProgramsData;
|
|
8
|
-
whysUsData?: WhyUsData;
|
|
9
6
|
admissionsData?: AdmissionsData;
|
|
10
|
-
testimonialData?: TestimonialData;
|
|
11
|
-
managementData?: ManagementData;
|
|
12
|
-
faqsData?: FAQsData;
|
|
13
7
|
contactData?: ContactData;
|
|
8
|
+
faqsData?: FAQsData;
|
|
9
|
+
footerData?: FooterData;
|
|
10
|
+
heroData?: HeroData;
|
|
11
|
+
managementData?: ManagementData;
|
|
14
12
|
policiesData?: PoliciesData;
|
|
13
|
+
programsData?: ProgramsData;
|
|
14
|
+
testimonialData?: TestimonialData;
|
|
15
|
+
whysUsData?: WhyUsData;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
18
|
export declare const SchoolV1Template: React.FC<SchoolV1TemplateProps>;
|
|
@@ -28,8 +28,9 @@ var testimonials_1 = require("./sections/testimonials");
|
|
|
28
28
|
var why_choose_us_1 = require("./sections/why-choose-us");
|
|
29
29
|
var school_v1_1 = require("../../templates/data/school-v1");
|
|
30
30
|
var navigation_1 = require("./navigation");
|
|
31
|
+
var footer_1 = require("./footer");
|
|
31
32
|
var SchoolV1Template = function (_a) {
|
|
32
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
33
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
33
34
|
var overrides = _a.overrides;
|
|
34
35
|
var h = (_b = overrides === null || overrides === void 0 ? void 0 : overrides.heroData) !== null && _b !== void 0 ? _b : school_v1_1.heroData;
|
|
35
36
|
var a = (_c = overrides === null || overrides === void 0 ? void 0 : overrides.aboutData) !== null && _c !== void 0 ? _c : school_v1_1.aboutData;
|
|
@@ -41,6 +42,7 @@ var SchoolV1Template = function (_a) {
|
|
|
41
42
|
var f = (_j = overrides === null || overrides === void 0 ? void 0 : overrides.faqsData) !== null && _j !== void 0 ? _j : school_v1_1.faqsData;
|
|
42
43
|
var c = (_k = overrides === null || overrides === void 0 ? void 0 : overrides.contactData) !== null && _k !== void 0 ? _k : school_v1_1.contactData;
|
|
43
44
|
var po = (_l = overrides === null || overrides === void 0 ? void 0 : overrides.policiesData) !== null && _l !== void 0 ? _l : school_v1_1.policiesData;
|
|
45
|
+
var fo = (_m = overrides === null || overrides === void 0 ? void 0 : overrides.footerData) !== null && _m !== void 0 ? _m : school_v1_1.footerData;
|
|
44
46
|
return (react_1.default.createElement("div", null,
|
|
45
47
|
react_1.default.createElement(navigation_1.Navigation, __assign({}, school_v1_1.navigationData)),
|
|
46
48
|
react_1.default.createElement(hero_1.HeroSection, __assign({}, h)),
|
|
@@ -52,6 +54,7 @@ var SchoolV1Template = function (_a) {
|
|
|
52
54
|
react_1.default.createElement(management_1.ManagementSection, __assign({}, m)),
|
|
53
55
|
react_1.default.createElement(faqs_1.FAQsSection, __assign({}, f)),
|
|
54
56
|
react_1.default.createElement(policies_1.PoliciesSection, __assign({}, po)),
|
|
55
|
-
react_1.default.createElement(contact_1.ContactSection, __assign({}, c))
|
|
57
|
+
react_1.default.createElement(contact_1.ContactSection, __assign({}, c)),
|
|
58
|
+
react_1.default.createElement(footer_1.Footer, __assign({}, fo))));
|
|
56
59
|
};
|
|
57
60
|
exports.SchoolV1Template = SchoolV1Template;
|
|
@@ -46,7 +46,7 @@ var separator_1 = require("../../components/ui/separator");
|
|
|
46
46
|
var lucide_react_1 = require("lucide-react");
|
|
47
47
|
var utils_1 = require("../../lib/utils");
|
|
48
48
|
var Navigation = function (_a) {
|
|
49
|
-
var
|
|
49
|
+
var brandFullName = _a.brandFullName, brandShortName = _a.brandShortName, ctaHref = _a.ctaHref, ctaLabel = _a.ctaLabel, items = _a.items;
|
|
50
50
|
var _b = (0, react_1.useState)(false), scrolled = _b[0], setScrolled = _b[1];
|
|
51
51
|
var _c = (0, react_1.useState)(false), open = _c[0], setOpen = _c[1];
|
|
52
52
|
(0, react_1.useEffect)(function () {
|
|
@@ -60,15 +60,15 @@ var Navigation = function (_a) {
|
|
|
60
60
|
react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-700" },
|
|
61
61
|
react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
|
|
62
62
|
react_1.default.createElement("div", null,
|
|
63
|
-
react_1.default.createElement("div", { className: (0, utils_1.cn)("text-sm leading-none font-bold", scrolled ? "text-blue-900" : "text-white") },
|
|
64
|
-
react_1.default.createElement("div", { className: (0, utils_1.cn)("text-xs leading-none", scrolled ? "text-blue-600" : "text-blue-100") },
|
|
63
|
+
react_1.default.createElement("div", { className: (0, utils_1.cn)("text-sm leading-none font-bold", scrolled ? "text-blue-900" : "text-white") }, brandShortName),
|
|
64
|
+
react_1.default.createElement("div", { className: (0, utils_1.cn)("text-xs leading-none", scrolled ? "text-blue-600" : "text-blue-100") }, brandFullName))),
|
|
65
65
|
react_1.default.createElement("div", { className: "hidden items-center gap-6 lg:flex" },
|
|
66
|
-
|
|
66
|
+
items
|
|
67
67
|
.filter(function (l) { return l.enable; })
|
|
68
68
|
.sort(function (a, b) { return a.order - b.order; })
|
|
69
69
|
.map(function (link) { return (react_1.default.createElement(link_1.default, { key: "".concat(link.href, "-").concat(link.order), href: link.href, className: (0, utils_1.cn)("text-sm font-medium transition-colors hover:text-blue-400", scrolled ? "text-gray-700" : "text-white") }, link.label)); }),
|
|
70
70
|
react_1.default.createElement(button_1.Button, { asChild: true, size: "sm", className: "bg-blue-700 hover:bg-blue-800" },
|
|
71
|
-
react_1.default.createElement(link_1.default, { href:
|
|
71
|
+
react_1.default.createElement(link_1.default, { href: ctaHref }, ctaLabel))),
|
|
72
72
|
react_1.default.createElement(sheet_1.Sheet, { open: open, onOpenChange: setOpen },
|
|
73
73
|
react_1.default.createElement(sheet_1.SheetTrigger, { asChild: true, className: "lg:hidden" },
|
|
74
74
|
react_1.default.createElement(button_1.Button, { variant: "ghost", size: "icon" },
|
|
@@ -78,15 +78,15 @@ var Navigation = function (_a) {
|
|
|
78
78
|
react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-700" },
|
|
79
79
|
react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
|
|
80
80
|
react_1.default.createElement("div", null,
|
|
81
|
-
react_1.default.createElement("div", { className: "text-sm font-bold text-blue-900" },
|
|
82
|
-
react_1.default.createElement("div", { className: "text-xs text-blue-600" },
|
|
81
|
+
react_1.default.createElement("div", { className: "text-sm font-bold text-blue-900" }, brandShortName),
|
|
82
|
+
react_1.default.createElement("div", { className: "text-xs text-blue-600" }, brandFullName))),
|
|
83
83
|
react_1.default.createElement(separator_1.Separator, null),
|
|
84
84
|
react_1.default.createElement("div", { className: "mt-4 flex flex-col gap-2" },
|
|
85
|
-
|
|
85
|
+
items
|
|
86
86
|
.filter(function (l) { return l.enable; })
|
|
87
87
|
.sort(function (a, b) { return a.order - b.order; })
|
|
88
88
|
.map(function (link) { return (react_1.default.createElement(link_1.default, { key: "".concat(link.href, "-").concat(link.order), href: link.href, onClick: function () { return setOpen(false); }, className: "rounded-md px-3 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-blue-50 hover:text-blue-700" }, link.label)); }),
|
|
89
89
|
react_1.default.createElement(button_1.Button, { asChild: true, className: "mt-4 bg-blue-700 hover:bg-blue-800" },
|
|
90
|
-
react_1.default.createElement(link_1.default, { href:
|
|
90
|
+
react_1.default.createElement(link_1.default, { href: ctaHref, onClick: function () { return setOpen(false); } }, ctaLabel))))))));
|
|
91
91
|
};
|
|
92
92
|
exports.Navigation = Navigation;
|
|
@@ -25,7 +25,7 @@ var AboutSection = function (_a) {
|
|
|
25
25
|
react_1.default.createElement("p", { className: "mx-auto max-w-3xl text-lg text-gray-600" }, lead)),
|
|
26
26
|
react_1.default.createElement("div", { className: "mb-20 grid grid-cols-1 items-start gap-16 lg:grid-cols-2" },
|
|
27
27
|
react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, x: -50 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.7 }, viewport: { once: true } },
|
|
28
|
-
react_1.default.createElement("div", { className: "mb-6 space-y-5" }, paragraphs.map(function (p
|
|
28
|
+
react_1.default.createElement("div", { className: "mb-6 space-y-5" }, paragraphs.map(function (p) { return (react_1.default.createElement("p", { key: p.id, className: "leading-relaxed text-gray-600" }, p.content)); })),
|
|
29
29
|
react_1.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, stats.map(function (stat) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: stat.label, className: "rounded-2xl border border-gray-100 bg-gray-50 p-5 text-center shadow-sm", whileHover: { scale: 1.04, y: -3 }, transition: { type: "spring", stiffness: 300 } },
|
|
30
30
|
react_1.default.createElement("div", { className: "mb-1 text-2xl font-extrabold text-gray-900" }, stat.value),
|
|
31
31
|
react_1.default.createElement("div", { className: "text-xs font-medium text-gray-500" }, stat.label),
|
|
@@ -23,7 +23,7 @@ var statusStyles = {
|
|
|
23
23
|
closed: "bg-gray-100 text-gray-500",
|
|
24
24
|
};
|
|
25
25
|
var AdmissionsSection = function (_a) {
|
|
26
|
-
var admissionSteps = _a.admissionSteps, badge = _a.badge,
|
|
26
|
+
var admissionSteps = _a.admissionSteps, badge = _a.badge, ctaDownloadLabel = _a.ctaDownloadLabel, ctaEmailHref = _a.ctaEmailHref, ctaEmailLabel = _a.ctaEmailLabel, ctaPhoneHref = _a.ctaPhoneHref, ctaPhoneLabel = _a.ctaPhoneLabel, documentsRequired = _a.documentsRequired, documentsTitle = _a.documentsTitle, heading = _a.heading, headingHighlight = _a.headingHighlight, keyDates = _a.keyDates, keyDatesTitle = _a.keyDatesTitle, lead = _a.lead;
|
|
27
27
|
return (react_1.default.createElement("section", { id: "admissions", className: "overflow-hidden bg-white py-24" },
|
|
28
28
|
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
29
29
|
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-16 text-center", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6 }, viewport: { once: true } },
|
|
@@ -53,9 +53,9 @@ var AdmissionsSection = function (_a) {
|
|
|
53
53
|
react_1.default.createElement(badge_1.Badge, { className: statusStyles[item.status] }, item.date))); }))),
|
|
54
54
|
react_1.default.createElement(framer_motion_1.motion.div, { className: "rounded-2xl bg-slate-50 p-6", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.1 }, viewport: { once: true } },
|
|
55
55
|
react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, documentsTitle),
|
|
56
|
-
react_1.default.createElement("ul", { className: "space-y-2" }, documentsRequired.map(function (doc) { return (react_1.default.createElement("li", { key: doc, className: "flex items-start gap-2 text-sm text-gray-600" },
|
|
56
|
+
react_1.default.createElement("ul", { className: "space-y-2" }, documentsRequired.map(function (doc) { return (react_1.default.createElement("li", { key: doc.id, className: "flex items-start gap-2 text-sm text-gray-600" },
|
|
57
57
|
react_1.default.createElement(lucide_react_1.CheckCircle, { className: "mt-0.5 h-4 w-4 shrink-0 text-green-500" }),
|
|
58
|
-
doc)); }))),
|
|
58
|
+
doc.content)); }))),
|
|
59
59
|
react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-col justify-between rounded-2xl bg-linear-to-br from-blue-800 to-blue-600 p-7 text-white", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } },
|
|
60
60
|
react_1.default.createElement("div", null,
|
|
61
61
|
react_1.default.createElement("h3", { className: "mb-3 text-xl font-bold" }, "Ready to Join LGGS?"),
|
|
@@ -63,15 +63,15 @@ var AdmissionsSection = function (_a) {
|
|
|
63
63
|
react_1.default.createElement("div", { className: "space-y-3" },
|
|
64
64
|
react_1.default.createElement(button_1.Button, { className: "w-full bg-yellow-400 font-bold text-blue-900 hover:bg-yellow-300" },
|
|
65
65
|
react_1.default.createElement(lucide_react_1.Download, { className: "mr-2 h-4 w-4" }),
|
|
66
|
-
|
|
66
|
+
ctaDownloadLabel),
|
|
67
67
|
react_1.default.createElement("div", { className: "space-y-2 border-t border-blue-700 pt-3" },
|
|
68
|
-
react_1.default.createElement(link_1.default, { href:
|
|
68
|
+
react_1.default.createElement(link_1.default, { href: ctaPhoneHref, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
|
|
69
69
|
react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4" }),
|
|
70
70
|
" ",
|
|
71
|
-
|
|
72
|
-
react_1.default.createElement(link_1.default, { href:
|
|
71
|
+
ctaPhoneLabel),
|
|
72
|
+
react_1.default.createElement(link_1.default, { href: ctaEmailHref, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
|
|
73
73
|
react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4" }),
|
|
74
74
|
" ",
|
|
75
|
-
|
|
75
|
+
ctaEmailLabel))))))));
|
|
76
76
|
};
|
|
77
77
|
exports.AdmissionsSection = AdmissionsSection;
|
|
@@ -23,7 +23,7 @@ var iconMap = {
|
|
|
23
23
|
Bus: lucide_react_1.Bus,
|
|
24
24
|
};
|
|
25
25
|
var FAQsSection = function (_a) {
|
|
26
|
-
var
|
|
26
|
+
var badge = _a.badge, heading = _a.heading, headingHighlight = _a.headingHighlight, items = _a.items, lead = _a.lead;
|
|
27
27
|
return (react_1.default.createElement("section", { id: "faqs", className: "overflow-hidden bg-slate-50 py-24" },
|
|
28
28
|
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
29
29
|
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-16 text-center", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6 }, viewport: { once: true } },
|
|
@@ -34,7 +34,7 @@ var FAQsSection = function (_a) {
|
|
|
34
34
|
react_1.default.createElement("span", { className: "text-blue-700" }, headingHighlight)),
|
|
35
35
|
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, lead)),
|
|
36
36
|
react_1.default.createElement("div", { className: "mx-auto max-w-3xl" },
|
|
37
|
-
react_1.default.createElement(accordion_1.Accordion, { type: "single", collapsible: true, className: "space-y-3" },
|
|
37
|
+
react_1.default.createElement(accordion_1.Accordion, { type: "single", collapsible: true, className: "space-y-3" }, items.map(function (faq, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: faq.id, initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.4, delay: i * 0.05 }, viewport: { once: true } },
|
|
38
38
|
react_1.default.createElement(accordion_1.AccordionItem, { value: faq.id, className: "rounded-xl border border-gray-100 bg-white px-2 shadow-sm transition-shadow hover:shadow-md data-[state=open]:border-blue-100 data-[state=open]:shadow-md" },
|
|
39
39
|
react_1.default.createElement(accordion_1.AccordionTrigger, { className: "px-4 py-5 hover:no-underline" },
|
|
40
40
|
react_1.default.createElement("div", { className: "flex items-start gap-3 text-left" },
|
|
@@ -99,9 +99,9 @@ var HeroSection = function (_a) {
|
|
|
99
99
|
react_1.default.createElement(framer_motion_1.motion.p, { variants: textVariants, transition: { duration: 0.5, delay: 0.3 }, className: "mb-8 max-w-xl text-base leading-relaxed text-white/75 md:text-lg" }, slide.description),
|
|
100
100
|
react_1.default.createElement(framer_motion_1.motion.div, { variants: textVariants, transition: { duration: 0.5, delay: 0.4 }, className: "flex flex-wrap gap-4" },
|
|
101
101
|
react_1.default.createElement(button_1.Button, { asChild: true, size: "lg", className: "rounded-full bg-yellow-400 font-semibold text-gray-900 shadow-lg hover:bg-yellow-300" },
|
|
102
|
-
react_1.default.createElement(link_1.default, { href: slide.
|
|
102
|
+
react_1.default.createElement(link_1.default, { href: slide.primaryCtaHref }, slide.primaryCtaLabel)),
|
|
103
103
|
react_1.default.createElement(button_1.Button, { asChild: true, size: "lg", variant: "outline", className: "rounded-full border-white/40 bg-white/10 text-white backdrop-blur-sm hover:bg-white hover:text-gray-900" },
|
|
104
|
-
react_1.default.createElement(link_1.default, { href: slide.
|
|
104
|
+
react_1.default.createElement(link_1.default, { href: slide.secondaryCtaHref }, slide.secondaryCtaLabel)))))))),
|
|
105
105
|
react_1.default.createElement(framer_motion_1.motion.div, { className: "border-t border-white/10 bg-black/20 backdrop-blur-sm", initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.8, delay: 0.6 } },
|
|
106
106
|
react_1.default.createElement("div", { className: "container mx-auto px-6 py-4 md:px-12" },
|
|
107
107
|
react_1.default.createElement("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-4" }, stats.map(function (stat, i) {
|
|
@@ -46,7 +46,7 @@ var button_1 = require("../../../components/ui/button");
|
|
|
46
46
|
var link_1 = __importDefault(require("next/link"));
|
|
47
47
|
var lucide_react_1 = require("lucide-react");
|
|
48
48
|
var ProgramsSection = function (_a) {
|
|
49
|
-
var badge = _a.badge,
|
|
49
|
+
var badge = _a.badge, lead = _a.lead, programs = _a.programs, title = _a.title;
|
|
50
50
|
var _b = (0, react_1.useState)(0), activeIdx = _b[0], setActiveIdx = _b[1];
|
|
51
51
|
var active = programs[activeIdx];
|
|
52
52
|
var iconMap = {
|
|
@@ -50,8 +50,8 @@ var WhyChooseUsSection = function (_a) {
|
|
|
50
50
|
})()),
|
|
51
51
|
react_1.default.createElement("h3", { className: "mb-2 font-bold text-gray-900" }, f.title),
|
|
52
52
|
react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-500" }, f.description))); })),
|
|
53
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-wrap items-center justify-center gap-3 border-t border-gray-200 py-8", initial: { opacity: 0 }, whileInView: { opacity: 1 }, transition: { duration: 0.6, delay: 0.5 }, viewport: { once: true } }, highlights.map(function (badge) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: badge, className: "flex items-center gap-2 rounded-full border border-blue-100 bg-white px-4 py-2 text-sm font-medium text-blue-800 shadow-sm", whileHover: { scale: 1.05 }, transition: { type: "spring", stiffness: 400 } },
|
|
53
|
+
react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-wrap items-center justify-center gap-3 border-t border-gray-200 py-8", initial: { opacity: 0 }, whileInView: { opacity: 1 }, transition: { duration: 0.6, delay: 0.5 }, viewport: { once: true } }, highlights.map(function (badge) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: badge.id, className: "flex items-center gap-2 rounded-full border border-blue-100 bg-white px-4 py-2 text-sm font-medium text-blue-800 shadow-sm", whileHover: { scale: 1.05 }, transition: { type: "spring", stiffness: 400 } },
|
|
54
54
|
react_1.default.createElement(lucide_react_1.CheckCircle, { className: "h-4 w-4 text-blue-500" }),
|
|
55
|
-
badge)); })))));
|
|
55
|
+
badge.content)); })))));
|
|
56
56
|
};
|
|
57
57
|
exports.WhyChooseUsSection = WhyChooseUsSection;
|