@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,6 +1,3 @@
1
- import React from "react";
2
- import type { WhyUsFeature } from "../../../templates/data/school-v1";
3
- export declare function WhyChooseUsSection({ whyUsFeatures, highlightBadges, }: {
4
- whyUsFeatures: WhyUsFeature[];
5
- highlightBadges: string[];
6
- }): React.JSX.Element;
1
+ import type { WhyUsData } from "../../data/school-v1";
2
+ import { FC } from "react";
3
+ export declare const WhyChooseUsSection: FC<WhyUsData>;
@@ -4,37 +4,54 @@ 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.WhyChooseUsSection = WhyChooseUsSection;
8
- var react_1 = __importDefault(require("react"));
7
+ exports.WhyChooseUsSection = void 0;
9
8
  var framer_motion_1 = require("framer-motion");
10
9
  var badge_1 = require("../../../components/ui/badge");
11
10
  var lucide_react_1 = require("lucide-react");
12
- function WhyChooseUsSection(_a) {
13
- var whyUsFeatures = _a.whyUsFeatures, highlightBadges = _a.highlightBadges;
14
- var _b = [whyUsFeatures.slice(0, 2), whyUsFeatures.slice(2)], firstTwo = _b[0], rest = _b[1];
11
+ var react_1 = __importDefault(require("react"));
12
+ var WhyChooseUsSection = function (_a) {
13
+ var badge = _a.badge, highlights = _a.highlights, lead = _a.lead, paragraph = _a.paragraph, title = _a.title, features = _a.features;
14
+ var _b = [features.slice(0, 2), features.slice(2)], firstTwo = _b[0], rest = _b[1];
15
+ var iconMap = {
16
+ award: lucide_react_1.Award,
17
+ shield: lucide_react_1.Shield,
18
+ "book-open": lucide_react_1.BookOpen,
19
+ users: lucide_react_1.Users,
20
+ heart: lucide_react_1.Heart,
21
+ globe: lucide_react_1.Globe,
22
+ star: lucide_react_1.Star,
23
+ zap: lucide_react_1.Zap,
24
+ };
15
25
  return (react_1.default.createElement("section", { id: "why-choose-us", className: "overflow-hidden bg-slate-50 py-24" },
16
26
  react_1.default.createElement("div", { className: "container mx-auto px-4" },
17
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 } },
18
- react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, "Why Choose LGGS?"),
28
+ react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
19
29
  react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
20
- "Choose Excellence.",
30
+ title,
21
31
  " ",
22
- react_1.default.createElement("span", { className: "text-blue-700" }, "Choose LGGS.")),
23
- react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, "Every parent wants the very best for their child. At Lahore Garrison Grammar School, we have built an institution where excellence is the baseline \u2014 not the exception.")),
32
+ react_1.default.createElement("span", { className: "text-blue-700" }, lead)),
33
+ react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, paragraph)),
24
34
  react_1.default.createElement("div", { className: "mb-8 grid grid-cols-1 gap-5 md:grid-cols-2 lg:grid-cols-4" },
25
35
  firstTwo.map(function (f, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: f.title, className: "group relative overflow-hidden rounded-3xl border border-gray-100 bg-white p-8 shadow-sm transition-shadow duration-300 hover:shadow-xl lg:col-span-2", initial: { opacity: 0, y: 40 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: i * 0.1 }, viewport: { once: true }, whileHover: { y: -4 } },
26
- react_1.default.createElement("div", { className: "pointer-events-none absolute inset-0 bg-gradient-to-br from-blue-50 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100" }),
27
- react_1.default.createElement("div", { className: "mb-5 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-gray-50 transition-transform duration-300 group-hover:scale-110" },
28
- react_1.default.createElement(f.icon, { className: "h-7 w-7 ".concat(f.color) })),
36
+ react_1.default.createElement("div", { className: "pointer-events-none absolute inset-0 bg-linear-to-br from-blue-50 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100" }),
37
+ react_1.default.createElement("div", { className: "mb-5 inline-flex h-14 w-14 items-center justify-center rounded-2xl bg-gray-50 transition-transform duration-300 group-hover:scale-110" }, (function () {
38
+ var _a;
39
+ var Icon = (_a = iconMap[f.icon]) !== null && _a !== void 0 ? _a : lucide_react_1.BookOpen;
40
+ return react_1.default.createElement(Icon, { className: "h-7 w-7 ".concat(f.color) });
41
+ })()),
29
42
  react_1.default.createElement("h3", { className: "mb-3 text-xl font-bold text-gray-900" }, f.title),
30
43
  react_1.default.createElement("p", { className: "leading-relaxed text-gray-500" }, f.description))); }),
