@appcorp/shadcn 1.1.52 → 1.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/components/ui/resizable.d.ts +1 -1
  2. package/package.json +1 -1
  3. package/templates/data/school-v1.d.ts +254 -83
  4. package/templates/data/school-v1.js +684 -470
  5. package/templates/school-v1/footer.d.ts +3 -2
  6. package/templates/school-v1/footer.js +34 -38
  7. package/templates/school-v1/index.d.ts +17 -1
  8. package/templates/school-v1/index.js +36 -15
  9. package/templates/school-v1/navigation.d.ts +3 -7
  10. package/templates/school-v1/navigation.js +16 -10
  11. package/templates/school-v1/sections/about.d.ts +2 -7
  12. package/templates/school-v1/sections/about.js +17 -37
  13. package/templates/school-v1/sections/admissions.d.ts +3 -7
  14. package/templates/school-v1/sections/admissions.js +31 -20
  15. package/templates/school-v1/sections/contact.d.ts +3 -2
  16. package/templates/school-v1/sections/contact.js +36 -69
  17. package/templates/school-v1/sections/faqs.d.ts +3 -5
  18. package/templates/school-v1/sections/faqs.js +29 -12
  19. package/templates/school-v1/sections/hero.d.ts +3 -12
  20. package/templates/school-v1/sections/hero.js +53 -19
  21. package/templates/school-v1/sections/management.d.ts +3 -5
  22. package/templates/school-v1/sections/management.js +11 -10
  23. package/templates/school-v1/sections/policies.d.ts +7 -6
  24. package/templates/school-v1/sections/policies.js +4 -4
  25. package/templates/school-v1/sections/programs.d.ts +3 -5
  26. package/templates/school-v1/sections/programs.js +24 -10
  27. package/templates/school-v1/sections/testimonials.d.ts +3 -5
  28. package/templates/school-v1/sections/testimonials.js +13 -12
  29. package/templates/school-v1/sections/why-choose-us.d.ts +3 -6
  30. package/templates/school-v1/sections/why-choose-us.js +34 -17
  31. package/templates/school-v1/sections/news-events.d.ts +0 -2
  32. package/templates/school-v1/sections/news-events.js +0 -60
@@ -1,2 +1,3 @@
1
- import React from "react";
2
- export declare function Footer(): React.JSX.Element;
1
+ import { FooterData } from "../data/school-v1";
2
+ import { FC } from "react";
3
+ export declare const Footer: FC<FooterData>;
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Footer = Footer;
7
- var react_1 = __importDefault(require("react"));
6
+ exports.Footer = void 0;
8
7
  var link_1 = __importDefault(require("next/link"));
9
8
  var lucide_react_1 = require("lucide-react");
10
9
  var separator_1 = require("../../components/ui/separator");
