@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.
Files changed (231) hide show
  1. package/components/app-sidebar.js +16 -23
  2. package/components/audio.js +11 -19
  3. package/components/dashboard.js +27 -65
  4. package/components/drawer-generic.js +20 -28
  5. package/components/enhanced-checkbox.js +10 -57
  6. package/components/enhanced-combobox.js +99 -143
  7. package/components/enhanced-drawer-footer.js +22 -31
  8. package/components/enhanced-drawer-header.js +6 -14
  9. package/components/enhanced-dropzone-impl.d.ts +32 -0
  10. package/components/enhanced-dropzone-impl.js +218 -0
  11. package/components/enhanced-dropzone.d.ts +2 -63
  12. package/components/enhanced-dropzone.js +6 -294
  13. package/components/enhanced-input.js +10 -57
  14. package/components/enhanced-label.js +6 -52
  15. package/components/enhanced-radio.js +12 -20
  16. package/components/enhanced-select.js +13 -61
  17. package/components/enhanced-slider.js +11 -58
  18. package/components/enhanced-switch.js +11 -58
  19. package/components/enhanced-table-footer-action.js +11 -19
  20. package/components/enhanced-table-footer-page.js +16 -24
  21. package/components/enhanced-table-footer-pagination.js +11 -21
  22. package/components/enhanced-table-header-action.js +22 -30
  23. package/components/enhanced-table-header-search.js +9 -17
  24. package/components/enhanced-table.js +125 -153
  25. package/components/enhanced-textarea.js +10 -57
  26. package/components/field.d.ts +1 -1
  27. package/components/field.js +31 -88
  28. package/components/image-resize-dialog.js +61 -159
  29. package/components/nav-main.js +32 -78
  30. package/components/nav-projects.js +37 -48
  31. package/components/nav-user.js +41 -51
  32. package/components/show-toast.js +5 -9
  33. package/components/sidebar.d.ts +1 -1
  34. package/components/sidebar.js +115 -184
  35. package/components/team-switcher.js +36 -47
  36. package/components/theme-provider.js +36 -84
  37. package/components/timeline.js +12 -20
  38. package/components/tooltip.js +10 -59
  39. package/components/ui/accordion.js +17 -67
  40. package/components/ui/alert-dialog.js +32 -89
  41. package/components/ui/alert.d.ts +1 -1
  42. package/components/ui/alert.js +14 -63
  43. package/components/ui/area-chart-v1-impl.d.ts +19 -0
  44. package/components/ui/area-chart-v1-impl.js +75 -0
  45. package/components/ui/area-chart-v1.d.ts +2 -19
  46. package/components/ui/area-chart-v1.js +4 -113
  47. package/components/ui/aspect-ratio.js +3 -39
  48. package/components/ui/avatar.js +13 -62
  49. package/components/ui/badge.d.ts +2 -2
  50. package/components/ui/badge.js +7 -55
  51. package/components/ui/breadcrumb.js +27 -80
  52. package/components/ui/button.d.ts +2 -2
  53. package/components/ui/button.js +10 -58
  54. package/components/ui/calendar-impl.d.ts +8 -0
  55. package/components/ui/calendar-impl.js +55 -0
  56. package/components/ui/calendar.d.ts +2 -8
  57. package/components/ui/calendar.js +5 -108
  58. package/components/ui/card.js +21 -73
  59. package/components/ui/carousel-impl.d.ts +18 -0
  60. package/components/ui/carousel-impl.js +117 -0
  61. package/components/ui/carousel.d.ts +6 -18
  62. package/components/ui/carousel.js +8 -170
  63. package/components/ui/chart-impl.d.ts +62 -0
  64. package/components/ui/chart-impl.js +162 -0
  65. package/components/ui/chart.d.ts +7 -62
  66. package/components/ui/chart.js +9 -219
  67. package/components/ui/checkbox.js +10 -57
  68. package/components/ui/collapsible.js +5 -43
  69. package/components/ui/combobox.js +22 -58
  70. package/components/ui/command-impl.d.ts +80 -0
  71. package/components/ui/command-impl.js +63 -0
  72. package/components/ui/command.d.ts +9 -80
  73. package/components/ui/command.js +12 -117
  74. package/components/ui/context-menu.js +41 -102
  75. package/components/ui/dialog.js +28 -84
  76. package/components/ui/drawer-impl.d.ts +22 -0
  77. package/components/ui/drawer-impl.js +56 -0
  78. package/components/ui/drawer.d.ts +10 -22
  79. package/components/ui/drawer.js +13 -111
  80. package/components/ui/dropdown-menu.js +41 -102
  81. package/components/ui/form.d.ts +4 -2
  82. package/components/ui/form.js +41 -95
  83. package/components/ui/hover-card.js +9 -58
  84. package/components/ui/input-otp-impl.d.ts +34 -0
  85. package/components/ui/input-otp-impl.js +43 -0
  86. package/components/ui/input-otp.d.ts +4 -34
  87. package/components/ui/input-otp.js +7 -92
  88. package/components/ui/input.js +6 -53
  89. package/components/ui/label.d.ts +1 -1
  90. package/components/ui/label.js +9 -56
  91. package/components/ui/language-selector.js +17 -55
  92. package/components/ui/menubar.js +46 -108
  93. package/components/ui/navigation-menu.d.ts +1 -1
  94. package/components/ui/navigation-menu.js +29 -84
  95. package/components/ui/pagination.js +30 -83
  96. package/components/ui/popover.js +10 -60
  97. package/components/ui/progress.js +8 -55
  98. package/components/ui/radio-group.js +12 -60
  99. package/components/ui/resizable-impl.d.ts +24 -0
  100. package/components/ui/resizable-impl.js +27 -0
  101. package/components/ui/resizable.d.ts +3 -24
  102. package/components/ui/resizable.js +6 -78
  103. package/components/ui/scroll-area.js +10 -58
  104. package/components/ui/select.js +34 -90
  105. package/components/ui/separator.js +7 -54
  106. package/components/ui/sheet.d.ts +1 -1
  107. package/components/ui/sheet.js +30 -86
  108. package/components/ui/skeleton.js +5 -21
  109. package/components/ui/slider.js +10 -57
  110. package/components/ui/sonner.js +7 -24
  111. package/components/ui/switch.js +8 -55
  112. package/components/ui/table.js +27 -81
  113. package/components/ui/tabs.js +14 -64
  114. package/components/ui/textarea.js +6 -53
  115. package/components/ui/theme-switcher.js +41 -91
  116. package/components/ui/toggle.d.ts +2 -2
  117. package/components/ui/toggle.js +9 -57
  118. package/data/admin-dashboard.js +16 -19
  119. package/hooks/use-enhanced-combobox.js +47 -124
  120. package/hooks/use-mobile.js +8 -44
  121. package/hooks/use-outside-click.js +6 -10
  122. package/lib/themes.js +1 -4
  123. package/lib/toast-utils.js +78 -120
  124. package/lib/utils.js +4 -11
  125. package/package.json +9 -90
  126. package/utils/transform-breadcrumbs.js +4 -8
  127. package/utils/transform-navitems.js +7 -22
  128. package/components/aceternity-ui/apple-cards-carousel.d.ts +0 -35
  129. package/components/aceternity-ui/apple-cards-carousel.js +0 -263
  130. package/components/shadcn-example/ai-chat/chat-interface.d.ts +0 -11
  131. package/components/shadcn-example/ai-chat/chat-interface.js +0 -70
  132. package/components/shadcn-example/ai-chat/index.d.ts +0 -38
  133. package/components/shadcn-example/ai-chat/index.js +0 -66
  134. package/components/shadcn-example/ai-chat/sidebar.d.ts +0 -15
  135. package/components/shadcn-example/ai-chat/sidebar.js +0 -68
  136. package/components/shadcn-example/ai-chat/welcome-section.d.ts +0 -12
  137. package/components/shadcn-example/ai-chat/welcome-section.js +0 -26
  138. package/components/shadcn-example/authentication/index.d.ts +0 -24
  139. package/components/shadcn-example/authentication/index.js +0 -59
  140. package/components/shadcn-example/authentication/user-auth-form.d.ts +0 -11
  141. package/components/shadcn-example/authentication/user-auth-form.js +0 -54
  142. package/components/shadcn-example/blog-detail-page/comment-section.d.ts +0 -15
  143. package/components/shadcn-example/blog-detail-page/comment-section.js +0 -83
  144. package/components/shadcn-example/blog-detail-page/content.d.ts +0 -7
  145. package/components/shadcn-example/blog-detail-page/content.js +0 -15
  146. package/components/shadcn-example/blog-detail-page/header.d.ts +0 -11
  147. package/components/shadcn-example/blog-detail-page/header.js +0 -36
  148. package/components/shadcn-example/blog-detail-page/index.d.ts +0 -25
  149. package/components/shadcn-example/blog-detail-page/index.js +0 -74
  150. package/components/shadcn-example/blog-page/blog-post-card.d.ts +0 -13
  151. package/components/shadcn-example/blog-page/blog-post-card.js +0 -30
  152. package/components/shadcn-example/blog-page/featured-post-sidebar-item.d.ts +0 -10
  153. package/components/shadcn-example/blog-page/featured-post-sidebar-item.js +0 -19
  154. package/components/shadcn-example/blog-page/index.d.ts +0 -20
  155. package/components/shadcn-example/blog-page/index.js +0 -36
  156. package/components/shadcn-example/coming-soon/countdown.d.ts +0 -2
  157. package/components/shadcn-example/coming-soon/countdown.js +0 -82
  158. package/components/shadcn-example/coming-soon/index.d.ts +0 -10
  159. package/components/shadcn-example/coming-soon/index.js +0 -41
  160. package/components/shadcn-io/color-picker/index.d.ts +0 -43
  161. package/components/shadcn-io/color-picker/index.js +0 -304
  162. package/components/shadcn-io/copy-button/index.d.ts +0 -16
  163. package/components/shadcn-io/copy-button/index.js +0 -121
  164. package/components/shadcn-io/dropzone/index.d.ts +0 -19
  165. package/components/shadcn-io/dropzone/index.js +0 -131
  166. package/components/shadcn-io/gantt/index.d.ts +0 -145
  167. package/components/shadcn-io/gantt/index.js +0 -766
  168. package/components/shadcn-io/table/index.d.ts +0 -60
  169. package/components/shadcn-io/table/index.js +0 -138
  170. package/templates/appcorp-v1/footer/bottom-bar.d.ts +0 -6
  171. package/templates/appcorp-v1/footer/bottom-bar.js +0 -25
  172. package/templates/appcorp-v1/footer/cta.d.ts +0 -6
  173. package/templates/appcorp-v1/footer/cta.js +0 -21
  174. package/templates/appcorp-v1/footer/footer-grid.d.ts +0 -14
  175. package/templates/appcorp-v1/footer/footer-grid.js +0 -52
  176. package/templates/appcorp-v1/footer/index.d.ts +0 -3
  177. package/templates/appcorp-v1/footer/index.js +0 -28
  178. package/templates/appcorp-v1/footer/newsletter.d.ts +0 -11
  179. package/templates/appcorp-v1/footer/newsletter.js +0 -28
  180. package/templates/appcorp-v1/footer/stats.d.ts +0 -6
  181. package/templates/appcorp-v1/footer/stats.js +0 -15
  182. package/templates/appcorp-v1/header/announcement-bar.d.ts +0 -3
  183. package/templates/appcorp-v1/header/announcement-bar.js +0 -15
  184. package/templates/appcorp-v1/header/dropdown-panel.d.ts +0 -8
  185. package/templates/appcorp-v1/header/dropdown-panel.js +0 -72
  186. package/templates/appcorp-v1/header/index.d.ts +0 -12
  187. package/templates/appcorp-v1/header/index.js +0 -16
  188. package/templates/appcorp-v1/header/mobile-menu.d.ts +0 -14
  189. package/templates/appcorp-v1/header/mobile-menu.js +0 -101
  190. package/templates/appcorp-v1/header/navigation-bar.d.ts +0 -3
  191. package/templates/appcorp-v1/header/navigation-bar.js +0 -117
  192. package/templates/appcorp-v1/header/social-button.d.ts +0 -7
  193. package/templates/appcorp-v1/header/social-button.js +0 -48
  194. package/templates/appcorp-v1/home.d.ts +0 -3
  195. package/templates/appcorp-v1/home.js +0 -27
  196. package/templates/data/appcorp-v1.d.ts +0 -93
  197. package/templates/data/appcorp-v1.js +0 -348
  198. package/templates/data/edupilotpro-v1.d.ts +0 -33
  199. package/templates/data/edupilotpro-v1.js +0 -116
  200. package/templates/data/school-v1.d.ts +0 -328
  201. package/templates/data/school-v1.js +0 -1563
  202. package/templates/edupilotpro-v1/feature-card.d.ts +0 -13
  203. package/templates/edupilotpro-v1/feature-card.js +0 -28
  204. package/templates/edupilotpro-v1/mockups/dashboard-mockup.d.ts +0 -3
  205. package/templates/edupilotpro-v1/mockups/dashboard-mockup.js +0 -55
  206. package/templates/school-v1/footer.d.ts +0 -3
  207. package/templates/school-v1/footer.js +0 -75
  208. package/templates/school-v1/index.d.ts +0 -18
  209. package/templates/school-v1/index.js +0 -60
  210. package/templates/school-v1/navigation.d.ts +0 -3
  211. package/templates/school-v1/navigation.js +0 -123
  212. package/templates/school-v1/sections/about.d.ts +0 -3
  213. package/templates/school-v1/sections/about.js +0 -49
  214. package/templates/school-v1/sections/admissions.d.ts +0 -3
  215. package/templates/school-v1/sections/admissions.js +0 -77
  216. package/templates/school-v1/sections/contact.d.ts +0 -3
  217. package/templates/school-v1/sections/contact.js +0 -67
  218. package/templates/school-v1/sections/faqs.d.ts +0 -3
  219. package/templates/school-v1/sections/faqs.js +0 -50
  220. package/templates/school-v1/sections/hero.d.ts +0 -3
  221. package/templates/school-v1/sections/hero.js +0 -132
  222. package/templates/school-v1/sections/management.d.ts +0 -3
  223. package/templates/school-v1/sections/management.js +0 -34
  224. package/templates/school-v1/sections/policies.d.ts +0 -3
  225. package/templates/school-v1/sections/policies.js +0 -127
  226. package/templates/school-v1/sections/programs.d.ts +0 -3
  227. package/templates/school-v1/sections/programs.js +0 -107
  228. package/templates/school-v1/sections/testimonials.d.ts +0 -3
  229. package/templates/school-v1/sections/testimonials.js +0 -46
  230. package/templates/school-v1/sections/why-choose-us.d.ts +0 -3
  231. package/templates/school-v1/sections/why-choose-us.js +0 -57