31
44
  rest.map(function (f, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: f.title, className: "group relative overflow-hidden rounded-2xl border border-gray-100 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-lg", initial: { opacity: 0, y: 40 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: (i + 2) * 0.08 }, viewport: { once: true }, whileHover: { y: -3 } },
32
- react_1.default.createElement("div", { className: "pointer-events-none absolute inset-0 bg-gradient-to-br from-blue-50 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100" }),
33
- react_1.default.createElement("div", { className: "mb-4 inline-flex h-11 w-11 items-center justify-center rounded-xl bg-gray-50 transition-transform duration-300 group-hover:scale-110" },
34
- react_1.default.createElement(f.icon, { className: "h-5 w-5 ".concat(f.color) })),
45
+ react_1.default.createElement("div", { className: "pointer-events-none absolute inset-0 bg-linear-to-br from-blue-50 to-transparent opacity-0 transition-opacity duration-300 group-hover:opacity-100" }),
46
+ react_1.default.createElement("div", { className: "mb-4 inline-flex h-11 w-11 items-center justify-center rounded-xl bg-gray-50 transition-transform duration-300 group-hover:scale-110" }, (function () {
47
+ var _a;
48
+ var Icon = (_a = iconMap[f.icon]) !== null && _a !== void 0 ? _a : lucide_react_1.BookOpen;
49
+ return react_1.default.createElement(Icon, { className: "h-5 w-5 ".concat(f.color) });
50
+ })()),
35
51
  react_1.default.createElement("h3", { className: "mb-2 font-bold text-gray-900" }, f.title),
36
52
  react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-500" }, f.description))); })),
37
- react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-wrap items-center justify-center gap-3 border-t border-gray-200 py-8", initial: { opacity: 0 }, whileInView: { opacity: 1 }, transition: { duration: 0.6, delay: 0.5 }, viewport: { once: true } }, highlightBadges.map(function (badge) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: badge, className: "flex items-center gap-2 rounded-full border border-blue-100 bg-white px-4 py-2 text-sm font-medium text-blue-800 shadow-sm", whileHover: { scale: 1.05 }, transition: { type: "spring", stiffness: 400 } },
53
+ react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-wrap items-center justify-center gap-3 border-t border-gray-200 py-8", initial: { opacity: 0 }, whileInView: { opacity: 1 }, transition: { duration: 0.6, delay: 0.5 }, viewport: { once: true } }, highlights.map(function (badge) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: badge, className: "flex items-center gap-2 rounded-full border border-blue-100 bg-white px-4 py-2 text-sm font-medium text-blue-800 shadow-sm", whileHover: { scale: 1.05 }, transition: { type: "spring", stiffness: 400 } },
38
54
  react_1.default.createElement(lucide_react_1.CheckCircle, { className: "h-4 w-4 text-blue-500" }),
39
55
  badge)); })))));