11
- function Footer() {
10
+ var react_1 = __importDefault(require("react"));
11
+ var Footer = function (_a) {
12
+ var brand = _a.brand, socialLinks = _a.socialLinks, quickLinks = _a.quickLinks, programs = _a.programs, contact = _a.contact, partners = _a.partners;
12
13
  return (react_1.default.createElement("footer", { className: "bg-blue-950 text-blue-100" },
13
14
  react_1.default.createElement("div", { className: "container mx-auto px-4 py-12" },
14
15
  react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4" },
@@ -17,58 +18,53 @@ function Footer() {
17
18
  react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-600" },
18
19
  react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
19
20
  react_1.default.createElement("div", null,
20
- react_1.default.createElement("div", { className: "font-bold text-white" }, "LGGS"),
21
- react_1.default.createElement("div", { className: "text-xs text-blue-300" }, "Lahore Garrison Grammar School"))),
22
- react_1.default.createElement("p", { className: "text-sm text-blue-300" }, "Nurturing Young Minds, Building Bright Futures. A leading English-medium school committed to academic excellence and holistic development since 1990."),
23
- react_1.default.createElement("div", { className: "mt-4 flex gap-3" },
24
- react_1.default.createElement(link_1.default, { href: "#", "aria-label": "Facebook", className: "text-blue-300 transition-colors hover:text-white" },
25
- react_1.default.createElement(lucide_react_1.Facebook, { className: "h-5 w-5" })),
26
- react_1.default.createElement(link_1.default, { href: "#", "aria-label": "Twitter", className: "text-blue-300 transition-colors hover:text-white" },
27
- react_1.default.createElement(lucide_react_1.Twitter, { className: "h-5 w-5" })),
28
- react_1.default.createElement(link_1.default, { href: "#", "aria-label": "Instagram", className: "text-blue-300 transition-colors hover:text-white" },
29
- react_1.default.createElement(lucide_react_1.Instagram, { className: "h-5 w-5" })),
30
- react_1.default.createElement(link_1.default, { href: "#", "aria-label": "YouTube", className: "text-blue-300 transition-colors hover:text-white" },
31
- react_1.default.createElement(lucide_react_1.Youtube, { className: "h-5 w-5" })))),
21
+ react_1.default.createElement("div", { className: "font-bold text-white" }, brand.shortName),
22
+ react_1.default.createElement("div", { className: "text-xs text-blue-300" }, brand.fullName))),
23
+ react_1.default.createElement("p", { className: "text-sm text-blue-300" }, brand.description),
24
+ react_1.default.createElement("div", { className: "mt-4 flex gap-3" }, socialLinks
25
+ .filter(function (s) { return s.enable; })
26
+ .sort(function (a, b) { return a.order - b.order; })
27
+ .map(function (s) {
28
+ var _a;
29
+ 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
+ s.name === "facebook" && (react_1.default.createElement(lucide_react_1.Facebook, { className: "h-5 w-5" })),
32
+ s.name === "twitter" && react_1.default.createElement(lucide_react_1.Twitter, { className: "h-5 w-5" }),
33
+ s.name === "instagram" && (react_1.default.createElement(lucide_react_1.Instagram, { className: "h-5 w-5" })),
34
+ s.name === "youtube" && react_1.default.createElement(lucide_react_1.Youtube, { className: "h-5 w-5" })));
35
+ }))),
32
36
  react_1.default.createElement("div", null,
33
37
  react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Quick Links"),
34
- react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, [
35
- { href: "#about", label: "About LGGS" },
36
- { href: "#programs", label: "Our Programs" },
37
- { href: "#admissions", label: "Admissions" },
38
- { href: "#news", label: "News & Events" },
39
- { href: "/blog", label: "School Blog" },
40
- { href: "#contact", label: "Contact Us" },
41
- ].map(function (link) { return (react_1.default.createElement("li", { key: link.href },
38
+ react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, quickLinks
39
+ .filter(function (l) { return l.enable; })
40
+ .sort(function (a, b) { return a.order - b.order; })
41
+ .map(function (link) { return (react_1.default.createElement("li", { key: "".concat(link.href, "-").concat(link.order) },
42
42
  react_1.default.createElement(link_1.default, { href: link.href, className: "text-blue-300 transition-colors hover:text-white" }, link.label))); }))),
43
43
  react_1.default.createElement("div", null,
44
44
  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" }, [
46
- "Playgroup & Nursery (Ages 2–4)",
47
- "Primary School (Ages 5–10)",
48
- "Middle School (Ages 11–14)",
49
- "Secondary / Matriculation (Ages 15–16)",
50
- "Boys Campus",
51
- "Girls Campus",
52
- ].map(function (program) { return (react_1.default.createElement("li", { key: program, className: "text-blue-300" }, program)); }))),
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)); }))),
53
46
  react_1.default.createElement("div", null,
54
47
  react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Contact"),
55
48
  react_1.default.createElement("ul", { className: "space-y-3 text-sm" },
56
49
  react_1.default.createElement("li", { className: "flex items-start gap-2 text-blue-300" },
57
50
  react_1.default.createElement(lucide_react_1.MapPin, { className: "mt-0.5 h-4 w-4 shrink-0" }),
58
- react_1.default.createElement("span", null, "Awan Town, Multan Road, Lahore, Pakistan")),
51
+ react_1.default.createElement("span", null, contact.address)),
59
52
  react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
60
53
  react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4 shrink-0" }),
61
- react_1.default.createElement(link_1.default, { href: "tel:+924235961207", className: "transition-colors hover:text-white" }, "042-35961207")),
54
+ react_1.default.createElement(link_1.default, { href: contact.phone.href, className: "transition-colors hover:text-white" }, contact.phone.label)),
62
55
  react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
63
56
  react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4 shrink-0" }),
64
- react_1.default.createElement(link_1.default, { href: "mailto:admin@lggs.edu.pk", className: "transition-colors hover:text-white" }, "admin@lggs.edu.pk"))))),
57
+ react_1.default.createElement(link_1.default, { href: contact.email.href, className: "transition-colors hover:text-white" }, contact.email.label))))),
65
58
  react_1.default.createElement(separator_1.Separator, { className: "my-8 bg-blue-800" }),
