@appcorp/shadcn 1.2.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/app-sidebar.js +16 -23
- package/components/audio.js +11 -19
- package/components/dashboard.js +27 -65
- package/components/drawer-generic.js +20 -28
- package/components/enhanced-checkbox.js +10 -57
- package/components/enhanced-combobox.js +99 -143
- package/components/enhanced-drawer-footer.js +22 -31
- package/components/enhanced-drawer-header.js +6 -14
- package/components/enhanced-dropzone-impl.d.ts +32 -0
- package/components/enhanced-dropzone-impl.js +218 -0
- package/components/enhanced-dropzone.d.ts +2 -63
- package/components/enhanced-dropzone.js +6 -294
- package/components/enhanced-input.js +10 -57
- package/components/enhanced-label.js +6 -52
- package/components/enhanced-radio.js +12 -20
- package/components/enhanced-select.js +13 -61
- package/components/enhanced-slider.js +11 -58
- package/components/enhanced-switch.js +11 -58
- package/components/enhanced-table-footer-action.js +11 -19
- package/components/enhanced-table-footer-page.js +16 -24
- package/components/enhanced-table-footer-pagination.js +11 -21
- package/components/enhanced-table-header-action.js +22 -30
- package/components/enhanced-table-header-search.js +9 -17
- package/components/enhanced-table.js +125 -153
- package/components/enhanced-textarea.js +10 -57
- package/components/field.d.ts +1 -1
- package/components/field.js +31 -88
- package/components/image-resize-dialog.js +61 -159
- package/components/nav-main.js +32 -78
- package/components/nav-projects.js +37 -48
- package/components/nav-user.js +41 -51
- package/components/show-toast.js +5 -9
- package/components/sidebar.d.ts +1 -1
- package/components/sidebar.js +115 -184
- package/components/team-switcher.js +36 -47
- package/components/theme-provider.js +36 -84
- package/components/timeline.js +12 -20
- package/components/tooltip.js +10 -59
- package/components/ui/accordion.js +17 -67
- package/components/ui/alert-dialog.js +32 -89
- package/components/ui/alert.d.ts +1 -1
- package/components/ui/alert.js +14 -63
- package/components/ui/area-chart-v1-impl.d.ts +19 -0
- package/components/ui/area-chart-v1-impl.js +75 -0
- package/components/ui/area-chart-v1.d.ts +2 -19
- package/components/ui/area-chart-v1.js +4 -113
- package/components/ui/aspect-ratio.js +3 -39
- package/components/ui/avatar.js +13 -62
- package/components/ui/badge.d.ts +2 -2
- package/components/ui/badge.js +7 -55
- package/components/ui/breadcrumb.js +27 -80
- package/components/ui/button.d.ts +2 -2
- package/components/ui/button.js +10 -58
- package/components/ui/calendar-impl.d.ts +8 -0
- package/components/ui/calendar-impl.js +55 -0
- package/components/ui/calendar.d.ts +2 -8
- package/components/ui/calendar.js +5 -108
- package/components/ui/card.js +21 -73
- package/components/ui/carousel-impl.d.ts +18 -0
- package/components/ui/carousel-impl.js +117 -0
- package/components/ui/carousel.d.ts +6 -18
- package/components/ui/carousel.js +8 -170
- package/components/ui/chart-impl.d.ts +62 -0
- package/components/ui/chart-impl.js +162 -0
- package/components/ui/chart.d.ts +7 -62
- package/components/ui/chart.js +9 -219
- package/components/ui/checkbox.js +10 -57
- package/components/ui/collapsible.js +5 -43
- package/components/ui/combobox.js +22 -58
- package/components/ui/command-impl.d.ts +80 -0
- package/components/ui/command-impl.js +63 -0
- package/components/ui/command.d.ts +9 -80
- package/components/ui/command.js +12 -117
- package/components/ui/context-menu.js +41 -102
- package/components/ui/dialog.js +28 -84
- package/components/ui/drawer-impl.d.ts +22 -0
- package/components/ui/drawer-impl.js +56 -0
- package/components/ui/drawer.d.ts +10 -22
- package/components/ui/drawer.js +13 -111
- package/components/ui/dropdown-menu.js +41 -102
- package/components/ui/form.d.ts +4 -2
- package/components/ui/form.js +41 -95
- package/components/ui/hover-card.js +9 -58
- package/components/ui/input-otp-impl.d.ts +34 -0
- package/components/ui/input-otp-impl.js +43 -0
- package/components/ui/input-otp.d.ts +4 -34
- package/components/ui/input-otp.js +7 -92
- package/components/ui/input.js +6 -53
- package/components/ui/label.d.ts +1 -1
- package/components/ui/label.js +9 -56
- package/components/ui/language-selector.js +17 -55
- package/components/ui/menubar.js +46 -108
- package/components/ui/navigation-menu.d.ts +1 -1
- package/components/ui/navigation-menu.js +29 -84
- package/components/ui/pagination.js +30 -83
- package/components/ui/popover.js +10 -60
- package/components/ui/progress.js +8 -55
- package/components/ui/radio-group.js +12 -60
- package/components/ui/resizable-impl.d.ts +24 -0
- package/components/ui/resizable-impl.js +27 -0
- package/components/ui/resizable.d.ts +3 -24
- package/components/ui/resizable.js +6 -78
- package/components/ui/scroll-area.js +10 -58
- package/components/ui/select.js +34 -90
- package/components/ui/separator.js +7 -54
- package/components/ui/sheet.d.ts +1 -1
- package/components/ui/sheet.js +30 -86
- package/components/ui/skeleton.js +5 -21
- package/components/ui/slider.js +10 -57
- package/components/ui/sonner.js +7 -24
- package/components/ui/switch.js +8 -55
- package/components/ui/table.js +27 -81
- package/components/ui/tabs.js +14 -64
- package/components/ui/textarea.js +6 -53
- package/components/ui/theme-switcher.js +41 -91
- package/components/ui/toggle.d.ts +2 -2
- package/components/ui/toggle.js +9 -57
- package/data/admin-dashboard.js +16 -19
- package/hooks/use-enhanced-combobox.js +47 -124
- package/hooks/use-mobile.js +8 -44
- package/hooks/use-outside-click.js +6 -10
- package/lib/themes.js +1 -4
- package/lib/toast-utils.js +78 -120
- package/lib/utils.js +4 -11
- package/package.json +9 -90
- package/utils/transform-breadcrumbs.js +4 -8
- package/utils/transform-navitems.js +7 -22
- package/components/aceternity-ui/apple-cards-carousel.d.ts +0 -35
- package/components/aceternity-ui/apple-cards-carousel.js +0 -263
- package/components/shadcn-example/ai-chat/chat-interface.d.ts +0 -11
- package/components/shadcn-example/ai-chat/chat-interface.js +0 -70
- package/components/shadcn-example/ai-chat/index.d.ts +0 -38
- package/components/shadcn-example/ai-chat/index.js +0 -66
- package/components/shadcn-example/ai-chat/sidebar.d.ts +0 -15
- package/components/shadcn-example/ai-chat/sidebar.js +0 -68
- package/components/shadcn-example/ai-chat/welcome-section.d.ts +0 -12
- package/components/shadcn-example/ai-chat/welcome-section.js +0 -26
- package/components/shadcn-example/authentication/index.d.ts +0 -24
- package/components/shadcn-example/authentication/index.js +0 -59
- package/components/shadcn-example/authentication/user-auth-form.d.ts +0 -11
- package/components/shadcn-example/authentication/user-auth-form.js +0 -54
- package/components/shadcn-example/blog-detail-page/comment-section.d.ts +0 -15
- package/components/shadcn-example/blog-detail-page/comment-section.js +0 -83
- package/components/shadcn-example/blog-detail-page/content.d.ts +0 -7
- package/components/shadcn-example/blog-detail-page/content.js +0 -15
- package/components/shadcn-example/blog-detail-page/header.d.ts +0 -11
- package/components/shadcn-example/blog-detail-page/header.js +0 -36
- package/components/shadcn-example/blog-detail-page/index.d.ts +0 -25
- package/components/shadcn-example/blog-detail-page/index.js +0 -74
- package/components/shadcn-example/blog-page/blog-post-card.d.ts +0 -13
- package/components/shadcn-example/blog-page/blog-post-card.js +0 -30
- package/components/shadcn-example/blog-page/featured-post-sidebar-item.d.ts +0 -10
- package/components/shadcn-example/blog-page/featured-post-sidebar-item.js +0 -19
- package/components/shadcn-example/blog-page/index.d.ts +0 -20
- package/components/shadcn-example/blog-page/index.js +0 -36
- package/components/shadcn-example/coming-soon/countdown.d.ts +0 -2
- package/components/shadcn-example/coming-soon/countdown.js +0 -82
- package/components/shadcn-example/coming-soon/index.d.ts +0 -10
- package/components/shadcn-example/coming-soon/index.js +0 -41
- package/components/shadcn-io/color-picker/index.d.ts +0 -43
- package/components/shadcn-io/color-picker/index.js +0 -304
- package/components/shadcn-io/copy-button/index.d.ts +0 -16
- package/components/shadcn-io/copy-button/index.js +0 -121
- package/components/shadcn-io/dropzone/index.d.ts +0 -19
- package/components/shadcn-io/dropzone/index.js +0 -131
- package/components/shadcn-io/gantt/index.d.ts +0 -145
- package/components/shadcn-io/gantt/index.js +0 -766
- package/components/shadcn-io/table/index.d.ts +0 -60
- package/components/shadcn-io/table/index.js +0 -138
- package/templates/appcorp-v1/footer/bottom-bar.d.ts +0 -6
- package/templates/appcorp-v1/footer/bottom-bar.js +0 -25
- package/templates/appcorp-v1/footer/cta.d.ts +0 -6
- package/templates/appcorp-v1/footer/cta.js +0 -21
- package/templates/appcorp-v1/footer/footer-grid.d.ts +0 -14
- package/templates/appcorp-v1/footer/footer-grid.js +0 -52
- package/templates/appcorp-v1/footer/index.d.ts +0 -3
- package/templates/appcorp-v1/footer/index.js +0 -28
- package/templates/appcorp-v1/footer/newsletter.d.ts +0 -11
- package/templates/appcorp-v1/footer/newsletter.js +0 -28
- package/templates/appcorp-v1/footer/stats.d.ts +0 -6
- package/templates/appcorp-v1/footer/stats.js +0 -15
- package/templates/appcorp-v1/header/announcement-bar.d.ts +0 -3
- package/templates/appcorp-v1/header/announcement-bar.js +0 -15
- package/templates/appcorp-v1/header/dropdown-panel.d.ts +0 -8
- package/templates/appcorp-v1/header/dropdown-panel.js +0 -72
- package/templates/appcorp-v1/header/index.d.ts +0 -12
- package/templates/appcorp-v1/header/index.js +0 -16
- package/templates/appcorp-v1/header/mobile-menu.d.ts +0 -14
- package/templates/appcorp-v1/header/mobile-menu.js +0 -101
- package/templates/appcorp-v1/header/navigation-bar.d.ts +0 -3
- package/templates/appcorp-v1/header/navigation-bar.js +0 -117
- package/templates/appcorp-v1/header/social-button.d.ts +0 -7
- package/templates/appcorp-v1/header/social-button.js +0 -48
- package/templates/appcorp-v1/home.d.ts +0 -3
- package/templates/appcorp-v1/home.js +0 -27
- package/templates/data/appcorp-v1.d.ts +0 -93
- package/templates/data/appcorp-v1.js +0 -348
- package/templates/data/edupilotpro-v1.d.ts +0 -33
- package/templates/data/edupilotpro-v1.js +0 -116
- package/templates/data/school-v1.d.ts +0 -328
- package/templates/data/school-v1.js +0 -1563
- package/templates/edupilotpro-v1/feature-card.d.ts +0 -13
- package/templates/edupilotpro-v1/feature-card.js +0 -28
- package/templates/edupilotpro-v1/mockups/dashboard-mockup.d.ts +0 -3
- package/templates/edupilotpro-v1/mockups/dashboard-mockup.js +0 -55
- package/templates/school-v1/footer.d.ts +0 -3
- package/templates/school-v1/footer.js +0 -75
- package/templates/school-v1/index.d.ts +0 -18
- package/templates/school-v1/index.js +0 -60
- package/templates/school-v1/navigation.d.ts +0 -3
- package/templates/school-v1/navigation.js +0 -123
- package/templates/school-v1/sections/about.d.ts +0 -3
- package/templates/school-v1/sections/about.js +0 -49
- package/templates/school-v1/sections/admissions.d.ts +0 -3
- package/templates/school-v1/sections/admissions.js +0 -77
- package/templates/school-v1/sections/contact.d.ts +0 -3
- package/templates/school-v1/sections/contact.js +0 -67
- package/templates/school-v1/sections/faqs.d.ts +0 -3
- package/templates/school-v1/sections/faqs.js +0 -50
- package/templates/school-v1/sections/hero.d.ts +0 -3
- package/templates/school-v1/sections/hero.js +0 -132
- package/templates/school-v1/sections/management.d.ts +0 -3
- package/templates/school-v1/sections/management.js +0 -34
- package/templates/school-v1/sections/policies.d.ts +0 -3
- package/templates/school-v1/sections/policies.js +0 -127
- package/templates/school-v1/sections/programs.d.ts +0 -3
- package/templates/school-v1/sections/programs.js +0 -107
- package/templates/school-v1/sections/testimonials.d.ts +0 -3
- package/templates/school-v1/sections/testimonials.js +0 -46
- package/templates/school-v1/sections/why-choose-us.d.ts +0 -3
- package/templates/school-v1/sections/why-choose-us.js +0 -57
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ContactSection = void 0;
|
|
8
|
-
var framer_motion_1 = require("framer-motion");
|
|
9
|
-
var badge_1 = require("../../../components/ui/badge");
|
|
10
|
-
var button_1 = require("../../../components/ui/button");
|
|
11
|
-
var link_1 = __importDefault(require("next/link"));
|
|
12
|
-
var lucide_react_1 = require("lucide-react");
|
|
13
|
-
var react_1 = __importDefault(require("react"));
|
|
14
|
-
var iconMap = {
|
|
15
|
-
'map-pin': lucide_react_1.MapPin,
|
|
16
|
-
'phone': lucide_react_1.Phone,
|
|
17
|
-
'mail': lucide_react_1.Mail,
|
|
18
|
-
'clock': lucide_react_1.Clock,
|
|
19
|
-
'facebook': lucide_react_1.Facebook,
|
|
20
|
-
'instagram': lucide_react_1.Instagram,
|
|
21
|
-
'twitter': lucide_react_1.Twitter,
|
|
22
|
-
};
|
|
23
|
-
var ContactSection = function (_a) {
|
|
24
|
-
var badge = _a.badge, contactDetails = _a.contactDetails, ctaBullets = _a.ctaBullets, ctaLead = _a.ctaLead, ctaPrimaryHref = _a.ctaPrimaryHref, ctaPrimaryLabel = _a.ctaPrimaryLabel, ctaSecondaryHref = _a.ctaSecondaryHref, ctaSecondaryLabel = _a.ctaSecondaryLabel, ctaTitle = _a.ctaTitle, heading = _a.heading, headingHighlight = _a.headingHighlight, lead = _a.lead, mapEmbedSrc = _a.mapEmbedSrc, mapOpenLink = _a.mapOpenLink, socialLinks = _a.socialLinks;
|
|
25
|
-
return (react_1.default.createElement("section", { id: "contact", className: "overflow-hidden bg-white py-24" },
|
|
26
|
-
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
27
|
-
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 } },
|
|
28
|
-
react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
|
|
29
|
-
react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
|
|
30
|
-
heading,
|
|
31
|
-
" ",
|
|
32
|
-
react_1.default.createElement("span", { className: "text-blue-700" }, headingHighlight)),
|
|
33
|
-
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, lead)),
|
|
34
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-10 lg:grid-cols-2" },
|
|
35
|
-
react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, x: -30 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.5 }, viewport: { once: true } },
|
|
36
|
-
react_1.default.createElement("div", { className: "mb-8 grid grid-cols-1 gap-4 sm:grid-cols-2" }, contactDetails.map(function (item) { return (react_1.default.createElement("div", { key: item.label, className: "rounded-2xl border border-gray-100 bg-slate-50 p-5 transition-shadow hover:shadow-md" },
|
|
37
|
-
react_1.default.createElement("div", { className: "mb-3 inline-flex h-10 w-10 items-center justify-center rounded-xl ".concat(item.bg) }, (function () {
|
|
38
|
-
var Icon = iconMap[item.icon];
|
|
39
|
-
return Icon ? (react_1.default.createElement(Icon, { className: "h-5 w-5 ".concat(item.color) })) : null;
|
|
40
|
-
})()),
|
|
41
|
-
react_1.default.createElement("div", { className: "mb-1 text-xs font-semibold tracking-wider text-gray-400 uppercase" }, item.label),
|
|
42
|
-
item.href !== null ? (react_1.default.createElement(link_1.default, { href: item.href, className: "text-sm font-medium ".concat(item.color, " hover:underline") }, item.value)) : (react_1.default.createElement("div", { className: "text-sm font-medium text-gray-700" }, item.value)))); })),
|
|
43
|
-
react_1.default.createElement("div", { className: "mb-8" },
|
|
44
|
-
react_1.default.createElement("p", { className: "mb-3 text-sm font-semibold text-gray-700" }, "Follow Us"),
|
|
45
|
-
react_1.default.createElement("div", { className: "flex gap-3" }, socialLinks.map(function (s) { return (react_1.default.createElement(link_1.default, { key: s.label, href: s.href, className: "flex h-10 w-10 items-center justify-center rounded-xl border border-gray-200 bg-white transition-colors hover:border-blue-200 hover:bg-blue-50", "aria-label": s.label }, (function () {
|
|
46
|
-
var Icon = iconMap[s.icon];
|
|
47
|
-
return Icon ? (react_1.default.createElement(Icon, { className: "h-5 w-5 text-gray-600" })) : null;
|
|
48
|
-
})())); }))),
|
|
49
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "overflow-hidden rounded-2xl border border-gray-100 shadow-sm", initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } },
|
|
50
|
-
react_1.default.createElement("iframe", { className: "rounded-2xl", src: mapEmbedSrc, width: "800", height: "250", loading: "lazy" }),
|
|
51
|
-
react_1.default.createElement("div", { className: "flex items-center gap-2 bg-slate-50 px-4 py-2.5" },
|
|
52
|
-
react_1.default.createElement(lucide_react_1.MapPin, { className: "h-4 w-4 text-blue-600" }),
|
|
53
|
-
react_1.default.createElement(link_1.default, { href: mapOpenLink, className: "text-xs font-medium text-blue-700 hover:underline" }, "Open in Google Maps")))),
|
|
54
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-col justify-between rounded-3xl bg-linear-to-br from-blue-800 via-blue-700 to-blue-600 p-8 text-white", initial: { opacity: 0, x: 30 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.5, delay: 0.1 }, viewport: { once: true } },
|
|
55
|
-
react_1.default.createElement("div", null,
|
|
56
|
-
react_1.default.createElement("h3", { className: "mb-4 text-2xl font-bold" }, ctaTitle),
|
|
57
|
-
react_1.default.createElement("p", { className: "mb-6 leading-relaxed text-blue-200" }, ctaLead),
|
|
58
|
-
react_1.default.createElement("ul", { className: "mb-8 space-y-2" }, ctaBullets.map(function (item) { return (react_1.default.createElement("li", { key: item, className: "flex items-center gap-2 text-sm text-blue-100" },
|
|
59
|
-
react_1.default.createElement("span", { className: "h-1.5 w-1.5 shrink-0 rounded-full bg-yellow-400" }),
|
|
60
|
-
item)); }))),
|
|
61
|
-
react_1.default.createElement("div", { className: "flex flex-col gap-3 sm:flex-row" },
|
|
62
|
-
react_1.default.createElement(button_1.Button, { className: "flex-1 bg-yellow-400 font-bold text-blue-900 hover:bg-yellow-300" },
|
|
63
|
-
react_1.default.createElement(link_1.default, { href: ctaPrimaryHref || "#" }, ctaPrimaryLabel)),
|
|
64
|
-
react_1.default.createElement(button_1.Button, { asChild: true, variant: "outline", className: "flex-1 border-white/40 bg-white/10 text-white hover:bg-white/20" },
|
|
65
|
-
react_1.default.createElement(link_1.default, { href: ctaSecondaryHref || "#" }, ctaSecondaryLabel))))))));
|
|
66
|
-
};
|
|
67
|
-
exports.ContactSection = ContactSection;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.FAQsSection = void 0;
|
|
8
|
-
var framer_motion_1 = require("framer-motion");
|
|
9
|
-
var accordion_1 = require("../../../components/ui/accordion");
|
|
10
|
-
var badge_1 = require("../../../components/ui/badge");
|
|
11
|
-
var lucide_react_1 = require("lucide-react");
|
|
12
|
-
var react_1 = __importDefault(require("react"));
|
|
13
|
-
var iconMap = {
|
|
14
|
-
'help': lucide_react_1.HelpCircle,
|
|
15
|
-
'users': lucide_react_1.Users,
|
|
16
|
-
'graduation-cap': lucide_react_1.GraduationCap,
|
|
17
|
-
'calendar': lucide_react_1.Calendar,
|
|
18
|
-
'book-open': lucide_react_1.BookOpen,
|
|
19
|
-
'heart': lucide_react_1.Heart,
|
|
20
|
-
'shield': lucide_react_1.Shield,
|
|
21
|
-
'star': lucide_react_1.Star,
|
|
22
|
-
'credit-card': lucide_react_1.CreditCard,
|
|
23
|
-
'bus': lucide_react_1.Bus,
|
|
24
|
-
};
|
|
25
|
-
var FAQsSection = function (_a) {
|
|
26
|
-
var badge = _a.badge, heading = _a.heading, headingHighlight = _a.headingHighlight, items = _a.items, lead = _a.lead;
|
|
27
|
-
return (react_1.default.createElement("section", { id: "faqs", className: "overflow-hidden bg-slate-50 py-24" },
|
|
28
|
-
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
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 } },
|
|
30
|
-
react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
|
|
31
|
-
react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
|
|
32
|
-
heading,
|
|
33
|
-
" ",
|
|
34
|
-
react_1.default.createElement("span", { className: "text-blue-700" }, headingHighlight)),
|
|
35
|
-
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, lead)),
|
|
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" }, 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
|
-
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
|
-
react_1.default.createElement(accordion_1.AccordionTrigger, { className: "px-4 py-5 hover:no-underline" },
|
|
40
|
-
react_1.default.createElement("div", { className: "flex items-start gap-3 text-left" },
|
|
41
|
-
react_1.default.createElement("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-blue-50" }, (function () {
|
|
42
|
-
var Icon = iconMap[faq.icon];
|
|
43
|
-
return react_1.default.createElement(Icon, { className: "h-4 w-4 text-blue-600" });
|
|
44
|
-
})()),
|
|
45
|
-
react_1.default.createElement("div", null,
|
|
46
|
-
react_1.default.createElement(badge_1.Badge, { variant: "outline", className: "mb-1 border-blue-200 text-xs text-blue-600" }, faq.category),
|
|
47
|
-
react_1.default.createElement("div", { className: "font-semibold text-gray-900" }, faq.question)))),
|
|
48
|
-
react_1.default.createElement(accordion_1.AccordionContent, { className: "pr-4 pb-5 pl-15 text-sm leading-relaxed text-gray-600" }, faq.answer)))); }))))));
|
|
49
|
-
};
|
|
50
|
-
exports.FAQsSection = FAQsSection;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
-
};
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.HeroSection = void 0;
|
|
41
|
-
var react_1 = __importStar(require("react"));
|
|
42
|
-
var link_1 = __importDefault(require("next/link"));
|
|
43
|
-
var framer_motion_1 = require("framer-motion");
|
|
44
|
-
var lucide_react_1 = require("lucide-react");
|
|
45
|
-
var button_1 = require("../../../components/ui/button");
|
|
46
|
-
var school_v1_1 = require("../../data/school-v1");
|
|
47
|
-
var statIcons = {
|
|
48
|
-
award: lucide_react_1.Award,
|
|
49
|
-
users: lucide_react_1.Users,
|
|
50
|
-
building: lucide_react_1.Building2,
|
|
51
|
-
heart: lucide_react_1.Heart,
|
|
52
|
-
};
|
|
53
|
-
var textVariants = {
|
|
54
|
-
enter: { opacity: 0, y: 40 },
|
|
55
|
-
center: { opacity: 1, y: 0 },
|
|
56
|
-
exit: { opacity: 0, y: -30 },
|
|
57
|
-
};
|
|
58
|
-
var slideVariants = {
|
|
59
|
-
enter: function (direction) { return ({ x: direction > 0 ? "100%" : "-100%" }); },
|
|
60
|
-
center: { x: 0 },
|
|
61
|
-
exit: function (direction) { return ({ x: direction > 0 ? "-100%" : "100%" }); },
|
|
62
|
-
};
|
|
63
|
-
var HeroSection = function (_a) {
|
|
64
|
-
var slides = _a.slides, stats = _a.stats;
|
|
65
|
-
var _b = (0, react_1.useState)(0), current = _b[0], setCurrent = _b[1];
|
|
66
|
-
var _c = (0, react_1.useState)(1), direction = _c[0], setDirection = _c[1];
|
|
67
|
-
var _d = (0, react_1.useState)(false), isPaused = _d[0], setIsPaused = _d[1];
|
|
68
|
-
var paginate = (0, react_1.useCallback)(function (newDirection) {
|
|
69
|
-
setDirection(newDirection);
|
|
70
|
-
setCurrent(function (prev) { return (prev + newDirection + slides.length) % slides.length; });
|
|
71
|
-
}, [slides.length]);
|
|
72
|
-
(0, react_1.useEffect)(function () {
|
|
73
|
-
if (isPaused)
|
|
74
|
-
return;
|
|
75
|
-
var timer = setInterval(function () { return paginate(1); }, 5500);
|
|
76
|
-
return function () { return clearInterval(timer); };
|
|
77
|
-
}, [isPaused, paginate]);
|
|
78
|
-
var slide = slides[current];
|
|
79
|
-
return (react_1.default.createElement("section", { id: "home", className: "relative overflow-hidden bg-blue-950", style: { height: "75vh", minHeight: "560px" }, onMouseEnter: function () { return setIsPaused(true); }, onMouseLeave: function () { return setIsPaused(false); } },
|
|
80
|
-
react_1.default.createElement(framer_motion_1.AnimatePresence, { initial: false, custom: direction },
|
|
81
|
-
react_1.default.createElement(framer_motion_1.motion.div, { key: slide.id, custom: direction, variants: slideVariants, initial: "enter", animate: "center", exit: "exit", transition: { duration: 0.85, ease: [0.32, 0.72, 0, 1] }, className: "absolute inset-0 bg-linear-to-br ".concat(slide.gradient) },
|
|
82
|
-
react_1.default.createElement("img", { src: slide.imageUrl, alt: "", role: "presentation", className: "absolute inset-0 h-full w-full object-cover opacity-20" }),
|
|
83
|
-
react_1.default.createElement("div", { className: "absolute inset-0 opacity-60", style: { background: slide.pattern } }),
|
|
84
|
-
react_1.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_at_bottom_left,rgba(255,255,255,0.06)_0%,transparent_55%)]" }),
|
|
85
|
-
react_1.default.createElement("div", { className: "absolute top-10 right-10 h-72 w-72 rounded-full bg-white/5 blur-3xl" }),
|
|
86
|
-
react_1.default.createElement("div", { className: "absolute bottom-10 left-20 h-56 w-56 rounded-full bg-white/5 blur-2xl" }),
|
|
87
|
-
react_1.default.createElement("div", { className: "absolute top-1/2 right-1/4 h-40 w-40 rounded-full border border-white/10" }),
|
|
88
|
-
react_1.default.createElement("div", { className: "absolute top-1/3 right-1/3 h-64 w-64 rounded-full border border-white/5" }))),
|
|
89
|
-
react_1.default.createElement("div", { className: "relative z-10 flex h-full flex-col" },
|
|
90
|
-
react_1.default.createElement("div", { className: "flex flex-1 items-center" },
|
|
91
|
-
react_1.default.createElement("div", { className: "container mx-auto px-6 md:px-12" },
|
|
92
|
-
react_1.default.createElement("div", { className: "max-w-3xl" },
|
|
93
|
-
react_1.default.createElement(framer_motion_1.AnimatePresence, { mode: "wait" },
|
|
94
|
-
react_1.default.createElement(framer_motion_1.motion.div, { key: slide.id + "-content", initial: "enter", animate: "center", exit: "exit", variants: textVariants, transition: { duration: 0.6 } },
|
|
95
|
-
react_1.default.createElement(framer_motion_1.motion.div, { variants: textVariants, transition: { duration: 0.5 }, className: "mb-2" },
|
|
96
|
-
react_1.default.createElement("span", { className: "inline-block rounded-full border border-white/20 bg-white/10 px-4 py-1.5 text-sm font-medium text-white backdrop-blur-sm" }, slide.badge)),
|
|
97
|
-
react_1.default.createElement(framer_motion_1.motion.h1, { variants: textVariants, transition: { duration: 0.55, delay: 0.1 }, className: "mb-1 text-2xl leading-tight font-extrabold tracking-tight text-white md:text-5xl lg:text-6xl xl:text-7xl" }, slide.headline),
|
|
98
|
-
react_1.default.createElement(framer_motion_1.motion.h1, { variants: textVariants, transition: { duration: 0.55, delay: 0.2 }, className: "mb-2 text-2xl leading-tight font-extrabold tracking-tight md:text-5xl lg:text-6xl xl:text-7xl ".concat(slide.accentColor) }, slide.subheadline),
|
|
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
|
-
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
|
-
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.primaryCtaHref }, slide.primaryCtaLabel)),
|
|
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.secondaryCtaHref }, slide.secondaryCtaLabel)))))))),
|
|
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
|
-
react_1.default.createElement("div", { className: "container mx-auto px-6 py-4 md:px-12" },
|
|
107
|
-
react_1.default.createElement("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-4" }, stats.map(function (stat, i) {
|
|
108
|
-
var Icon = statIcons[stat.icon];
|
|
109
|
-
return (react_1.default.createElement(framer_motion_1.motion.div, { key: stat.label, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.7 + i * 0.1 }, className: "flex items-center gap-3" },
|
|
110
|
-
react_1.default.createElement("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-yellow-400/20" },
|
|
111
|
-
react_1.default.createElement(Icon, { className: "h-5 w-5 text-yellow-400" })),
|
|
112
|
-
react_1.default.createElement("div", null,
|
|
113
|
-
react_1.default.createElement("div", { className: "text-lg leading-none font-bold text-white" }, stat.value),
|
|
114
|
-
react_1.default.createElement("div", { className: "text-xs text-white/60" }, stat.label))));
|
|
115
|
-
}))))),
|
|
116
|
-
react_1.default.createElement("button", { onClick: function () { return paginate(-1); }, "aria-label": "Previous slide", className: "absolute top-1/2 left-4 z-20 -translate-y-1/2 rounded-full bg-white/10 p-2 text-white backdrop-blur-sm transition hover:bg-white/25" },
|
|
117
|
-
react_1.default.createElement(lucide_react_1.ChevronLeft, { className: "h-6 w-6" })),
|
|
118
|
-
react_1.default.createElement("button", { onClick: function () { return paginate(1); }, "aria-label": "Next slide", className: "absolute top-1/2 right-4 z-20 -translate-y-1/2 rounded-full bg-white/10 p-2 text-white backdrop-blur-sm transition hover:bg-white/25" },
|
|
119
|
-
react_1.default.createElement(lucide_react_1.ChevronRight, { className: "h-6 w-6" })),
|
|
120
|
-
react_1.default.createElement("div", { className: "absolute bottom-20 left-6 z-20 hidden gap-2 md:left-12 md:block" }, school_v1_1.heroSlides.map(function (_, i) { return (react_1.default.createElement("button", { key: i, onClick: function () {
|
|
121
|
-
setDirection(i > current ? 1 : -1);
|
|
122
|
-
setCurrent(i);
|
|
123
|
-
}, "aria-label": "Go to slide ".concat(i + 1), className: "h-2 mr-1 rounded-full transition-all duration-300 ".concat(i === current
|
|
124
|
-
? "w-8 bg-yellow-400"
|
|
125
|
-
: "w-2 bg-white/40 hover:bg-white/70") })); })),
|
|
126
|
-
react_1.default.createElement("div", { className: "absolute right-6 bottom-24 z-20 hidden rounded-full bg-black/20 px-3 py-1 text-xs text-white/60 backdrop-blur-sm md:block" },
|
|
127
|
-
String(current + 1).padStart(2, "0"),
|
|
128
|
-
" /",
|
|
129
|
-
" ",
|
|
130
|
-
String(school_v1_1.heroSlides.length).padStart(2, "0"))));
|
|
131
|
-
};
|
|
132
|
-
exports.HeroSection = HeroSection;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ManagementSection = void 0;
|
|
8
|
-
var framer_motion_1 = require("framer-motion");
|
|
9
|
-
var image_1 = __importDefault(require("next/image"));
|
|
10
|
-
var badge_1 = require("../../../components/ui/badge");
|
|
11
|
-
var lucide_react_1 = require("lucide-react");
|
|
12
|
-
var react_1 = __importDefault(require("react"));
|
|
13
|
-
var ManagementSection = function (_a) {
|
|
14
|
-
var badge = _a.badge, heading = _a.heading, headingHighlight = _a.headingHighlight, lead = _a.lead, team = _a.team;
|
|
15
|
-
return (react_1.default.createElement("section", { id: "management", className: "overflow-hidden bg-white py-24" },
|
|
16
|
-
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
17
|
-
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 } },
|
|
18
|
-
react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
|
|
19
|
-
react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
|
|
20
|
-
heading,
|
|
21
|
-
" ",
|
|
22
|
-
react_1.default.createElement("span", { className: "text-blue-700" }, headingHighlight)),
|
|
23
|
-
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, lead)),
|
|
24
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5" }, team.map(function (member, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: member.id, className: "flex flex-col items-center text-center", initial: { opacity: 1, y: 50 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: i * 0.1 }, viewport: { once: true } },
|
|
25
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "relative mb-5 h-24 w-24 rounded-full shadow-lg", whileHover: { scale: 1.08 }, transition: { type: "spring", stiffness: 300 } },
|
|
26
|
-
react_1.default.createElement(image_1.default, { src: member.avatar, alt: member.name, fill: true, className: "rounded-full object-cover" })),
|
|
27
|
-
react_1.default.createElement("h3", { className: "mb-0.5 font-bold text-gray-900" }, member.name),
|
|
28
|
-
react_1.default.createElement("p", { className: "mb-3 text-xs font-semibold text-blue-700" }, member.title),
|
|
29
|
-
react_1.default.createElement("span", { className: "mb-3 inline-flex items-center gap-1 rounded-full bg-slate-100 px-2.5 py-1 text-xs text-gray-600" },
|
|
30
|
-
react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-3 w-3" }),
|
|
31
|
-
member.qualifications),
|
|
32
|
-
react_1.default.createElement("p", { className: "text-xs leading-relaxed text-gray-500" }, member.bio))); })))));
|
|
33
|
-
};
|
|
34
|
-
exports.ManagementSection = ManagementSection;
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.PoliciesSection = void 0;
|
|
38
|
-
var react_1 = __importStar(require("react"));
|
|
39
|
-
var framer_motion_1 = require("framer-motion");
|
|
40
|
-
var lucide_react_1 = require("lucide-react");
|
|
41
|
-
var badge_1 = require("../../../components/ui/badge");
|
|
42
|
-
var categoryIcons = {
|
|
43
|
-
"book-open": lucide_react_1.BookOpen,
|
|
44
|
-
"user-plus": lucide_react_1.UserPlus,
|
|
45
|
-
"graduation-cap": lucide_react_1.GraduationCap,
|
|
46
|
-
"credit-card": lucide_react_1.CreditCard,
|
|
47
|
-
shield: lucide_react_1.Shield,
|
|
48
|
-
info: lucide_react_1.Info,
|
|
49
|
-
tag: lucide_react_1.Tag,
|
|
50
|
-
};
|
|
51
|
-
function AccordionItem(_a) {
|
|
52
|
-
var section = _a.section, colorClass = _a.colorClass, bgClass = _a.bgClass, borderClass = _a.borderClass, bulletBg = _a.bulletBg;
|
|
53
|
-
var _b = (0, react_1.useState)(false), open = _b[0], setOpen = _b[1];
|
|
54
|
-
return (react_1.default.createElement("div", { className: "self-start overflow-hidden rounded-xl border ".concat(borderClass, " bg-white") },
|
|
55
|
-
react_1.default.createElement("button", { className: "flex w-full items-center justify-between gap-4 px-5 py-4 text-left", onClick: function () { return setOpen(function (o) { return !o; }); } },
|
|
56
|
-
react_1.default.createElement("span", { className: "text-sm font-semibold text-gray-800" }, section.title),
|
|
57
|
-
react_1.default.createElement(framer_motion_1.motion.div, { animate: { rotate: open ? 180 : 0 }, transition: { duration: 0.2 } },
|
|
58
|
-
react_1.default.createElement(lucide_react_1.ChevronDown, { className: "h-4 w-4 shrink-0 ".concat(colorClass) }))),
|
|
59
|
-
react_1.default.createElement(framer_motion_1.AnimatePresence, { initial: false }, open && (react_1.default.createElement(framer_motion_1.motion.div, { initial: { height: 0, opacity: 0 }, animate: { height: "auto", opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: { duration: 0.25, ease: "easeInOut" } },
|
|
60
|
-
react_1.default.createElement("div", { className: "border-t ".concat(borderClass, " ").concat(bgClass, " space-y-3 px-5 py-4") }, section.points.map(function (point, i) { return (react_1.default.createElement("div", { key: i, className: "flex gap-3" },
|
|
61
|
-
react_1.default.createElement(lucide_react_1.CheckCircle, { className: "mt-0.5 h-4 w-4 shrink-0 ".concat(colorClass) }),
|
|
62
|
-
react_1.default.createElement("div", null,
|
|
63
|
-
react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-700" }, point.text),
|
|
64
|
-
point.sub && (react_1.default.createElement("ul", { className: "mt-2 space-y-1" }, point.sub.map(function (s) { return (react_1.default.createElement("li", { key: s.id, className: "flex items-start gap-2" },
|
|
65
|
-
react_1.default.createElement("span", { className: "mt-2 h-1.5 w-1.5 shrink-0 rounded-full ".concat(bulletBg) }),
|
|
66
|
-
react_1.default.createElement("span", { className: "text-sm text-gray-600" }, s.text))); })))))); })))))));
|
|
67
|
-
}
|
|
68
|
-
function UniformPanel(_a) {
|
|
69
|
-
var colorClass = _a.colorClass, bgClass = _a.bgClass, borderClass = _a.borderClass, bulletBg = _a.bulletBg, uniformData = _a.uniformData;
|
|
70
|
-
var _b = (0, react_1.useState)("Summer"), season = _b[0], setSeason = _b[1];
|
|
71
|
-
var current = uniformData.find(function (u) { return u.season === season; });
|
|
72
|
-
return (react_1.default.createElement("div", { className: "space-y-4" },
|
|
73
|
-
react_1.default.createElement("div", { className: "flex w-fit gap-2 rounded-xl border border-gray-100 bg-white p-1" }, ["Summer", "Winter"].map(function (s) { return (react_1.default.createElement("button", { key: s, onClick: function () { return setSeason(s); }, className: "flex items-center gap-2 rounded-lg px-4 py-2 text-sm font-medium transition-all ".concat(season === s
|
|
74
|
-
? "".concat(bgClass, " ").concat(colorClass, " shadow-sm")
|
|
75
|
-
: "text-gray-500 hover:text-gray-700") },
|
|
76
|
-
s === "Summer" ? (react_1.default.createElement(lucide_react_1.Sun, { className: "h-4 w-4" })) : (react_1.default.createElement(lucide_react_1.Snowflake, { className: "h-4 w-4" })),
|
|
77
|
-
s)); })),
|
|
78
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2" }, current.variants.map(function (variant, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: "".concat(variant.gender, "-").concat(variant.classes), initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.2, delay: i * 0.06 }, className: "rounded-xl border ".concat(borderClass, " bg-white p-4") },
|
|
79
|
-
react_1.default.createElement("div", { className: "mb-3 flex items-center gap-2" },
|
|
80
|
-
react_1.default.createElement("span", { className: "rounded-md px-2 py-0.5 text-xs font-bold ".concat(bgClass, " ").concat(colorClass) }, variant.gender),
|
|
81
|
-
react_1.default.createElement("span", { className: "text-xs text-gray-500" }, variant.classes)),
|
|
82
|
-
react_1.default.createElement("ul", { className: "space-y-1.5" }, variant.items.map(function (item) { return (react_1.default.createElement("li", { key: item.id, className: "flex items-start gap-2" },
|
|
83
|
-
react_1.default.createElement("span", { className: "mt-2 h-1.5 w-1.5 shrink-0 rounded-full ".concat(bulletBg) }),
|
|
84
|
-
react_1.default.createElement("span", { className: "text-sm leading-relaxed text-gray-600" }, item.text))); })))); })),
|
|
85
|
-
react_1.default.createElement("p", { className: "rounded-lg border border-amber-200 bg-amber-50 px-4 py-2.5 text-xs text-amber-700" }, "Uniforms for both campuses are available at each campus canteen. Playgroup children may come in private clothes.")));
|
|
86
|
-
}
|
|
87
|
-
var PoliciesSection = function (_a) {
|
|
88
|
-
var badge = _a.badge, categories = _a.categories, highlights = _a.highlights, lead = _a.lead, paragraph = _a.paragraph, title = _a.title, uniforms = _a.uniforms;
|
|
89
|
-
var _b = (0, react_1.useState)("overview"), activeTab = _b[0], setActiveTab = _b[1];
|
|
90
|
-
var active = categories.find(function (c) { return c.id === activeTab; });
|
|
91
|
-
var ActiveIcon = categoryIcons[active.icon];
|
|
92
|
-
return (react_1.default.createElement("section", { id: "policies", className: "overflow-hidden bg-gray-50 py-24" },
|
|
93
|
-
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
94
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-12 text-center", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6 }, viewport: { once: true } },
|
|
95
|
-
react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
|
|
96
|
-
react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
|
|
97
|
-
title,
|
|
98
|
-
" & ",
|
|
99
|
-
react_1.default.createElement("span", { className: "text-blue-700" }, lead)),
|
|
100
|
-
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, paragraph)),
|
|
101
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-12 grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6", initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6, delay: 0.15 }, viewport: { once: true } }, highlights.map(function (h) { return (react_1.default.createElement("div", { key: h.label, className: "rounded-2xl border border-blue-100 bg-white px-3 py-4 text-center shadow-sm" },
|
|
102
|
-
react_1.default.createElement("div", { className: "text-2xl font-bold text-blue-700" }, h.value),
|
|
103
|
-
react_1.default.createElement("div", { className: "mt-0.5 text-xs font-semibold text-gray-800" }, h.label),
|
|
104
|
-
react_1.default.createElement("div", { className: "mt-0.5 text-xs text-gray-400" }, h.note))); })),
|
|
105
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-6 flex flex-wrap gap-2", initial: { opacity: 0, y: 16 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } }, categories.map(function (cat) {
|
|
106
|
-
var Icon = categoryIcons[cat.icon];
|
|
107
|
-
var isActive = cat.id === activeTab;
|
|
108
|
-
return (react_1.default.createElement("button", { key: cat.id, onClick: function () { return setActiveTab(cat.id); }, className: "flex items-center gap-2 rounded-full border px-4 py-2 text-sm font-medium transition-all ".concat(isActive
|
|
109
|
-
? "".concat(cat.bgClass, " ").concat(cat.colorClass, " ").concat(cat.borderClass, " shadow-sm")
|
|
110
|
-
: "border-gray-200 bg-white text-gray-500 hover:border-gray-300 hover:text-gray-700") },
|
|
111
|
-
react_1.default.createElement(Icon, { className: "h-4 w-4" }),
|
|
112
|
-
cat.label));
|
|
113
|
-
})),
|
|
114
|
-
react_1.default.createElement(framer_motion_1.AnimatePresence, { mode: "wait" },
|
|
115
|
-
react_1.default.createElement(framer_motion_1.motion.div, { key: activeTab, initial: { opacity: 0, y: 16 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.25 } },
|
|
116
|
-
react_1.default.createElement("div", { className: "mb-6 flex items-center gap-4 rounded-2xl border ".concat(active.borderClass, " ").concat(active.bgClass, " p-5") },
|
|
117
|
-
react_1.default.createElement("div", { className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border ".concat(active.borderClass, " bg-white") },
|
|
118
|
-
react_1.default.createElement(ActiveIcon, { className: "h-6 w-6 ".concat(active.colorClass) })),
|
|
119
|
-
react_1.default.createElement("div", null,
|
|
120
|
-
react_1.default.createElement("h3", { className: "text-lg font-bold ".concat(active.colorClass) }, active.label),
|
|
121
|
-
react_1.default.createElement("p", { className: "text-sm text-gray-500" }, active.description)),
|
|
122
|
-
react_1.default.createElement(badge_1.Badge, { className: "ml-auto ".concat(active.badgeClass, " hover:").concat(active.badgeClass) }, activeTab === "uniform"
|
|
123
|
-
? "2 seasons"
|
|
124
|
-
: "".concat(active.sections.length, " section").concat(active.sections.length !== 1 ? "s" : ""))),
|
|
125
|
-
activeTab === "uniform" ? (react_1.default.createElement(UniformPanel, { colorClass: active.colorClass, bgClass: active.bgClass, borderClass: active.borderClass, bulletBg: active.bulletBg, uniformData: uniforms })) : (react_1.default.createElement("div", { className: "grid grid-cols-1 gap-3 lg:grid-cols-2" }, active.sections.map(function (section) { return (react_1.default.createElement(AccordionItem, { key: section.id, section: section, colorClass: active.colorClass, bgClass: active.bgClass, borderClass: active.borderClass, bulletBg: active.bulletBg })); }))))))));
|
|
126
|
-
};
|
|
127
|
-
exports.PoliciesSection = PoliciesSection;
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use strict";
|
|
3
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
-
}
|
|
9
|
-
Object.defineProperty(o, k2, desc);
|
|
10
|
-
}) : (function(o, m, k, k2) {
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
-
};
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.ProgramsSection = void 0;
|
|
41
|
-
var react_1 = __importStar(require("react"));
|
|
42
|
-
var framer_motion_1 = require("framer-motion");
|
|
43
|
-
var badge_1 = require("../../../components/ui/badge");
|
|
44
|
-
var card_1 = require("../../../components/ui/card");
|
|
45
|
-
var button_1 = require("../../../components/ui/button");
|
|
46
|
-
var link_1 = __importDefault(require("next/link"));
|
|
47
|
-
var lucide_react_1 = require("lucide-react");
|
|
48
|
-
var ProgramsSection = function (_a) {
|
|
49
|
-
var badge = _a.badge, lead = _a.lead, programs = _a.programs, title = _a.title;
|
|
50
|
-
var _b = (0, react_1.useState)(0), activeIdx = _b[0], setActiveIdx = _b[1];
|
|
51
|
-
var active = programs[activeIdx];
|
|
52
|
-
var iconMap = {
|
|
53
|
-
baby: lucide_react_1.Baby,
|
|
54
|
-
"book-open": lucide_react_1.BookOpen,
|
|
55
|
-
"graduation-cap": lucide_react_1.GraduationCap,
|
|
56
|
-
user: lucide_react_1.User,
|
|
57
|
-
};
|
|
58
|
-
return (react_1.default.createElement("section", { id: "programs", className: "bg-gray-50 py-24" },
|
|
59
|
-
react_1.default.createElement("div", { className: "container mx-auto px-4" },
|
|
60
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-14 text-center", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6 }, viewport: { once: true } },
|
|
61
|
-
react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
|
|
62
|
-
react_1.default.createElement("h2", { className: "mb-4 text-4xl font-bold text-gray-900 md:text-5xl" }, title),
|
|
63
|
-
react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg text-gray-600" }, lead)),
|
|
64
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mb-10 flex flex-wrap justify-center gap-3", initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } }, programs.map(function (p, i) { return (react_1.default.createElement("button", { key: p.title, onClick: function () { return setActiveIdx(i); }, className: "rounded-full px-5 py-2.5 text-sm font-medium transition-all ".concat(activeIdx === i
|
|
65
|
-
? "".concat(p.color, " text-white shadow-md")
|
|
66
|
-
: "bg-white text-gray-600 shadow-sm hover:bg-gray-100") },
|
|
67
|
-
p.title,
|
|
68
|
-
react_1.default.createElement("span", { className: "ml-2 text-xs opacity-75" }, p.ages))); })),
|
|
69
|
-
react_1.default.createElement(framer_motion_1.AnimatePresence, { mode: "wait" },
|
|
70
|
-
react_1.default.createElement(framer_motion_1.motion.div, { key: activeIdx, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -20 }, transition: { duration: 0.4 } },
|
|
71
|
-
react_1.default.createElement(card_1.Card, { className: "overflow-hidden border-0 shadow-xl" },
|
|
72
|
-
react_1.default.createElement("div", { className: "h-2 w-full ".concat(active.color) }),
|
|
73
|
-
react_1.default.createElement(card_1.CardContent, { className: "p-0" },
|
|
74
|
-
react_1.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2" },
|
|
75
|
-
react_1.default.createElement("div", { className: "p-8 md:p-12 ".concat(active.lightColor) },
|
|
76
|
-
react_1.default.createElement("div", { className: "mb-4 inline-flex items-center gap-2 rounded-full ".concat(active.color, " px-4 py-1.5 text-sm font-semibold text-white") },
|
|
77
|
-
(function () {
|
|
78
|
-
var _a;
|
|
79
|
-
var Icon = (_a = iconMap[active.icon]) !== null && _a !== void 0 ? _a : lucide_react_1.BookOpen;
|
|
80
|
-
return react_1.default.createElement(Icon, { className: "h-4 w-4" });
|
|
81
|
-
})(),
|
|
82
|
-
active.ages),
|
|
83
|
-
react_1.default.createElement("h3", { className: "mb-4 text-2xl font-bold text-gray-900 md:text-3xl" }, active.title),
|
|
84
|
-
react_1.default.createElement("p", { className: "mb-6 leading-relaxed text-gray-700" }, active.description),
|
|
85
|
-
react_1.default.createElement(button_1.Button, { asChild: true, className: "".concat(active.color, " border-0 text-white hover:opacity-90") },
|
|
86
|
-
react_1.default.createElement(link_1.default, { href: "#admissions" },
|
|
87
|
-
"Enroll Now ",
|
|
88
|
-
react_1.default.createElement(lucide_react_1.ArrowRight, { className: "ml-2 h-4 w-4" })))),
|
|
89
|
-
react_1.default.createElement("div", { className: "p-8 md:p-12 bg-white" },
|
|
90
|
-
react_1.default.createElement("h4", { className: "mb-6 text-lg font-semibold text-gray-900" }, "What Your Child Gains"),
|
|
91
|
-
react_1.default.createElement("ul", { className: "space-y-4" }, active.highlights.map(function (hl, i) { return (react_1.default.createElement(framer_motion_1.motion.li, { key: hl, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, transition: { delay: i * 0.08 }, className: "flex items-start gap-3" },
|
|
92
|
-
react_1.default.createElement("div", { className: "mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full ".concat(active.color) },
|
|
93
|
-
react_1.default.createElement(lucide_react_1.Check, { className: "h-3 w-3 text-white" })),
|
|
94
|
-
react_1.default.createElement("span", { className: "text-gray-700" }, hl))); })))))))),
|
|
95
|
-
react_1.default.createElement(framer_motion_1.motion.div, { className: "mt-12 grid grid-cols-2 gap-4 md:grid-cols-4", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.6, delay: 0.3 }, viewport: { once: true } }, programs.map(function (program, index) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: program.title, whileHover: { y: -6, scale: 1.02 }, transition: { type: "spring", stiffness: 300 }, onClick: function () { return setActiveIdx(index); }, className: "cursor-pointer" },
|
|
96
|
-
react_1.default.createElement(card_1.Card, { className: "border-2 transition-all ".concat(activeIdx === index ? "border-current ".concat(program.textColor, " shadow-md") : "border-transparent") },
|
|
97
|
-
react_1.default.createElement(card_1.CardContent, { className: "flex flex-col items-center gap-3 rounded-lg p-6 text-center ".concat(program.lightColor) },
|
|
98
|
-
react_1.default.createElement("div", { className: "flex h-14 w-14 items-center justify-center rounded-2xl ".concat(program.color) }, (function () {
|
|
99
|
-
var _a;
|
|
100
|
-
var Icon = (_a = iconMap[program.icon]) !== null && _a !== void 0 ? _a : lucide_react_1.BookOpen;
|
|
101
|
-
return react_1.default.createElement(Icon, { className: "h-7 w-7 text-white" });
|
|
102
|
-
})()),
|
|
103
|
-
react_1.default.createElement("div", null,
|
|
104
|
-
react_1.default.createElement("div", { className: "text-sm font-semibold text-gray-900" }, program.title),
|
|
105
|
-
react_1.default.createElement("div", { className: "text-xs font-medium ".concat(program.textColor) }, program.ages)))))); })))));
|
|
106
|
-
};
|
|
107
|
-
exports.ProgramsSection = ProgramsSection;
|