@@ -1,13 +0,0 @@
1
- import React, { FC } from "react";
2
- export interface FeatureCardProps {
3
- accent: string;
4
- bg: string;
5
- description: string;
6
- highlights: string[];
7
- href: string;
8
- Icon: React.ComponentType<{
9
- className?: string;
10
- }>;
11
- title: string;
12
- }
13
- export declare const FeatureCard: FC<FeatureCardProps>;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FeatureCard = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- var link_1 = __importDefault(require("next/link"));
9
- var lucide_react_1 = require("lucide-react");
10
- var card_1 = require("../../components/ui/card");
11
- var FeatureCard = function (_a) {
12
- var accent = _a.accent, bg = _a.bg, description = _a.description, highlights = _a.highlights, href = _a.href, Icon = _a.Icon, title = _a.title;
13
- return (react_1.default.createElement(link_1.default, { key: title, href: href, prefetch: false, className: "group flex" },
14
- react_1.default.createElement(card_1.Card, { className: "flex w-full flex-col border-border/60 transition-all hover:shadow-lg hover:border-primary/40" },
15
- react_1.default.createElement(card_1.CardHeader, { className: "pb-3" },
16
- react_1.default.createElement("div", { className: "mb-4 inline-flex h-11 w-11 items-center justify-center rounded-xl ".concat(bg) },
17
- react_1.default.createElement(Icon, { className: "h-5 w-5 ".concat(accent) })),
18
- react_1.default.createElement(card_1.CardTitle, { className: "text-lg" }, title)),
19
- react_1.default.createElement(card_1.CardContent, { className: "flex flex-col flex-1 gap-4" },
20
- react_1.default.createElement("p", { className: "text-sm text-muted-foreground leading-relaxed" }, description),
21
- react_1.default.createElement("ul", { className: "mt-auto space-y-1.5" }, highlights.map(function (h) { return (react_1.default.createElement("li", { key: h, className: "flex items-start gap-2 text-sm text-foreground" },
22
- react_1.default.createElement(lucide_react_1.CheckCircle2, { className: "mt-0.5 h-4 w-4 shrink-0 ".concat(accent) }),
23
- h)); })),
24
- react_1.default.createElement("div", { className: "mt-2 flex items-center gap-1 text-xs font-semibold ".concat(accent) },
25
- "Learn more",
26
- react_1.default.createElement(lucide_react_1.ArrowRight, { className: "h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" }))))));
27
- };
28
- exports.FeatureCard = FeatureCard;
@@ -1,3 +0,0 @@
1
- import { FC } from "react";
2
- import { DashboardMockupProps } from "../../data/edupilotpro-v1";
3
- export declare const DashboardMockup: FC<DashboardMockupProps>;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DashboardMockup = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- var lucide_react_1 = require("lucide-react");
9
- var DashboardMockup = function (_a) {
10
- var domain = _a.domain, enrollmentHeading = _a.enrollmentHeading, enrollmentList = _a.enrollmentList, items = _a.items, schoolName = _a.schoolName, stats = _a.stats;
11
- return (react_1.default.createElement("div", { className: "relative mx-auto w-full max-w-3xl" },
12
- react_1.default.createElement("div", { className: "absolute inset-0 -z-10 scale-95 blur-3xl opacity-30 bg-gradient-to-br from-primary via-purple-500 to-blue-500 rounded-2xl" }),
13
- react_1.default.createElement("div", { className: "rounded-xl border border-border/60 bg-background shadow-2xl overflow-hidden" },
14
- react_1.default.createElement("div", { className: "flex items-center gap-2 border-b border-border/60 bg-muted/50 px-4 py-3" },
15
- react_1.default.createElement("span", { className: "h-3 w-3 rounded-full bg-red-400" }),
16
- react_1.default.createElement("span", { className: "h-3 w-3 rounded-full bg-yellow-400" }),
17
- react_1.default.createElement("span", { className: "h-3 w-3 rounded-full bg-green-400" }),
18
- react_1.default.createElement("div", { className: "ml-3 flex-1 rounded-md bg-background/70 border border-border/40 px-3 py-1 text-xs text-muted-foreground" }, domain)),
19
- react_1.default.createElement("div", { className: "flex h-[340px] sm:h-[380px]" },
20
- react_1.default.createElement("div", { className: "hidden w-44 flex-shrink-0 border-r border-border/40 bg-muted/30 p-3 sm:block" },
21
- react_1.default.createElement("div", { className: "mb-4 flex items-center gap-2" },
22
- react_1.default.createElement("span", { className: "flex h-6 w-6 items-center justify-center rounded bg-primary text-primary-foreground" },
23
- react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-4 w-4" })),
24
- react_1.default.createElement("span", { className: "text-xs font-bold" }, "EduPilotPro")),
25
- items.map(function (_a) {
26
- var Icon = _a.icon, label = _a.label, active = _a.active;
27
- return (react_1.default.createElement("div", { key: label, className: "mb-1 flex items-center gap-2 rounded-md px-2 py-1.5 text-xs ".concat(active
28
- ? "bg-primary/10 text-primary font-semibold"
29
- : "text-muted-foreground") },
30
- react_1.default.createElement(Icon, { className: "h-3.5 w-3.5 shrink-0" }),
31
- label));
32
- })),
33
- react_1.default.createElement("div", { className: "flex-1 overflow-hidden p-4" },
34
- react_1.default.createElement("p", { className: "mb-3 text-sm font-semibold text-foreground" },
35
- "Overview \u2014 ",
36
- schoolName),
37
- react_1.default.createElement("div", { className: "grid grid-cols-2 gap-2 sm:grid-cols-4" }, stats.map(function (_a) {
38
- var label = _a.label, value = _a.value, color = _a.color;
39
- return (react_1.default.createElement("div", { key: label, className: "rounded-lg border border-border/50 bg-card p-3" },
40
- react_1.default.createElement("p", { className: "text-[10px] text-muted-foreground" }, label),
41
- react_1.default.createElement("p", { className: "text-lg font-bold ".concat(color) }, value)));
42
- })),
43
- react_1.default.createElement("div", { className: "mt-3 rounded-lg border border-border/50 bg-card p-3" },
44
- react_1.default.createElement("p", { className: "mb-2 text-xs font-semibold text-foreground" }, enrollmentHeading),
45
- react_1.default.createElement("div", { className: "space-y-1.5" }, enrollmentList.map(function (_a) {
46
- var name = _a.name, cls = _a.class, status = _a.status;
47
- return (react_1.default.createElement("div", { key: name, className: "flex items-center justify-between text-[10px]" },
48
- react_1.default.createElement("span", { className: "font-medium text-foreground" }, name),
49
- react_1.default.createElement("span", { className: "text-muted-foreground" }, cls),
50
- react_1.default.createElement("span", { className: "rounded-full px-1.5 py-0.5 text-[9px] font-medium ".concat(status === "Active"
51
- ? "bg-green-100 text-green-700"
52
- : "bg-yellow-100 text-yellow-700") }, status)));
53
- }))))))));
54
- };
55
- exports.DashboardMockup = DashboardMockup;
@@ -1,3 +0,0 @@
1
- import { FC } from "react";
2
- import { FooterData } from "../data/school-v1";
3
- export declare const Footer: FC<FooterData>;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Footer = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- var link_1 = __importDefault(require("next/link"));
9
- var lucide_react_1 = require("lucide-react");
10
- var separator_1 = require("../../components/ui/separator");
11
- var iconMap = {
12
- facebook: lucide_react_1.Facebook,
13
- instagram: lucide_react_1.Instagram,
14
- twitter: lucide_react_1.Twitter,
15
- youtube: lucide_react_1.Youtube,
16
- };
17
- var Footer = function (_a) {
18
- var address = _a.address, brandDescription = _a.brandDescription, brandFullName = _a.brandFullName, brandShortName = _a.brandShortName, emailHref = _a.emailHref, emailLabel = _a.emailLabel, partnerHref = _a.partnerHref, partnerLabel = _a.partnerLabel, phoneHref = _a.phoneHref, phoneLabel = _a.phoneLabel, programs = _a.programs, quickLinks = _a.quickLinks, socialLinks = _a.socialLinks;
19
- return (react_1.default.createElement("footer", { className: "bg-blue-950 text-blue-100" },
20
- react_1.default.createElement("div", { className: "container mx-auto px-4 py-12" },
21
- react_1.default.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4" },
22
- react_1.default.createElement("div", null,
23
- react_1.default.createElement("div", { className: "mb-4 flex items-center gap-2" },
24
- react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-600" },
25
- react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
26
- react_1.default.createElement("div", null,
27
- react_1.default.createElement("div", { className: "font-bold text-white" }, brandShortName),
28
- react_1.default.createElement("div", { className: "text-xs text-blue-300" }, brandFullName))),
29
- react_1.default.createElement("p", { className: "text-sm text-blue-300" }, brandDescription),
30
- react_1.default.createElement("div", { className: "mt-4 flex gap-3" }, socialLinks
31
- .filter(function (s) { return s.enable; })
32
- .sort(function (a, b) { return a.order - b.order; })
33
- .map(function (s) {
34
- var _a;
35
- var aria = (_a = s.aria) !== null && _a !== void 0 ? _a : s.name;
36
- return (react_1.default.createElement(link_1.default, { key: "".concat(s.name, "-").concat(s.order), href: s.href, "aria-label": aria, className: "text-blue-300 transition-colors hover:text-white" }, iconMap[s.name] &&
37
- react_1.default.createElement(iconMap[s.name], {
38
- className: "h-5 w-5",
39
- })));
40
- }))),
41
- react_1.default.createElement("div", null,
42
- react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Quick Links"),
43
- react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, quickLinks
44
- .filter(function (l) { return l.enable; })
45
- .sort(function (a, b) { return a.order - b.order; })
46
- .map(function (link) { return (react_1.default.createElement("li", { key: "".concat(link.href, "-").concat(link.order) },
47
- react_1.default.createElement(link_1.default, { href: link.href, className: "text-blue-300 transition-colors hover:text-white" }, link.label))); }))),
48
- react_1.default.createElement("div", null,
49
- react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Programs"),
50
- react_1.default.createElement("ul", { className: "space-y-2 text-sm" }, programs.map(function (program) { return (react_1.default.createElement("li", { key: program.id, className: "text-blue-300" }, program.label)); }))),
51
- react_1.default.createElement("div", null,
52
- react_1.default.createElement("h3", { className: "mb-4 font-semibold text-white" }, "Contact"),
53
- react_1.default.createElement("ul", { className: "space-y-3 text-sm" },
54
- react_1.default.createElement("li", { className: "flex items-start gap-2 text-blue-300" },
55
- react_1.default.createElement(lucide_react_1.MapPin, { className: "mt-0.5 h-4 w-4 shrink-0" }),
56
- react_1.default.createElement("span", null, address)),
57
- react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
58
- react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4 shrink-0" }),
59
- react_1.default.createElement(link_1.default, { href: phoneHref, className: "transition-colors hover:text-white" }, phoneLabel)),
60
- react_1.default.createElement("li", { className: "flex items-center gap-2 text-blue-300" },
61
- react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4 shrink-0" }),
62
- react_1.default.createElement(link_1.default, { href: emailHref, className: "transition-colors hover:text-white" }, emailLabel))))),
63
- react_1.default.createElement(separator_1.Separator, { className: "my-8 bg-blue-800" }),
64
- react_1.default.createElement("div", { className: "flex flex-col items-center justify-between gap-4 text-sm text-blue-400 md:flex-row" },
65
- react_1.default.createElement("p", null,
66
- "\u00A9 ",
67
- new Date().getFullYear(),
68
- " ",
69
- brandFullName,
70
- ". All rights reserved."),
71
- react_1.default.createElement("div", { className: "flex gap-1" },
72
- "our Tech Partners",
73
- partnerLabel && partnerHref && (react_1.default.createElement(link_1.default, { target: "_blank", href: partnerHref, className: "transition-colors hover:text-white" }, partnerLabel)))))));
74
- };
75
- exports.Footer = Footer;
@@ -1,18 +0,0 @@
1
- import React from "react";
2
- import { AboutData, AdmissionsData, ContactData, FAQsData, FooterData, HeroData, ManagementData, PoliciesData, ProgramsData, TestimonialData, WhyUsData } from "../../templates/data/school-v1";
3
- export type SchoolV1TemplateProps = {
4
- overrides?: {
5
- aboutData?: AboutData;
6
- admissionsData?: AdmissionsData;
7
- contactData?: ContactData;
8
- faqsData?: FAQsData;
9
- footerData?: FooterData;
10
- heroData?: HeroData;
11
- managementData?: ManagementData;
12
- policiesData?: PoliciesData;
13
- programsData?: ProgramsData;
14
- testimonialData?: TestimonialData;
15
- whysUsData?: WhyUsData;
16
- };
17
- };
18
- export declare const SchoolV1Template: React.FC<SchoolV1TemplateProps>;
@@ -1,60 +0,0 @@
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
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.SchoolV1Template = void 0;
18
- var react_1 = __importDefault(require("react"));
19
- var about_1 = require("./sections/about");
20
- var admissions_1 = require("./sections/admissions");
21
- var contact_1 = require("./sections/contact");
22
- var faqs_1 = require("./sections/faqs");
23
- var hero_1 = require("./sections/hero");
24
- var management_1 = require("./sections/management");
25
- var policies_1 = require("./sections/policies");
26
- var programs_1 = require("./sections/programs");
27
- var testimonials_1 = require("./sections/testimonials");
28
- var why_choose_us_1 = require("./sections/why-choose-us");
29
- var school_v1_1 = require("../../templates/data/school-v1");
30
- var navigation_1 = require("./navigation");
31
- var footer_1 = require("./footer");
32
- var SchoolV1Template = function (_a) {
33
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
34
- var overrides = _a.overrides;
35
- var h = (_b = overrides === null || overrides === void 0 ? void 0 : overrides.heroData) !== null && _b !== void 0 ? _b : school_v1_1.heroData;
36
- var a = (_c = overrides === null || overrides === void 0 ? void 0 : overrides.aboutData) !== null && _c !== void 0 ? _c : school_v1_1.aboutData;
37
- var p = (_d = overrides === null || overrides === void 0 ? void 0 : overrides.programsData) !== null && _d !== void 0 ? _d : school_v1_1.programsData;
38
- var w = (_e = overrides === null || overrides === void 0 ? void 0 : overrides.whysUsData) !== null && _e !== void 0 ? _e : school_v1_1.whysUsData;
39
- var ad = (_f = overrides === null || overrides === void 0 ? void 0 : overrides.admissionsData) !== null && _f !== void 0 ? _f : school_v1_1.admissionsData;
40
- var t = (_g = overrides === null || overrides === void 0 ? void 0 : overrides.testimonialData) !== null && _g !== void 0 ? _g : school_v1_1.testimonialData;
41
- var m = (_h = overrides === null || overrides === void 0 ? void 0 : overrides.managementData) !== null && _h !== void 0 ? _h : school_v1_1.managementData;
42
- var f = (_j = overrides === null || overrides === void 0 ? void 0 : overrides.faqsData) !== null && _j !== void 0 ? _j : school_v1_1.faqsData;
43
- var c = (_k = overrides === null || overrides === void 0 ? void 0 : overrides.contactData) !== null && _k !== void 0 ? _k : school_v1_1.contactData;
44
- var po = (_l = overrides === null || overrides === void 0 ? void 0 : overrides.policiesData) !== null && _l !== void 0 ? _l : school_v1_1.policiesData;
45
- var fo = (_m = overrides === null || overrides === void 0 ? void 0 : overrides.footerData) !== null && _m !== void 0 ? _m : school_v1_1.footerData;
46
- return (react_1.default.createElement("div", null,
47
- react_1.default.createElement(navigation_1.Navigation, __assign({}, school_v1_1.navigationData)),
48
- react_1.default.createElement(hero_1.HeroSection, __assign({}, h)),
49
- react_1.default.createElement(about_1.AboutSection, __assign({}, a)),
50
- react_1.default.createElement(programs_1.ProgramsSection, __assign({}, p)),
51
- react_1.default.createElement(why_choose_us_1.WhyChooseUsSection, __assign({}, w)),
52
- react_1.default.createElement(admissions_1.AdmissionsSection, __assign({}, ad)),
53
- react_1.default.createElement(testimonials_1.TestimonialsSection, __assign({}, t)),
54
- react_1.default.createElement(management_1.ManagementSection, __assign({}, m)),
55
- react_1.default.createElement(faqs_1.FAQsSection, __assign({}, f)),
56
- react_1.default.createElement(policies_1.PoliciesSection, __assign({}, po)),
57
- react_1.default.createElement(contact_1.ContactSection, __assign({}, c)),
58
- react_1.default.createElement(footer_1.Footer, __assign({}, fo))));
59
- };
60
- exports.SchoolV1Template = SchoolV1Template;
@@ -1,3 +0,0 @@
1
- import React from "react";
2
- import { NavigationData } from "../data/school-v1";
3
- export declare const Navigation: React.FC<NavigationData>;
@@ -1,123 +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.Navigation = void 0;
41
- var react_1 = __importStar(require("react"));
42
- var link_1 = __importDefault(require("next/link"));
43
- var navigation_1 = require("next/navigation");
44
- var button_1 = require("../../components/ui/button");
45
- var sheet_1 = require("../../components/ui/sheet");
46
- var separator_1 = require("../../components/ui/separator");
47
- var lucide_react_1 = require("lucide-react");
48
- var utils_1 = require("../../lib/utils");
49
- var Navigation = function (_a) {
50
- var brandFullName = _a.brandFullName, brandShortName = _a.brandShortName, ctaHref = _a.ctaHref, ctaLabel = _a.ctaLabel, items = _a.items;
51
- var pathname = (0, navigation_1.usePathname)();
52
- var isHome = pathname === "/";
53
- var _b = (0, react_1.useState)(false), scrolled = _b[0], setScrolled = _b[1];
54
- var _c = (0, react_1.useState)(false), open = _c[0], setOpen = _c[1];
55
- (0, react_1.useEffect)(function () {
56
- if (isHome) {
57
- var handleScroll_1 = function () { return setScrolled(window.scrollY > 20); };
58
- window.addEventListener("scroll", handleScroll_1);
59
- handleScroll_1();
60
- return function () { return window.removeEventListener("scroll", handleScroll_1); };
61
- }
62
- else {
63
- setScrolled(false);
64
- }
65
- }, [isHome]);
66
- return (react_1.default.createElement("div", { className: (0, utils_1.cn)(isHome
67
- ? "fixed top-0 z-50 w-full transition-all duration-300"
68
- : "sticky top-0 z-50 w-full", isHome
69
- ? scrolled
70
- ? "bg-white/95 shadow-md backdrop-blur-sm"
71
- : "bg-transparent"
72
- : "bg-white shadow-md") },
73
- react_1.default.createElement("nav", { className: "container mx-auto flex h-16 items-center justify-between px-4" },
74
- react_1.default.createElement(link_1.default, { href: "/", className: "flex items-center gap-2" },
75
- react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-700" },
76
- react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
77
- react_1.default.createElement("div", null,
78
- react_1.default.createElement("div", { className: (0, utils_1.cn)("text-sm leading-none font-bold", isHome
79
- ? scrolled
80
- ? "text-blue-900"
81
- : "text-white"
82
- : "text-blue-900") }, brandShortName),
83
- react_1.default.createElement("div", { className: (0, utils_1.cn)("text-xs leading-none", isHome
84
- ? scrolled
85
- ? "text-blue-600"
86
- : "text-blue-100"
87
- : "text-blue-600") }, brandFullName))),
88
- react_1.default.createElement("div", { className: "hidden items-center gap-6 lg:flex" },
89
- items
90
- .filter(function (l) { return l.enable; })
91
- .sort(function (a, b) { return a.order - b.order; })
92
- .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", isHome
93
- ? scrolled
94
- ? "text-gray-700"
95
- : "text-white"
96
- : "text-gray-700") }, link.label)); }),
97
- ctaHref && ctaLabel && (react_1.default.createElement(button_1.Button, { asChild: true, size: "sm", className: "bg-blue-700 hover:bg-blue-800" },
98
- react_1.default.createElement(link_1.default, { href: ctaHref }, ctaLabel)))),
99
- react_1.default.createElement(sheet_1.Sheet, { open: open, onOpenChange: setOpen },
100
- react_1.default.createElement(sheet_1.SheetTrigger, { asChild: true, className: "lg:hidden" },
101
- react_1.default.createElement(button_1.Button, { variant: "ghost", size: "icon" },
102
- react_1.default.createElement(lucide_react_1.Menu, { className: isHome
103
- ? scrolled
104
- ? "text-gray-700"
105
- : "text-white"
106
- : "text-gray-700" }))),
107
- react_1.default.createElement(sheet_1.SheetContent, { side: "right", className: "w-72" },
108
- react_1.default.createElement("div", { className: "flex items-center gap-2 py-4" },
109
- react_1.default.createElement("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-blue-700" },
110
- react_1.default.createElement(lucide_react_1.GraduationCap, { className: "h-6 w-6 text-white" })),
111
- react_1.default.createElement("div", null,
112
- react_1.default.createElement("div", { className: "text-sm font-bold text-blue-900" }, brandShortName),
113
- react_1.default.createElement("div", { className: "text-xs text-blue-600" }, brandFullName))),
114
- react_1.default.createElement(separator_1.Separator, null),
115
- react_1.default.createElement("div", { className: "mt-4 flex flex-col gap-2" },
116
- items
117
- .filter(function (l) { return l.enable; })
118
- .sort(function (a, b) { return a.order - b.order; })
119
- .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)); }),
120
- ctaHref && ctaLabel && (react_1.default.createElement(button_1.Button, { asChild: true, className: "mt-4 bg-blue-700 text-white hover:bg-blue-800" },
121
- react_1.default.createElement(link_1.default, { href: ctaHref, onClick: function () { return setOpen(false); } }, ctaLabel)))))))));
122
- };
123
- exports.Navigation = Navigation;
@@ -1,3 +0,0 @@
1
- import { AboutData } from "../../data/school-v1";
2
- import { FC } from "react";
3
- export declare const AboutSection: FC<AboutData>;
@@ -1,49 +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.AboutSection = void 0;
8
- var framer_motion_1 = require("framer-motion");
9
- var badge_1 = require("../../../components/ui/badge");
10
- var card_1 = require("../../../components/ui/card");
11
- var separator_1 = require("../../../components/ui/separator");
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 };
15
- var AboutSection = function (_a) {
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;
17
- return (react_1.default.createElement("section", { id: "about", className: "overflow-hidden bg-white py-24" },
18
- react_1.default.createElement("div", { className: "container mx-auto px-4" },
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 } },
20
- react_1.default.createElement(badge_1.Badge, { className: "mb-4 bg-blue-100 text-blue-700 hover:bg-blue-100" }, badge),
21
- react_1.default.createElement("h2", { className: "mb-4 text-4xl font-bold text-gray-900 md:text-5xl" },
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)),
26
- react_1.default.createElement("div", { className: "mb-20 grid grid-cols-1 items-start gap-16 lg:grid-cols-2" },
27
- react_1.default.createElement(framer_motion_1.motion.div, { initial: { opacity: 0, x: -50 }, whileInView: { opacity: 1, x: 0 }, transition: { duration: 0.7 }, viewport: { once: true } },
28
- react_1.default.createElement("div", { className: "mb-6 space-y-5" }, paragraphs.map(function (p) { return (react_1.default.createElement("p", { key: p.id, className: "leading-relaxed text-gray-600" }, p.content)); })),
29
- react_1.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, stats.map(function (stat) { return (react_1.default.createElement(framer_motion_1.motion.div, { key: stat.label, className: "rounded-2xl border border-gray-100 bg-gray-50 p-5 text-center shadow-sm", whileHover: { scale: 1.04, y: -3 }, transition: { type: "spring", stiffness: 300 } },
30
- react_1.default.createElement("div", { className: "mb-1 text-2xl font-extrabold text-gray-900" }, stat.value),
31
- react_1.default.createElement("div", { className: "text-xs font-medium text-gray-500" }, stat.label),
32
- react_1.default.createElement("div", { className: "mx-auto mt-2 h-1 w-10 rounded-full ".concat(stat.color) }))); }))),
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 } },
34
- react_1.default.createElement(card_1.Card, { className: "h-full border ".concat(value.borderColor, " transition-shadow hover:shadow-lg") },
35
- react_1.default.createElement(card_1.CardContent, { className: "h-full p-6 ".concat(value.color) },
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
- })()),
40
- react_1.default.createElement("h3", { className: "mb-2 font-semibold text-gray-900" }, value.title),
41
- react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-600" }, value.description))))); }))),
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" },
43
- react_1.default.createElement("h3", { className: "mb-8 text-center text-2xl font-bold text-white" }, "Our Journey Through Time"),
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" },
45
- react_1.default.createElement("div", { className: "mb-2 text-3xl font-extrabold text-yellow-400" }, m.year),
46
- react_1.default.createElement(separator_1.Separator, { className: "mx-auto mb-2 w-8 bg-white/20" }),
47
- react_1.default.createElement("p", { className: "text-sm leading-relaxed text-blue-100" }, m.event))); }))))));
48
- };
49
- exports.AboutSection = AboutSection;
@@ -1,3 +0,0 @@
1
- import { AdmissionsData } from "../../data/school-v1";
2
- import { FC } from "react";
3
- export declare const AdmissionsSection: FC<AdmissionsData>;
@@ -1,77 +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.AdmissionsSection = 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
- "file-text": lucide_react_1.FileText,
16
- calendar: lucide_react_1.Calendar,
17
- "clipboard-list": lucide_react_1.ClipboardList,
18
- "check-circle": lucide_react_1.CheckCircle,
19
- };
20
- var statusStyles = {
21
- open: "bg-green-100 text-green-700",
22
- upcoming: "bg-blue-100 text-blue-700",
23
- closed: "bg-gray-100 text-gray-500",
24
- };
25
- var AdmissionsSection = function (_a) {
26
- var admissionSteps = _a.admissionSteps, badge = _a.badge, ctaDownloadLabel = _a.ctaDownloadLabel, ctaEmailHref = _a.ctaEmailHref, ctaEmailLabel = _a.ctaEmailLabel, ctaPhoneHref = _a.ctaPhoneHref, ctaPhoneLabel = _a.ctaPhoneLabel, documentsRequired = _a.documentsRequired, documentsTitle = _a.documentsTitle, heading = _a.heading, headingHighlight = _a.headingHighlight, keyDates = _a.keyDates, keyDatesTitle = _a.keyDatesTitle, lead = _a.lead;
27
- return (react_1.default.createElement("section", { id: "admissions", className: "overflow-hidden bg-white 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: "relative mb-16 grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4" },
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" }),
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 } },
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
- })()),
43
- react_1.default.createElement("div", { className: "mb-2 text-xs font-bold tracking-wider text-gray-400 uppercase" },
44
- "Step ",
45
- step.step),
46
- react_1.default.createElement("h3", { className: "mb-2 font-bold text-gray-900" }, step.title),
47
- react_1.default.createElement("p", { className: "text-sm leading-relaxed text-gray-500" }, step.description))); })),
48
- react_1.default.createElement("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-3" },
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 } },
50
- react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, keyDatesTitle),
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" },
52
- react_1.default.createElement("span", { className: "text-sm text-gray-700" }, item.event),
53
- react_1.default.createElement(badge_1.Badge, { className: statusStyles[item.status] }, item.date))); }))),
54
- react_1.default.createElement(framer_motion_1.motion.div, { className: "rounded-2xl bg-slate-50 p-6", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.1 }, viewport: { once: true } },
55
- react_1.default.createElement("h3", { className: "mb-4 text-lg font-bold text-gray-900" }, documentsTitle),
56
- react_1.default.createElement("ul", { className: "space-y-2" }, documentsRequired.map(function (doc) { return (react_1.default.createElement("li", { key: doc.id, className: "flex items-start gap-2 text-sm text-gray-600" },
57
- react_1.default.createElement(lucide_react_1.CheckCircle, { className: "mt-0.5 h-4 w-4 shrink-0 text-green-500" }),
58
- doc.content)); }))),
59
- react_1.default.createElement(framer_motion_1.motion.div, { className: "flex flex-col justify-between rounded-2xl bg-linear-to-br from-blue-800 to-blue-600 p-7 text-white", initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: 0.2 }, viewport: { once: true } },
60
- react_1.default.createElement("div", null,
61
- react_1.default.createElement("h3", { className: "mb-3 text-xl font-bold" }, "Ready to Join LGGS?"),
62
- react_1.default.createElement("p", { className: "mb-6 text-sm leading-relaxed text-blue-200" }, lead)),
63
- react_1.default.createElement("div", { className: "space-y-3" },
64
- react_1.default.createElement(button_1.Button, { className: "w-full bg-yellow-400 font-bold text-blue-900 hover:bg-yellow-300" },
65
- react_1.default.createElement(lucide_react_1.Download, { className: "mr-2 h-4 w-4" }),
66
- ctaDownloadLabel),
67
- react_1.default.createElement("div", { className: "space-y-2 border-t border-blue-700 pt-3" },
68
- react_1.default.createElement(link_1.default, { href: ctaPhoneHref, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
69
- react_1.default.createElement(lucide_react_1.Phone, { className: "h-4 w-4" }),
70
- " ",
71
- ctaPhoneLabel),
72
- react_1.default.createElement(link_1.default, { href: ctaEmailHref, className: "flex items-center gap-2 text-sm text-blue-200 transition-colors hover:text-white" },
73
- react_1.default.createElement(lucide_react_1.Mail, { className: "h-4 w-4" }),
74
- " ",
75
- ctaEmailLabel))))))));
76
- };
77
- exports.AdmissionsSection = AdmissionsSection;
@@ -1,3 +0,0 @@
1
- import { ContactData } from "../../data/school-v1";
2
- import { FC } from "react";
3
- export declare const ContactSection: FC<ContactData>;