66
59
  react_1.default.createElement("div", { className: "flex flex-col items-center justify-between gap-4 text-sm text-blue-400 md:flex-row" },
67
60
  react_1.default.createElement("p", null,
68
61
  "\u00A9 ",
69
62
  new Date().getFullYear(),
70
- " Lahore Garrison Grammar School. All rights reserved."),
63
+ " ",
64
+ brand.fullName,
65
+ ". All rights reserved."),
71
66
  react_1.default.createElement("div", { className: "flex gap-1" },
72
- "our Tech Partners",
73
- react_1.default.createElement(link_1.default, { target: "_blank", href: "https://appcorp.org", className: "transition-colors hover:text-white" }, "AppCorp"))))));
74
- }
67
+ "our Tech Partners", partners === null || partners === void 0 ? void 0 :
68
+ partners.map(function (p) { return (react_1.default.createElement(link_1.default, { key: p.href, target: "_blank", href: p.href, className: "transition-colors hover:text-white" }, p.label)); }))))));
69
+ };
70
+ exports.Footer = Footer;
@@ -1,2 +1,18 @@
1
1
  import React from "react";
2
- export declare const SchoolV1Template: () => React.JSX.Element;
2
+ export type SchoolV1TemplateProps = {
3
+ overrides?: {
4
+ heroData?: any;
5
+ aboutData?: any;
6
+ programsData?: any;
7
+ whysUsData?: any;
8
+ admissionsData?: any;
9
+ testimonialData?: any;
10
+ managementData?: any;
11
+ faqsData?: any;
12
+ policyCategories?: any;
13
+ policyHighlights?: any;
14
+ uniformData?: any;
15
+ contactData?: any;
16
+ };
17
+ };
18
+ export declare const SchoolV1Template: React.FC<SchoolV1TemplateProps>;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -9,28 +20,38 @@ var about_1 = require("./sections/about");
9
20
  var admissions_1 = require("./sections/admissions");
10
21
  var contact_1 = require("./sections/contact");
11
22
  var faqs_1 = require("./sections/faqs");
12
- var footer_1 = require("./footer");
13
23
  var hero_1 = require("./sections/hero");
14
24
  var management_1 = require("./sections/management");
15
- var navigation_1 = require("./navigation");
16
25
  var policies_1 = require("./sections/policies");
17
26
  var programs_1 = require("./sections/programs");
18
27
  var testimonials_1 = require("./sections/testimonials");
19
28
  var why_choose_us_1 = require("./sections/why-choose-us");
20
29
  var school_v1_1 = require("../../templates/data/school-v1");