40
- }
56
+ };
57
+ exports.WhyChooseUsSection = WhyChooseUsSection;
@@ -1,2 +0,0 @@
1
- import React from "react";
2
- export declare function NewsEventsSection(): React.JSX.Element;
@@ -1,60 +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.NewsEventsSection = NewsEventsSection;
8
- var react_1 = __importDefault(require("react"));
9
- var framer_motion_1 = require("framer-motion");
10
- var badge_1 = require("../../../components/ui/badge");
11
- var button_1 = require("../../../components/ui/button");
12
- var link_1 = __importDefault(require("next/link"));
13
- var lucide_react_1 = require("lucide-react");
14
- var school_v1_1 = require("../../../templates/data/school-v1");
15
- var eventTypeColors = {
16
- Academic: "bg-blue-100 text-blue-700",
17
- Parents: "bg-purple-100 text-purple-700",
18
- Cultural: "bg-amber-100 text-amber-700",
19
- Creative: "bg-pink-100 text-pink-700",
20
- Sports: "bg-green-100 text-green-700",
21
- };
22
- function NewsEventsSection() {
23
- return (react_1.default.createElement("section", { id: "news", className: "bg-slate-50 py-24" },
24
- react_1.default.createElement("div", { className: "container mx-auto px-4" },
25
- 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 } },
26
- react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, "News & Events"),
27
- react_1.default.createElement("h2", { className: "mb-5 text-4xl font-bold text-gray-900 md:text-5xl" },
28
- "Life at ",
29
- react_1.default.createElement("span", { className: "text-blue-700" }, "LGGS")),
30
- react_1.default.createElement("p", { className: "mx-auto max-w-2xl text-lg leading-relaxed text-gray-500" }, "Stay connected with our vibrant school community \u2014 from academic achievements and cultural celebrations to upcoming events and competitions.")),
31
- react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-3" },
32
- react_1.default.createElement("div", { className: "space-y-5 lg:col-span-2" },
33
- school_v1_1.newsArticles.map(function (article, i) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: article.id, className: "group rounded-2xl border border-gray-100 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-lg", initial: { opacity: 0, x: -30 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.5, delay: i * 0.08 }, viewport: { once: true } },
34
- react_1.default.createElement("div", { className: "mb-3 flex items-center gap-3" },
35
- react_1.default.createElement(badge_1.Badge, { className: article.categoryColor }, article.category),
36
- react_1.default.createElement("span", { className: "text-xs text-gray-400" }, article.date)),
37
- react_1.default.createElement("h3", { className: "mb-2 text-lg font-bold text-gray-900 transition-colors group-hover:text-blue-700" },
38
- react_1.default.createElement(link_1.default, { href: article.href }, article.title)),
39
- react_1.default.createElement("p", { className: "mb-4 text-sm leading-relaxed text-gray-500" }, article.excerpt),
40
- react_1.default.createElement(link_1.default, { href: article.href, className: "inline-flex items-center gap-1 text-sm font-semibold text-blue-700 transition-colors hover:text-blue-900" },
41
- "Read full story ",
42
- react_1.default.createElement(lucide_react_1.ArrowRight, { className: "h-4 w-4" })))); }),
43
- react_1.default.createElement(button_1.Button, { asChild: true, variant: "outline", className: "border-blue-700 text-blue-700 hover:bg-blue-50" },
44
- react_1.default.createElement(link_1.default, { href: "/blog" }, "View All Stories"))),
45
- react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, x: 30 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } },
46
- react_1.default.createElement("div", { className: "sticky top-8 rounded-2xl border border-gray-100 bg-white p-6 shadow-sm" },
47
- react_1.default.createElement("h3", { className: "mb-5 text-lg font-bold text-gray-900" }, "Upcoming Events"),
48
- react_1.default.createElement("div", { className: "space-y-4" }, school_v1_1.upcomingEvents.map(function (event, i) {
49
- var _a;
50
- return (react_1.default.createElement(framer_motion_1.motion.div, { key: event.title, className: "flex items-start gap-4 border-b border-gray-100 pb-4 last:border-0 last:pb-0", initial: { opacity: 0 }, whileInView: { opacity: 1 }, transition: { duration: 0.3, delay: i * 0.06 }, viewport: { once: true } },
51
- react_1.default.createElement("div", { className: "flex h-12 w-12 flex-shrink-0 flex-col items-center justify-center rounded-xl bg-blue-700 text-white" },
52
- react_1.default.createElement("span", { className: "text-sm leading-none font-bold" }, event.date),
53
- react_1.default.createElement("span", { className: "text-xs opacity-80" }, event.month)),
54
- react_1.default.createElement("div", null,
55
- react_1.default.createElement("div", { className: "text-sm font-medium text-gray-900" }, event.title),
56
- react_1.default.createElement("div", { className: "mt-0.5 text-xs text-gray-400" }, event.time),
57
- react_1.default.createElement(badge_1.Badge, { className: "mt-1.5 text-xs ".concat((_a = eventTypeColors[event.type]) !== null && _a !== void 0 ? _a : "bg-gray-100 text-gray-600") }, event.type))));
58
- })),
59
- react_1.default.createElement(button_1.Button, { className: "mt-5 w-full bg-blue-700 hover:bg-blue-800" }, "Full Events Calendar")))))));
60
- }