21
- var SchoolV1Template = function () {
30
+ var SchoolV1Template = function (_a) {
31
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
32
+ var overrides = _a.overrides;
33
+ var h = (_b = overrides === null || overrides === void 0 ? void 0 : overrides.heroData) !== null && _b !== void 0 ? _b : school_v1_1.heroData;
34
+ var a = (_c = overrides === null || overrides === void 0 ? void 0 : overrides.aboutData) !== null && _c !== void 0 ? _c : school_v1_1.aboutData;
35
+ var p = (_d = overrides === null || overrides === void 0 ? void 0 : overrides.programsData) !== null && _d !== void 0 ? _d : school_v1_1.programsData;
36
+ var w = (_e = overrides === null || overrides === void 0 ? void 0 : overrides.whysUsData) !== null && _e !== void 0 ? _e : school_v1_1.whysUsData;
37
+ var ad = (_f = overrides === null || overrides === void 0 ? void 0 : overrides.admissionsData) !== null && _f !== void 0 ? _f : school_v1_1.admissionsData;
38
+ var t = (_g = overrides === null || overrides === void 0 ? void 0 : overrides.testimonialData) !== null && _g !== void 0 ? _g : school_v1_1.testimonialData;
39
+ var m = (_h = overrides === null || overrides === void 0 ? void 0 : overrides.managementData) !== null && _h !== void 0 ? _h : school_v1_1.managementData;
40
+ var f = (_j = overrides === null || overrides === void 0 ? void 0 : overrides.faqsData) !== null && _j !== void 0 ? _j : school_v1_1.faqsData;
41
+ var pc = (_k = overrides === null || overrides === void 0 ? void 0 : overrides.policyCategories) !== null && _k !== void 0 ? _k : school_v1_1.policyCategories;
42
+ var ph = (_l = overrides === null || overrides === void 0 ? void 0 : overrides.policyHighlights) !== null && _l !== void 0 ? _l : school_v1_1.policyHighlights;
43
+ var u = (_m = overrides === null || overrides === void 0 ? void 0 : overrides.uniformData) !== null && _m !== void 0 ? _m : school_v1_1.uniformData;
44
+ var c = (_o = overrides === null || overrides === void 0 ? void 0 : overrides.contactData) !== null && _o !== void 0 ? _o : school_v1_1.contactData;
22
45
  return (react_1.default.createElement("div", null,
23
- react_1.default.createElement(navigation_1.Navigation, { navLinks: school_v1_1.navLinks }),
24
- react_1.default.createElement(hero_1.HeroSection, { heroSlides: school_v1_1.heroSlides, heroStats: school_v1_1.heroStats }),
25
- react_1.default.createElement(about_1.AboutSection, { aboutHighlights: school_v1_1.aboutHighlights, milestones: school_v1_1.milestones }),
26
- react_1.default.createElement(programs_1.ProgramsSection, { programs: school_v1_1.programs }),
27
- react_1.default.createElement(why_choose_us_1.WhyChooseUsSection, { whyUsFeatures: school_v1_1.whyUsFeatures, highlightBadges: school_v1_1.highlightBadges }),
28
- react_1.default.createElement(admissions_1.AdmissionsSection, { admissionSteps: school_v1_1.admissionSteps, keyDates: school_v1_1.keyDates, documentsRequired: school_v1_1.documentsRequired }),
29
- react_1.default.createElement(testimonials_1.TestimonialsSection, { testimonials: school_v1_1.testimonials }),
30
- react_1.default.createElement(management_1.ManagementSection, { managementTeam: school_v1_1.managementTeam }),
31
- react_1.default.createElement(faqs_1.FAQsSection, { faqs: school_v1_1.faqs }),
32
- react_1.default.createElement(policies_1.PoliciesSection, { policyCategories: school_v1_1.policyCategories, policyHighlights: school_v1_1.policyHighlights, uniformData: school_v1_1.uniformData }),
33
- react_1.default.createElement(contact_1.ContactSection, null),
34
- react_1.default.createElement(footer_1.Footer, null)));
46
+ react_1.default.createElement(hero_1.HeroSection, __assign({}, h)),
47
+ react_1.default.createElement(about_1.AboutSection, __assign({}, a)),
48
+ react_1.default.createElement(programs_1.ProgramsSection, __assign({}, p)),
49
+ react_1.default.createElement(why_choose_us_1.WhyChooseUsSection, __assign({}, w)),
50
+ react_1.default.createElement(admissions_1.AdmissionsSection, __assign({}, ad)),
51
+ react_1.default.createElement(testimonials_1.TestimonialsSection, __assign({}, t)),
52
+ react_1.default.createElement(management_1.ManagementSection, __assign({}, m)),
53
+ react_1.default.createElement(faqs_1.FAQsSection, __assign({}, f)),
54
+ react_1.default.createElement(policies_1.PoliciesSection, { policyCategories: pc, policyHighlights: ph, uniformData: u }),
55
+ react_1.default.createElement(contact_1.ContactSection, __assign({}, c))));
35
56
  };
36
57
  exports.SchoolV1Template = SchoolV1Template;
@@ -1,7 +1,3 @@
1
- import { FC } from "react";
2
- import { NavLink } from "../data/school-v1";
3
- interface Props {
4
- navLinks: NavLink[];
5
- }
6
- export declare const Navigation: FC<Props>;
7
- export {};
1
+ import React from "react";
2
+ import { NavigationData } from "../data/school-v1";
3
+ export declare const Navigation: React.FC<NavigationData>;
@@ -44,9 +44,9 @@ var button_1 = require("../../components/ui/button");
44
44
  var sheet_1 = require("../../components/ui/sheet");
45
45
  var separator_1 = require("../../components/ui/separator");
46
46
  var lucide_react_1 = require("lucide-react");
47
- var utils_1 = require("../../lib/utils");
47
+ var utils_1 = require("@/lib/utils");
48
48
  var Navigation = function (_a) {
49
- var navLinks = _a.navLinks;
49
+ var brand = _a.brand, navLinks = _a.navLinks, applyNow = _a.applyNow;
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,12 +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") }, "LGGS"),
64
- react_1.default.createElement("div", { className: (0, utils_1.cn)("text-xs leading-none", scrolled ? "text-blue-600" : "text-blue-100") }, "Lahore Garrison Grammar School"))),
63
+ react_1.default.createElement("div", { className: (0, utils_1.cn)("text-sm leading-none font-bold", scrolled ? "text-blue-900" : "text-white") }, brand.shortName),
64
+ react_1.default.createElement("div", { className: (0, utils_1.cn)("text-xs leading-none", scrolled ? "text-blue-600" : "text-blue-100") }, brand.fullName))),
65
65
  react_1.default.createElement("div", { className: "hidden items-center gap-6 lg:flex" },
66
- navLinks.map(function (link) { return (react_1.default.createElement(link_1.default, { key: link.href, 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)); }),
66
+ navLinks
67
+ .filter(function (l) { return l.enable; })
68
+ .sort(function (a, b) { return a.order - b.order; })
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)); }),
67
70
  react_1.default.createElement(button_1.Button, { asChild: true, size: "sm", className: "bg-blue-700 hover:bg-blue-800" },
68
- react_1.default.createElement(link_1.default, { href: "#admissions" }, "Apply Now"))),
71
+ react_1.default.createElement(link_1.default, { href: applyNow.href }, applyNow.label))),
69
72
  react_1.default.createElement(sheet_1.Sheet, { open: open, onOpenChange: setOpen },
70
73
  react_1.default.createElement(sheet_1.SheetTrigger, { asChild: true, className: "lg:hidden" },
71
74
  react_1.default.createElement(button_1.Button, { variant: "ghost", size: "icon" },
@@ -75,12 +78,15 @@ var Navigation = function (_a) {
75
78
  react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-700" },
76
79
  react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
77
80
  react_1.default.createElement("div", null,
78
- react_1.default.createElement("div", { className: "text-sm font-bold text-blue-900" }, "LGGS"),
79
- react_1.default.createElement("div", { className: "text-xs text-blue-600" }, "Lahore Garrison Grammar School"))),
81
+ react_1.default.createElement("div", { className: "text-sm font-bold text-blue-900" }, brand.shortName),
82
+ react_1.default.createElement("div", { className: "text-xs text-blue-600" }, brand.fullName))),
80
83
  react_1.default.createElement(separator_1.Separator, null),
81
84
  react_1.default.createElement("div", { className: "mt-4 flex flex-col gap-2" },
82
- navLinks.map(function (link) { return (react_1.default.createElement(link_1.default, { key: link.href, 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)); }),
85
+ navLinks
86
+ .filter(function (l) { return l.enable; })
87
+ .sort(function (a, b) { return a.order - b.order; })
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)); }),
83
89
  react_1.default.createElement(button_1.Button, { asChild: true, className: "mt-4 bg-blue-700 hover:bg-blue-800" },
84
- react_1.default.createElement(link_1.default, { href: "#admissions", onClick: function () { return setOpen(false); } }, "Apply Now"))))))));
90
+ react_1.default.createElement(link_1.default, { href: applyNow.href, onClick: function () { return setOpen(false); } }, applyNow.label))))))));
85
91
  };
86
92
  exports.Navigation = Navigation;
@@ -1,8 +1,3 @@
1
+ import { AboutData } from "../../data/school-v1";
1
2
  import { FC } from "react";
2
- import { AboutHighlight, Milestone } from "@/templates/data/school-v1";
3
- interface Props {
4
- milestones: Milestone[];
5
- aboutHighlights: AboutHighlight[];
6
- }
7
- export declare const AboutSection: FC<Props>;
8
- export {};
3
+ export declare const AboutSection: FC<AboutData>;
@@ -5,61 +5,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.AboutSection = void 0;
8
- var react_1 = __importDefault(require("react"));
9
8
  var framer_motion_1 = require("framer-motion");
10
9
  var badge_1 = require("../../../components/ui/badge");
11
10
  var card_1 = require("../../../components/ui/card");
12
11
  var separator_1 = require("../../../components/ui/separator");
13
- var school_v1_1 = require("@/templates/data/school-v1");
12
+ var lucide_react_1 = require("lucide-react");
13
+ var react_1 = __importDefault(require("react"));
14
+ var iconMap = { Star: lucide_react_1.Star, Heart: lucide_react_1.Heart, Target: lucide_react_1.Target, Eye: lucide_react_1.Eye };
14
15
  var AboutSection = function (_a) {
15
- var milestones = _a.milestones;
16
+ var badge = _a.badge, heading = _a.heading, headingHighlight = _a.headingHighlight, lead = _a.lead, milestones = _a.milestones, paragraphs = _a.paragraphs, stats = _a.stats, values = _a.values;
16
17
  return (react_1.default.createElement("section", { id: "about", className: "overflow-hidden bg-white py-24" },
17
18
  react_1.default.createElement("div", { className: "container mx-auto px-4" },
18
19
  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 } },
19
- react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, "About LGGS"),
20
+ react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
20
21
  react_1.default.createElement("h2", { className: "mb-4 text-4xl font-bold text-gray-900 md:text-5xl" },
21
- "More Than a School \u2014 ",
22
- react_1.default.createElement("span", { className: "text-blue-700" }, "A Family")),
23
- react_1.default.createElement("p", { className: "mx-auto max-w-3xl text-lg text-gray-600" }, "Since 1990, Lahore Garrison Grammar School has been a cornerstone of quality education in Lahore. We are not simply a place where children learn subjects \u2014 we are a community where young people discover who they are and who they can become.")),
22
+ heading,
23
+ " ",
24
+ react_1.default.createElement("span", { className: "text-blue-700" }, headingHighlight)),
25
+ react_1.default.createElement("p", { className: "mx-auto max-w-3xl text-lg text-gray-600" }, lead)),
24
26
  react_1.default.createElement("div", { className: "mb-20 grid grid-cols-1 items-start gap-16 lg:grid-cols-2" },
25
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 } },
26
- react_1.default.createElement("div", { className: "mb-6 space-y-5" },
27
- react_1.default.createElement("p", { className: "leading-relaxed text-gray-600" }, "Lahore Garrison Grammar School was established in 1990 and is duly registered with the Directorate of Education Punjab, administered as a private institute affiliated with the Board of Intermediate & Secondary Education, Lahore. It emerged as one of the leading schools of quality education in the city."),
28
- react_1.default.createElement("p", { className: "leading-relaxed text-gray-600" }, "As a full-time English-medium morning school, LGGS is children's need-oriented \u2014 designed and operated with the sole aim of meeting all quality educational requirements in a comprehensive and compassionate way. With separate campuses for boys and girls, we create focused environments where every student can grow academically, socially, and personally."),
29
- react_1.default.createElement("p", { className: "leading-relaxed text-gray-600" }, "The school is widely recognised for its meritorious work in nurturing students at both social and intellectual levels. With the passage of time, LGGS has sustained consistent growth in size, and the quality of its results has been improving year after year \u2014 a testament to the dedication of our management, faculty, and students.")),
30
- react_1.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, [
31
- {
32
- value: "34+",
33
- label: "Years of Service",
34
- color: "bg-blue-600",
35
- },
36
- {
37
- value: "BISE",
38
- label: "Lahore Affiliated",
39
- color: "bg-green-600",
40
- },
41
- {
42
- value: "2",
43
- label: "Dedicated Campuses",
44
- color: "bg-purple-600",
45
- },
46
- {
47
- value: "2000+",
48
- label: "Students Annually",
49
- color: "bg-orange-500",
50
- },
51
- ].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 } },
28
+ react_1.default.createElement("div", { className: "mb-6 space-y-5" }, paragraphs.map(function (p, i) { return (react_1.default.createElement("p", { key: i, className: "leading-relaxed text-gray-600" }, p)); })),
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 } },
52
30
  react_1.default.createElement("div", { className: "mb-1 text-2xl font-extrabold text-gray-900" }, stat.value),
53
31
  react_1.default.createElement("div", { className: "text-xs font-medium text-gray-500" }, stat.label),
54
32
  react_1.default.createElement("div", { className: "mx-auto mt-2 h-1 w-10 rounded-full ".concat(stat.color) }))); }))),
55
- react_1.default.createElement(framer_motion_1.motion.div, { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", initial: { opacity: 0, x: 50 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.7, delay: 0.2 }, viewport: { once: true } }, school_v1_1.aboutHighlights.map(function (value, index) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: value.title, initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: index * 0.12 }, viewport: { once: true }, whileHover: { y: -6 } },
33
+ react_1.default.createElement(framer_motion_1.motion.div, { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", initial: { opacity: 0, x: 50 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.7, delay: 0.2 }, viewport: { once: true } }, values.map(function (value, index) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: value.title, initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: index * 0.12 }, viewport: { once: true }, whileHover: { y: -6 } },
56
34
  react_1.default.createElement(card_1.Card, { className: "h-full border ".concat(value.borderColor, " transition-shadow hover:shadow-lg") },
57
35
  react_1.default.createElement(card_1.CardContent, { className: "h-full p-6 ".concat(value.color) },
58
- react_1.default.createElement("div", { className: "mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-white shadow-sm" },
59
- react_1.default.createElement(value.icon, { className: "h-6 w-6 ".concat(value.iconColor) })),
36
+ react_1.default.createElement("div", { className: "mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-white shadow-sm" }, (function () {
37
+ var Icon = iconMap[value.icon];
38
+ return (react_1.default.createElement(Icon, { className: "h-6 w-6 ".concat(value.iconColor) }));
39
+ })()),
60
40
  react_1.default.createElement("h3", { className: "mb-2 font-semibold text-gray-900" }, value.title),
61
41
  react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-600" }, value.description))))); }))),
62
- react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, y: 40 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.7 }, viewport: { once: true }, className: "rounded-3xl bg-gradient-to-r from-blue-900 to-blue-700 p-8 md:p-12" },
42
+ react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, y: 40 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.7 }, viewport: { once: true }, className: "rounded-3xl bg-linear-to-r from-blue-900 to-blue-700 p-8 md:p-12" },
63
43
  react_1.default.createElement("h3", { className: "mb-8 text-center text-2xl font-bold text-white" }, "Our Journey Through Time"),
64
44
  react_1.default.createElement("div", { className: "grid grid-cols-2 gap-6 md:grid-cols-4" }, milestones.map(function (m, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: m.year, initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: i * 0.15 }, viewport: { once: true }, className: "text-center" },
65
45
  react_1.default.createElement("div", { className: "mb-2 text-3xl font-extrabold text-yellow-400" }, m.year),
@@ -1,7 +1,3 @@
1
- import React from "react";
2
- import type { AdmissionStep, KeyDate } from "../../../templates/data/school-v1";
3
- export declare function AdmissionsSection({ admissionSteps, keyDates, documentsRequired, }: {
4
- admissionSteps: AdmissionStep[];
5
- keyDates: KeyDate[];
6
- documentsRequired: string[];
7
- }): React.JSX.Element;
1
+ import { AdmissionsData } from "../../data/school-v1";
2
+ import { FC } from "react";
3
+ export declare const AdmissionsSection: FC<AdmissionsData>;
@@ -4,34 +4,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.AdmissionsSection = AdmissionsSection;
8
- var react_1 = __importDefault(require("react"));
7
+ exports.AdmissionsSection = void 0;
9
8
  var framer_motion_1 = require("framer-motion");
10
9
  var badge_1 = require("../../../components/ui/badge");
11
10
  var button_1 = require("../../../components/ui/button");
12
11
  var link_1 = __importDefault(require("next/link"));
13
12
  var lucide_react_1 = require("lucide-react");
13
+ var react_1 = __importDefault(require("react"));
14
+ var iconMap = {
15
+ FileText: lucide_react_1.FileText,
16
+ Calendar: lucide_react_1.Calendar,
17
+ ClipboardList: lucide_react_1.ClipboardList,
18
+ CheckCircle: lucide_react_1.CheckCircle,
19
+ };
14
20
  var statusStyles = {
15
21
  open: "bg-green-100 text-green-700",
16
22
  upcoming: "bg-blue-100 text-blue-700",
17
23
  closed: "bg-gray-100 text-gray-500",
18
24
  };
19
- function AdmissionsSection(_a) {
20
- var admissionSteps = _a.admissionSteps, keyDates = _a.keyDates, documentsRequired = _a.documentsRequired;
25
+ var AdmissionsSection = function (_a) {
26
+ var admissionSteps = _a.admissionSteps, badge = _a.badge, cta = _a.cta, documentsRequired = _a.documentsRequired, documentsTitle = _a.documentsTitle, heading = _a.heading, headingHighlight = _a.headingHighlight, keyDates = _a.keyDates, keyDatesTitle = _a.keyDatesTitle, lead = _a.lead;
21
27
  return (react_1.default.createElement("section", { id: "admissions", className: "overflow-hidden bg-white py-24" },
22
28
  react_1.default.createElement("div", { className: "container mx-auto px-4" },
23
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 } },
24
- react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, "Admissions"),
30
+ react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
25
31
  react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
26
- "Begin Your Child's",
32
+ heading,
27
33
  " ",
28
- react_1.default.createElement("span", { className: "text-blue-700" }, "Journey at LGGS")),
29
- react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, "Joining the LGGS family is a simple, warm, and guided process. We are here to help every family find their path to enrolment.")),
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)),
30
36
  react_1.default.createElement("div", { className: "relative mb-16 grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4" },
31
37
  react_1.default.createElement("div", { className: "absolute top-10 right-[12.5%] left-[12.5%] z-0 hidden h-0.5 bg-blue-100 lg:block" }),
32
38
  admissionSteps.map(function (step, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: step.step, className: "relative z-10 flex flex-col items-center text-center", initial: { opacity: 0, y: 40 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: i * 0.12 }, viewport: { once: true } },
33
- react_1.default.createElement("div", { className: "mb-5 flex h-20 w-20 items-center justify-center rounded-full ".concat(step.color, " shadow-lg ring-4 ring-white") },
34
- react_1.default.createElement(step.icon, { className: "h-8 w-8" })),
39
+ react_1.default.createElement("div", { className: "mb-5 flex h-20 w-20 items-center justify-center rounded-full ".concat(step.color, " shadow-lg ring-4 ring-white") }, (function () {
40
+ var Icon = iconMap[step.icon];
41
+ return react_1.default.createElement(Icon, { className: "h-8 w-8" });
42
+ })()),
35
43
  react_1.default.createElement("div", { className: "mb-2 text-xs font-bold tracking-wider text-gray-400 uppercase" },
36
44
  "Step ",
37
45
  step.step),
@@ -39,28 +47,31 @@ function AdmissionsSection(_a) {
39
47
  react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-500" }, step.description))); })),
40
48
  react_1.default.createElement("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-3" },
41
49
  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 }, viewport: { once: true } },
42
- react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, "Key Dates 2025\u20132026"),
50
+ react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, keyDatesTitle),
43
51
  react_1.default.createElement("div", { className: "space-y-3" }, keyDates.map(function (item) { return (react_1.default.createElement("div", { key: item.event, className: "flex items-center justify-between border-b border-gray-200 py-2 last:border-0" },
44
52
  react_1.default.createElement("span", { className: "text-sm text-gray-700" }, item.event),
45
53
  react_1.default.createElement(badge_1.Badge, { className: statusStyles[item.status] }, item.date))); }))),
46
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 } },
47
- react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, "Documents Required"),
55
+ react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, documentsTitle),
48
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" },
49
57
  react_1.default.createElement(lucide_react_1.CheckCircle, { className: "mt-0.5 h-4 w-4 shrink-0 text-green-500" }),
50
58
  doc)); }))),
51
- react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-col justify-between rounded-2xl bg-gradient-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 } },
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 } },
52
60
  react_1.default.createElement("div", null,
53
61
  react_1.default.createElement("h3", { className: "mb-3 text-xl font-bold" }, "Ready to Join LGGS?"),
54
- react_1.default.createElement("p", { className: "mb-6 text-sm leading-relaxed text-blue-200" }, "Our admissions team is here to answer every question and make your child's first steps at LGGS a welcoming and memorable experience.")),
62
+ react_1.default.createElement("p", { className: "mb-6 text-sm leading-relaxed text-blue-200" }, lead)),
55
63
  react_1.default.createElement("div", { className: "space-y-3" },
56
64
  react_1.default.createElement(button_1.Button, { className: "w-full bg-yellow-400 font-bold text-blue-900 hover:bg-yellow-300" },
57
65
  react_1.default.createElement(lucide_react_1.Download, { className: "mr-2 h-4 w-4" }),
58
- "Download Prospectus"),
66
+ cta.downloadLabel),
59
67
  react_1.default.createElement("div", { className: "space-y-2 border-t border-blue-700 pt-3" },
60
- react_1.default.createElement(link_1.default, { href: "tel:+924235961207", className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
68
+ react_1.default.createElement(link_1.default, { href: cta.phone.href, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
61
69
  react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4" }),
62
- " 042-35961207"),
63
- react_1.default.createElement(link_1.default, { href: "mailto:admin@lggs.edu.pk", className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
70
+ " ",
71
+ cta.phone.label),
72
+ react_1.default.createElement(link_1.default, { href: cta.email.href, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
64
73
  react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4" }),
65
- " admin@lggs.edu.pk"))))))));
66
- }
74
+ " ",
75
+ cta.email.label))))))));
76
+ };
77
+ exports.AdmissionsSection = AdmissionsSection;
@@ -1,2 +1,3 @@
1
- import React from "react";
2
- export declare function ContactSection(): React.JSX.Element;
1
+ import { ContactData } from "../../data/school-v1";
2
+ import { FC } from "react";
3
+ export declare const ContactSection: FC<ContactData>;