@appcorp/shadcn 1.2.0 → 2.0.1

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 +1 -41
  2. package/components/audio.js +1 -21
  3. package/components/dashboard.js +1 -67
  4. package/components/drawer-generic.js +1 -47
  5. package/components/enhanced-checkbox.js +1 -86
  6. package/components/enhanced-combobox.js +1 -315
  7. package/components/enhanced-drawer-footer.js +1 -39
  8. package/components/enhanced-drawer-header.js +1 -15
  9. package/components/enhanced-dropzone-impl.d.ts +32 -0
  10. package/components/enhanced-dropzone-impl.js +1 -0
  11. package/components/enhanced-dropzone.d.ts +2 -63
  12. package/components/enhanced-dropzone.js +1 -296
  13. package/components/enhanced-input.js +1 -87
  14. package/components/enhanced-label.js +1 -68
  15. package/components/enhanced-radio.js +1 -23
  16. package/components/enhanced-select.js +1 -81
  17. package/components/enhanced-slider.js +1 -80
  18. package/components/enhanced-switch.js +1 -89
  19. package/components/enhanced-table-footer-action.js +1 -110
  20. package/components/enhanced-table-footer-page.js +1 -132
  21. package/components/enhanced-table-footer-pagination.js +1 -118
  22. package/components/enhanced-table-header-action.js +1 -40
  23. package/components/enhanced-table-header-search.js +1 -18
  24. package/components/enhanced-table.js +1 -329
  25. package/components/enhanced-textarea.js +1 -87
  26. package/components/field.d.ts +1 -1
  27. package/components/field.js +1 -153
  28. package/components/image-resize-dialog.js +1 -180
  29. package/components/nav-main.js +1 -86
  30. package/components/nav-projects.js +1 -50
  31. package/components/nav-user.js +1 -62
  32. package/components/show-toast.js +1 -11
  33. package/components/sidebar.d.ts +1 -1
  34. package/components/sidebar.js +1 -326
  35. package/components/team-switcher.js +1 -53
  36. package/components/theme-provider.js +1 -160
  37. package/components/timeline.js +1 -21
  38. package/components/tooltip.js +1 -85
  39. package/components/ui/accordion.js +1 -87
  40. package/components/ui/alert-dialog.js +1 -120
  41. package/components/ui/alert.d.ts +1 -1
  42. package/components/ui/alert.js +1 -90
  43. package/components/ui/area-chart-v1-impl.d.ts +19 -0
  44. package/components/ui/area-chart-v1-impl.js +1 -0
  45. package/components/ui/area-chart-v1.d.ts +2 -19
  46. package/components/ui/area-chart-v1.js +1 -114
  47. package/components/ui/aspect-ratio.js +1 -40
  48. package/components/ui/avatar.js +1 -80
  49. package/components/ui/badge.d.ts +2 -2
  50. package/components/ui/badge.js +1 -80
  51. package/components/ui/breadcrumb.js +1 -107
  52. package/components/ui/button.d.ts +2 -2
  53. package/components/ui/button.js +1 -92
  54. package/components/ui/calendar-impl.d.ts +8 -0
  55. package/components/ui/calendar-impl.js +1 -0
  56. package/components/ui/calendar.d.ts +2 -8
  57. package/components/ui/calendar.js +1 -109
  58. package/components/ui/card.js +1 -96
  59. package/components/ui/carousel-impl.d.ts +18 -0
  60. package/components/ui/carousel-impl.js +1 -0
  61. package/components/ui/carousel.d.ts +6 -18
  62. package/components/ui/carousel.js +1 -171
  63. package/components/ui/chart-impl.d.ts +62 -0
  64. package/components/ui/chart-impl.js +7 -0
  65. package/components/ui/chart.d.ts +7 -62
  66. package/components/ui/chart.js +1 -220
  67. package/components/ui/checkbox.js +1 -71
  68. package/components/ui/collapsible.js +1 -44
  69. package/components/ui/combobox.js +1 -88
  70. package/components/ui/command-impl.d.ts +80 -0
  71. package/components/ui/command-impl.js +1 -0
  72. package/components/ui/command.d.ts +9 -80
  73. package/components/ui/command.js +1 -118
  74. package/components/ui/context-menu.js +1 -141
  75. package/components/ui/dialog.js +1 -113
  76. package/components/ui/drawer-impl.d.ts +22 -0
  77. package/components/ui/drawer-impl.js +1 -0
  78. package/components/ui/drawer.d.ts +10 -22
  79. package/components/ui/drawer.js +1 -112
  80. package/components/ui/dropdown-menu.js +1 -143
  81. package/components/ui/form.d.ts +4 -2
  82. package/components/ui/form.js +1 -132
  83. package/components/ui/hover-card.js +1 -72
  84. package/components/ui/input-otp-impl.d.ts +34 -0
  85. package/components/ui/input-otp-impl.js +1 -0
  86. package/components/ui/input-otp.d.ts +4 -34
  87. package/components/ui/input-otp.js +1 -93
  88. package/components/ui/input.js +1 -66
  89. package/components/ui/label.d.ts +1 -1
  90. package/components/ui/label.js +1 -70
  91. package/components/ui/language-selector.js +1 -63
  92. package/components/ui/menubar.js +1 -165
  93. package/components/ui/navigation-menu.d.ts +1 -1
  94. package/components/ui/navigation-menu.js +1 -114
  95. package/components/ui/pagination.js +1 -113
  96. package/components/ui/popover.js +1 -75
  97. package/components/ui/progress.js +1 -69
  98. package/components/ui/radio-group.js +1 -77
  99. package/components/ui/resizable-impl.d.ts +24 -0
  100. package/components/ui/resizable-impl.js +1 -0
  101. package/components/ui/resizable.d.ts +3 -24
  102. package/components/ui/resizable.js +1 -79
  103. package/components/ui/scroll-area.js +1 -80
  104. package/components/ui/select.js +1 -127
  105. package/components/ui/separator.js +1 -68
  106. package/components/ui/sheet.d.ts +1 -1
  107. package/components/ui/sheet.js +1 -127
  108. package/components/ui/skeleton.js +1 -34
  109. package/components/ui/slider.js +1 -79
  110. package/components/ui/sonner.js +1 -45
  111. package/components/ui/switch.js +1 -69
  112. package/components/ui/table.js +1 -109
  113. package/components/ui/tabs.js +1 -82
  114. package/components/ui/textarea.js +1 -66
  115. package/components/ui/theme-switcher.js +1 -152
  116. package/components/ui/toggle.d.ts +2 -2
  117. package/components/ui/toggle.js +1 -87
  118. package/data/admin-dashboard.js +1 -304
  119. package/hooks/use-enhanced-combobox.js +1 -150
  120. package/hooks/use-mobile.js +1 -51
  121. package/hooks/use-outside-click.js +1 -23
  122. package/lib/themes.js +1 -150
  123. package/lib/toast-utils.js +1 -212
  124. package/lib/utils.js +1 -12
  125. package/package.json +9 -90
  126. package/utils/transform-breadcrumbs.js +1 -11
  127. package/utils/transform-navitems.js +1 -33
  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,263 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __assign = (this && this.__assign) || function () {
4
- __assign = Object.assign || function(t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
- t[p] = s[p];
9
- }
10
- return t;
11
- };
12
- return __assign.apply(this, arguments);
13
- };
14
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- var desc = Object.getOwnPropertyDescriptor(m, k);
17
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
- desc = { enumerable: true, get: function() { return m[k]; } };
19
- }
20
- Object.defineProperty(o, k2, desc);
21
- }) : (function(o, m, k, k2) {
22
- if (k2 === undefined) k2 = k;
23
- o[k2] = m[k];
24
- }));
25
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
- Object.defineProperty(o, "default", { enumerable: true, value: v });
27
- }) : function(o, v) {
28
- o["default"] = v;
29
- });
30
- var __importStar = (this && this.__importStar) || (function () {
31
- var ownKeys = function(o) {
32
- ownKeys = Object.getOwnPropertyNames || function (o) {
33
- var ar = [];
34
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
- return ar;
36
- };
37
- return ownKeys(o);
38
- };
39
- return function (mod) {
40
- if (mod && mod.__esModule) return mod;
41
- var result = {};
42
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
- __setModuleDefault(result, mod);
44
- return result;
45
- };
46
- })();
47
- var __rest = (this && this.__rest) || function (s, e) {
48
- var t = {};
49
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
- t[p] = s[p];
51
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
53
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
54
- t[p[i]] = s[p[i]];
55
- }
56
- return t;
57
- };
58
- Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.BlurImage = exports.Card = exports.AppleCardsCarouselMobileControls = exports.AppleCardsCarousel = exports.CarouselContext = void 0;
60
- var react_1 = __importStar(require("react"));
61
- var react_dom_1 = require("react-dom");
62
- var icons_react_1 = require("@tabler/icons-react");
63
- var utils_1 = require("@/lib/utils");
64
- var react_2 = require("motion/react");
65
- var use_outside_click_1 = require("@/hooks/use-outside-click");
66
- exports.CarouselContext = (0, react_1.createContext)({
67
- onCardClose: function () { },
68
- currentIndex: 0,
69
- });
70
- var AppleCardsCarousel = function (_a) {
71
- var items = _a.items, _b = _a.initialScroll, initialScroll = _b === void 0 ? 0 : _b;
72
- var carouselRef = react_1.default.useRef(null);
73
- var _c = react_1.default.useState(false), canScrollLeft = _c[0], setCanScrollLeft = _c[1];
74
- var _d = react_1.default.useState(true), canScrollRight = _d[0], setCanScrollRight = _d[1];
75
- var _e = (0, react_1.useState)(0), currentIndex = _e[0], setCurrentIndex = _e[1];
76
- (0, react_1.useEffect)(function () {
77
- if (carouselRef.current) {
78
- carouselRef.current.scrollLeft = initialScroll;
79
- checkScrollability();
80
- }
81
- }, [initialScroll]);
82
- (0, react_1.useEffect)(function () {
83
- // Ensure control enabled/disabled state is correct on mount and resize
84
- try {
85
- checkScrollability();
86
- }
87
- catch (_a) {
88
- /* ignore if DOM not yet ready */
89
- }
90
- var onResize = function () { return checkScrollability(); };
91
- window.addEventListener("resize", onResize);
92
- return function () { return window.removeEventListener("resize", onResize); };
93
- }, []);
94
- // mounted flag for portal rendering
95
- var _f = (0, react_1.useState)(false), isMounted = _f[0], setIsMounted = _f[1];
96
- (0, react_1.useEffect)(function () {
97
- setIsMounted(true);
98
- return function () { return setIsMounted(false); };
99
- }, []);
100
- // controls position (viewport-fixed coords) for mobile portal
101
- var _g = (0, react_1.useState)(null), controlsPos = _g[0], setControlsPos = _g[1];
102
- var updateControlsPosition = function () {
103
- var el = carouselRef.current;
104
- if (!el)
105
- return;
106
- var rect = el.getBoundingClientRect();
107
- // Compute viewport-based coords (use getBoundingClientRect directly)
108
- // Compute viewport-based coords so controls appear under the cards on the right
109
- var pad = 12;
110
- var offset = 8; // px below the carousel
111
- // Position fixed: distance from viewport right edge to align with carousel right
112
- var right = Math.max(pad, window.innerWidth - rect.right + pad);
113
- var top = rect.bottom + offset;
114
- top = Math.max(pad, Math.min(top, window.innerHeight - pad));
115
- setControlsPos({ right: right, top: top });
116
- };
117
- (0, react_1.useEffect)(function () {
118
- updateControlsPosition();
119
- var onResize = function () { return updateControlsPosition(); };
120
- var onScroll = function () { return updateControlsPosition(); };
121
- window.addEventListener("resize", onResize);
122
- window.addEventListener("scroll", onScroll, { passive: true });
123
- return function () {
124
- window.removeEventListener("resize", onResize);
125
- window.removeEventListener("scroll", onScroll);
126
- };
127
- }, [carouselRef.current]);
128
- var checkScrollability = function () {
129
- if (carouselRef.current) {
130
- var _a = carouselRef.current, scrollLeft_1 = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
131
- setCanScrollLeft(scrollLeft_1 > 0);
132
- setCanScrollRight(scrollLeft_1 < scrollWidth - clientWidth);
133
- }
134
- };
135
- var scrollLeft = function () {
136
- if (carouselRef.current) {
137
- carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
138
- }
139
- };
140
- var scrollRight = function () {
141
- if (carouselRef.current) {
142
- carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
143
- }
144
- };
145
- var handleCardClose = function (index) {
146
- if (carouselRef.current) {
147
- var cardWidth = isMobile() ? 230 : 384; // (md:w-96)
148
- var gap = isMobile() ? 4 : 8;
149
- var scrollPosition = (cardWidth + gap) * (index + 1);
150
- carouselRef.current.scrollTo({
151
- left: scrollPosition,
152
- behavior: "smooth",
153
- });
154
- setCurrentIndex(index);
155
- }
156
- };
157
- var isMobile = function () {
158
- return window && window.innerWidth < 768;
159
- };
160
- return (react_1.default.createElement(exports.CarouselContext.Provider, { value: { onCardClose: handleCardClose, currentIndex: currentIndex } },
161
- react_1.default.createElement("div", { className: "relative w-full h-auto" },
162
- react_1.default.createElement("div", { className: "flex w-full overflow-x-scroll overscroll-x-auto scroll-smooth py-10 [scrollbar-width:none] md:py-20", ref: carouselRef, onScroll: checkScrollability },
163
- react_1.default.createElement("div", { className: (0, utils_1.cn)("absolute right-0 z-[1000] h-auto w-[5%] overflow-hidden bg-gradient-to-l") }),
164
- react_1.default.createElement("div", { className: (0, utils_1.cn)("flex flex-row justify-start gap-4 pl-4", "mx-auto max-w-7xl" // remove max-w-4xl if you want the carousel to span the full width of its container
165
- ) }, items.map(function (item, index) { return (react_1.default.createElement(react_2.motion.div, { initial: {
166
- opacity: 0,
167
- y: 20,
168
- }, animate: {
169
- opacity: 1,
170
- y: 0,
171
- transition: {
172
- duration: 0.5,
173
- delay: 0.2 * index,
174
- ease: "easeOut",
175
- },
176
- }, viewport: { once: true }, key: "card" + index, className: "rounded-3xl last:pr-[5%] md:last:pr-[33%]" }, item)); }))),
177
- react_1.default.createElement("div", { className: "hidden md:flex mr-10 justify-end gap-2" },
178
- react_1.default.createElement("button", { className: "relative z-40 flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 disabled:opacity-50", onClick: scrollLeft, disabled: !canScrollLeft, "aria-label": "Scroll left" },
179
- react_1.default.createElement(icons_react_1.IconArrowNarrowLeft, { className: "h-6 w-6 text-gray-500" })),
180
- react_1.default.createElement("button", { className: "relative z-40 flex h-10 w-10 items-center justify-center rounded-full bg-gray-100 disabled:opacity-50", onClick: scrollRight, disabled: !canScrollRight, "aria-label": "Scroll right" },
181
- react_1.default.createElement(icons_react_1.IconArrowNarrowRight, { className: "h-6 w-6 text-gray-500" }))),
182
- isMounted && (react_1.default.createElement(exports.AppleCardsCarouselMobileControls, { canScrollLeft: canScrollLeft, canScrollRight: canScrollRight, onLeft: scrollLeft, onRight: scrollRight, mounted: isMounted, coords: controlsPos })))));
183
- };
184
- exports.AppleCardsCarousel = AppleCardsCarousel;
185
- // Render mobile controls via portal so fixed positioning isn't clipped
186
- // Portal is placed after component to avoid SSR issues (renders only on mount)
187
- var AppleCardsCarouselMobileControls = function (_a) {
188
- var canScrollLeft = _a.canScrollLeft, canScrollRight = _a.canScrollRight, onLeft = _a.onLeft, onRight = _a.onRight, mounted = _a.mounted, coords = _a.coords;
189
- if (!mounted || typeof document === "undefined")
190
- return null;
191
- var fallbackStyle = {
192
- position: "fixed",
193
- left: "50%",
194
- bottom: "calc(env(safe-area-inset-bottom, 0px) + 1rem)",
195
- transform: "translateX(-50%)",
196
- };
197
- var positionedStyle = coords
198
- ? {
199
- position: "fixed",
200
- right: coords.right,
201
- top: coords.top,
202
- }
203
- : undefined;
204
- return (0, react_dom_1.createPortal)(react_1.default.createElement("div", { className: "z-50 flex gap-2 md:hidden", style: positionedStyle !== null && positionedStyle !== void 0 ? positionedStyle : fallbackStyle },
205
- react_1.default.createElement("button", { className: "relative z-40 flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 disabled:opacity-50", onClick: onLeft, disabled: !canScrollLeft, "aria-label": "Scroll left" },
206
- react_1.default.createElement(icons_react_1.IconArrowNarrowLeft, { className: "h-6 w-6 text-gray-500" })),
207
- react_1.default.createElement("button", { className: "relative z-40 flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 disabled:opacity-50", onClick: onRight, disabled: !canScrollRight, "aria-label": "Scroll right" },
208
- react_1.default.createElement(icons_react_1.IconArrowNarrowRight, { className: "h-6 w-6 text-gray-500" }))), document.body);
209
- };
210
- exports.AppleCardsCarouselMobileControls = AppleCardsCarouselMobileControls;
211
- var Card = function (_a) {
212
- var card = _a.card, index = _a.index, _b = _a.layout, layout = _b === void 0 ? false : _b;
213
- var _c = (0, react_1.useState)(false), open = _c[0], setOpen = _c[1];
214
- var containerRef = (0, react_1.useRef)(null);
215
- var onCardClose = (0, react_1.useContext)(exports.CarouselContext).onCardClose;
216
- (0, react_1.useEffect)(function () {
217
- function onKeyDown(event) {
218
- if (event.key === "Escape") {
219
- handleClose();
220
- }
221
- }
222
- if (open) {
223
- document.body.style.overflow = "hidden";
224
- }
225
- else {
226
- document.body.style.overflow = "auto";
227
- }
228
- window.addEventListener("keydown", onKeyDown);
229
- return function () { return window.removeEventListener("keydown", onKeyDown); };
230
- }, [open]);
231
- (0, use_outside_click_1.useOutsideClick)(containerRef, function () {
232
- return handleClose();
233
- });
234
- var handleOpen = function () {
235
- setOpen(true);
236
- };
237
- var handleClose = function () {
238
- setOpen(false);
239
- onCardClose(index);
240
- };
241
- return (react_1.default.createElement(react_1.default.Fragment, null,
242
- react_1.default.createElement(react_2.AnimatePresence, null, open && (react_1.default.createElement("div", { className: "fixed inset-0 z-50 h-screen overflow-auto" },
243
- react_1.default.createElement(react_2.motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, className: "fixed inset-0 h-full w-full bg-black/80 backdrop-blur-lg" }),
244
- react_1.default.createElement(react_2.motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, ref: containerRef, layoutId: layout ? "card-".concat(card.title) : undefined, className: "relative z-[60] mx-auto my-10 h-fit max-w-5xl rounded-3xl bg-white p-4 font-sans md:p-10 dark:bg-neutral-900" },
245
- react_1.default.createElement("button", { className: "sticky top-4 right-0 ml-auto flex h-8 w-8 items-center justify-center rounded-full bg-black dark:bg-white", onClick: handleClose },
246
- react_1.default.createElement(icons_react_1.IconX, { className: "h-6 w-6 text-neutral-100 dark:text-neutral-900" })),
247
- react_1.default.createElement(react_2.motion.p, { layoutId: layout ? "category-".concat(card.title) : undefined, className: "text-base font-medium text-black dark:text-white" }, card.category),
248
- react_1.default.createElement(react_2.motion.p, { layoutId: layout ? "title-".concat(card.title) : undefined, className: "mt-4 text-2xl font-semibold text-neutral-700 md:text-5xl dark:text-white" }, card.title),
249
- react_1.default.createElement("div", { className: "py-10" }, card.content))))),
250
- react_1.default.createElement(react_2.motion.button, { layoutId: layout ? "card-".concat(card.title) : undefined, onClick: handleOpen, className: "relative z-10 flex h-80 w-56 flex-col items-start justify-start overflow-hidden rounded-3xl bg-gray-100 md:h-[40rem] md:w-96 dark:bg-neutral-900" },
251
- react_1.default.createElement("div", { className: "pointer-events-none absolute inset-x-0 top-0 z-30 h-full bg-gradient-to-b from-black/50 via-transparent to-transparent" }),
252
- react_1.default.createElement("div", { className: "relative z-40 p-8" },
253
- react_1.default.createElement(react_2.motion.p, { layoutId: layout ? "category-".concat(card.category) : undefined, className: "text-left font-sans text-sm font-medium text-white md:text-base" }, card.category),
254
- react_1.default.createElement(react_2.motion.p, { layoutId: layout ? "title-".concat(card.title) : undefined, className: "mt-2 max-w-xs text-left font-sans text-xl font-semibold [text-wrap:balance] text-white md:text-3xl" }, card.title)),
255
- react_1.default.createElement(exports.BlurImage, { src: card.src, alt: card.title, fill: true, className: "absolute inset-0 z-10 object-cover" }))));
256
- };
257
- exports.Card = Card;
258
- var BlurImage = function (_a) {
259
- var height = _a.height, width = _a.width, src = _a.src, className = _a.className, alt = _a.alt, rest = __rest(_a, ["height", "width", "src", "className", "alt"]);
260
- var _b = (0, react_1.useState)(true), isLoading = _b[0], setLoading = _b[1];
261
- return (react_1.default.createElement("img", __assign({ className: (0, utils_1.cn)("h-full w-full transition duration-300", isLoading ? "blur-sm" : "blur-0", className), onLoad: function () { return setLoading(false); }, src: src, width: width, height: height, loading: "lazy", decoding: "async", blurDataURL: typeof src === "string" ? src : undefined, alt: alt ? alt : "Background of a beautiful view" }, rest)));
262
- };
263
- exports.BlurImage = BlurImage;
@@ -1,11 +0,0 @@
1
- import type { ChangeEvent, FC, FormEvent } from "react";
2
- import type { UIMessage as Message } from "@ai-sdk/react";
3
- interface ChatInterfaceProps {
4
- messages: Message[];
5
- input: string;
6
- handleInputChange: (e: ChangeEvent<HTMLInputElement>) => void;
7
- handleSubmit: (e: FormEvent<HTMLFormElement>) => void;
8
- isLoading: boolean;
9
- }
10
- export declare const ChatInterface: FC<ChatInterfaceProps>;
11
- export {};
@@ -1,70 +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.ChatInterface = void 0;
8
- var react_1 = __importDefault(require("react"));
9
- var button_1 = require("../../../components/ui/button");
10
- var input_1 = require("../../../components/ui/input");
11
- var scroll_area_1 = require("../../../components/ui/scroll-area");
12
- var avatar_1 = require("../../../components/ui/avatar");
13
- var lucide_react_1 = require("lucide-react");
14
- function getMessageText(message) {
15
- // UIMessage uses `parts` with text parts having { type: 'text', text }
16
- var parts = message.parts || [];
17
- return parts
18
- .filter(function (p) { return (p === null || p === void 0 ? void 0 : p.type) === "text"; })
19
- .map(function (p) { return p.text; })
20
- .join("");
21
- }
22
- var ChatInterface = function (_a) {
23
- var messages = _a.messages, input = _a.input, handleInputChange = _a.handleInputChange, handleSubmit = _a.handleSubmit, isLoading = _a.isLoading;
24
- return (react_1.default.createElement("div", { className: "flex flex-1 flex-col min-h-0" },
25
- react_1.default.createElement(scroll_area_1.ScrollArea, { className: "flex-1 min-h-0 h-full p-4 block" },
26
- react_1.default.createElement("div", { className: "mx-auto max-w-6xl space-y-6 flex-1 min-h-0 flex flex-col justify-end h-full" },
27
- messages.map(function (message) { return (react_1.default.createElement("div", { key: message.id, className: "flex gap-4" }, message.role === "user" ? (react_1.default.createElement(react_1.default.Fragment, null,
28
- react_1.default.createElement("div", { className: "flex-1" },
29
- react_1.default.createElement("div", { className: "bg-muted rounded-lg p-4" },
30
- react_1.default.createElement("p", null, getMessageText(message)))),
31
- react_1.default.createElement(avatar_1.Avatar, null,
32
- react_1.default.createElement(avatar_1.AvatarImage, { src: "/placeholder.svg?height=32&width=32" }),
33
- react_1.default.createElement(avatar_1.AvatarFallback, null, "JD")))) : (react_1.default.createElement(react_1.default.Fragment, null,
34
- react_1.default.createElement(avatar_1.Avatar, null,
35
- react_1.default.createElement(avatar_1.AvatarFallback, { className: "bg-blue-500" }, "AI")),
36
- react_1.default.createElement("div", { className: "flex-1" },
37
- react_1.default.createElement("div", { className: "bg-muted rounded-lg border p-4" },
38
- react_1.default.createElement("p", { className: "mb-4" }, getMessageText(message)),
39
- react_1.default.createElement("div", { className: "flex items-center gap-2" },
40
- react_1.default.createElement(button_1.Button, { variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
41
- react_1.default.createElement(lucide_react_1.Copy, { className: "h-4 w-4" })),
42
- react_1.default.createElement(button_1.Button, { variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
43
- react_1.default.createElement(lucide_react_1.Share, { className: "h-4 w-4" })),
44
- react_1.default.createElement("div", { className: "ml-auto flex items-center gap-1" },
45
- react_1.default.createElement(button_1.Button, { variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
46
- react_1.default.createElement(lucide_react_1.ThumbsDown, { className: "h-4 w-4" })),
47
- react_1.default.createElement(button_1.Button, { variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
48
- react_1.default.createElement(lucide_react_1.ThumbsUp, { className: "h-4 w-4" })))))))))); }),
49
- isLoading && (react_1.default.createElement("div", { className: "flex gap-4" },
50
- react_1.default.createElement(avatar_1.Avatar, { className: "h-8 w-8" },
51
- react_1.default.createElement(avatar_1.AvatarFallback, { className: "bg-blue-500" }, "AI")),
52
- react_1.default.createElement("div", { className: "flex-1" },
53
- react_1.default.createElement("div", { className: "bg-muted rounded-lg border p-4" },
54
- react_1.default.createElement("div", { className: "flex items-center gap-2" },
55
- react_1.default.createElement("div", { className: "bg-muted h-2 w-2 animate-bounce rounded-full" }),
56
- react_1.default.createElement("div", { className: "bg-muted h-2 w-2 animate-bounce rounded-full", style: { animationDelay: "0.1s" } }),
57
- react_1.default.createElement("div", { className: "bg-muted h-2 w-2 animate-bounce rounded-full", style: { animationDelay: "0.2s" } })))))))),
58
- react_1.default.createElement("div", { className: "border-t px-4 py-2" },
59
- react_1.default.createElement("div", { className: "mx-auto max-w-6xl" },
60
- react_1.default.createElement("form", { onSubmit: handleSubmit, className: "relative" },
61
- react_1.default.createElement("div", { className: "bg-muted flex items-center gap-2 rounded-lg border p-2" },
62
- react_1.default.createElement(button_1.Button, { type: "button", variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
63
- react_1.default.createElement(lucide_react_1.Paperclip, { className: "h-4 w-4" })),
64
- react_1.default.createElement(input_1.Input, { value: input, onChange: handleInputChange, placeholder: "Ask me anything...", className: "flex-1 border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0", disabled: isLoading }),
65
- react_1.default.createElement(button_1.Button, { type: "button", variant: "ghost", size: "sm", className: "h-8 w-8 p-0" },
66
- react_1.default.createElement(lucide_react_1.Mic, { className: "h-4 w-4" })),
67
- react_1.default.createElement(button_1.Button, { type: "submit", size: "sm", disabled: !input.trim() || isLoading, className: "h-8 w-8 p-0" },
68
- react_1.default.createElement(lucide_react_1.Send, { className: "h-4 w-4" }))))))));
69
- };
70
- exports.ChatInterface = ChatInterface;
@@ -1,38 +0,0 @@
1
- import React from "react";
2
- import { Suggestion } from "./welcome-section";
3
- import { UIMessage, UseChatHelpers } from "@ai-sdk/react";
4
- export interface Message {
5
- id: string;
6
- role: "user" | "assistant";
7
- parts: {
8
- type: "text";
9
- text: string;
10
- }[];
11
- }
12
- export interface Chat {
13
- id: string;
14
- title: string;
15
- preview: string;
16
- timestamp: Date;
17
- messages: Message[];
18
- }
19
- type AiChatProps = {
20
- initialSelectedChatId?: string | null;
21
- username?: string;
22
- chats: Chat[];
23
- suggestions: Suggestion[];
24
- selectedChatId: string;
25
- onSelectedChatIdChange: (chatId: string) => void;
26
- chat: UseChatHelpers<UIMessage<unknown, Record<string, unknown>, Record<string, {
27
- input: unknown;
28
- output: unknown | undefined;
29
- }>>>;
30
- completion: {
31
- input: string;
32
- handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
33
- handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
34
- isLoading: boolean;
35
- };
36
- };
37
- export declare const AiChat: ({ chat, chats, completion, onSelectedChatIdChange, selectedChatId, suggestions, username, }: AiChatProps) => React.JSX.Element;
38
- export {};
@@ -1,66 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.AiChat = void 0;
38
- var react_1 = __importStar(require("react"));
39
- var sidebar_1 = require("./sidebar");
40
- var welcome_section_1 = require("./welcome-section");
41
- var chat_interface_1 = require("./chat-interface");
42
- var AiChat = function (_a) {
43
- var chat = _a.chat, chats = _a.chats, completion = _a.completion, onSelectedChatIdChange = _a.onSelectedChatIdChange, selectedChatId = _a.selectedChatId, suggestions = _a.suggestions, _b = _a.username, username = _b === void 0 ? "Guest" : _b;
44
- var messages = chat.messages, setMessages = chat.setMessages;
45
- (0, react_1.useEffect)(function () {
46
- var _a;
47
- setMessages(((_a = chats.find(function (chat) { return chat.id === selectedChatId; })) === null || _a === void 0 ? void 0 : _a.messages) || []);
48
- }, [selectedChatId, chats, setMessages]);
49
- // Completion handlers are provided by the story via props.
50
- var input = completion.input, handleInputChange = completion.handleInputChange, handleSubmit = completion.handleSubmit, isLoading = completion.isLoading;
51
- var handleNewChat = function () {
52
- onSelectedChatIdChange("");
53
- // Reset chat messages would happen here in a real app
54
- };
55
- var handleSelectChat = function (chatId) {
56
- onSelectedChatIdChange(chatId);
57
- };
58
- var handleSuggestionClick = function () {
59
- // In a real app, this would start a new chat with the suggestion
60
- onSelectedChatIdChange("new");
61
- };
62
- return (react_1.default.createElement("div", { className: "flex h-screen" },
63
- react_1.default.createElement(sidebar_1.Sidebar, { chats: chats, selectedChatId: selectedChatId, onNewChat: handleNewChat, onSelectChat: handleSelectChat }),
64
- react_1.default.createElement("div", { className: "flex flex-1 flex-col" }, !selectedChatId ? (react_1.default.createElement(welcome_section_1.WelcomeSection, { username: username, onSuggestionClick: handleSuggestionClick, suggestions: suggestions })) : (react_1.default.createElement(chat_interface_1.ChatInterface, { messages: messages, input: input, handleInputChange: handleInputChange, handleSubmit: handleSubmit, isLoading: isLoading })))));
65
- };
66
- exports.AiChat = AiChat;
@@ -1,15 +0,0 @@
1
- import { FC } from "react";
2
- interface Chat {
3
- id: string;
4
- title: string;
5
- preview: string;
6
- timestamp: Date;
7
- }
8
- interface SidebarProps {
9
- chats: Chat[];
10
- selectedChatId: string | null;
11
- onNewChat: () => void;
12
- onSelectChat: (chatId: string) => void;
13
- }
14
- export declare const Sidebar: FC<SidebarProps>;
15
- export {};
@@ -1,68 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.Sidebar = void 0;
38
- var react_1 = __importStar(require("react"));
39
- var button_1 = require("../../../components/ui/button");
40
- var input_1 = require("../../../components/ui/input");
41
- var scroll_area_1 = require("../../../components/ui/scroll-area");
42
- var lucide_react_1 = require("lucide-react");
43
- var utils_1 = require("../../../lib/utils");
44
- var Sidebar = function (_a) {
45
- var chats = _a.chats, selectedChatId = _a.selectedChatId, onNewChat = _a.onNewChat, onSelectChat = _a.onSelectChat;
46
- var _b = (0, react_1.useState)(""), searchQuery = _b[0], setSearchQuery = _b[1];
47
- var filteredChats = chats.filter(function (chat) {
48
- return chat.title.toLowerCase().includes(searchQuery.toLowerCase()) ||
49
- chat.preview.toLowerCase().includes(searchQuery.toLowerCase());
50
- });
51
- return (react_1.default.createElement("div", { className: "bg-muted flex justify-between w-80 flex-col border-r" },
52
- react_1.default.createElement("div", { className: "border-b p-4" },
53
- react_1.default.createElement(input_1.Input, { placeholder: "Search chats...", value: searchQuery, onChange: function (e) { return setSearchQuery(e.target.value); }, className: "text-sm" })),
54
- react_1.default.createElement("div", { className: "flex min-h-0 flex-col h-full" },
55
- react_1.default.createElement("div", { className: "flex-1 overflow-hidden" },
56
- react_1.default.createElement(scroll_area_1.ScrollArea, { className: "h-full" },
57
- react_1.default.createElement("div", { className: "space-y-2 p-4" }, filteredChats.map(function (chat) { return (react_1.default.createElement(button_1.Button, { key: chat.id, variant: "ghost", onClick: function () { return onSelectChat(chat.id); }, className: (0, utils_1.cn)("h-auto w-full justify-start p-3 text-left hover:primary-100 odd:bg-gray-200 even:bg-gray-300", selectedChatId === chat.id && "bg-gray-100") },
58
- react_1.default.createElement("div", { className: "flex w-full items-start gap-2" },
59
- react_1.default.createElement(lucide_react_1.MessageCircle, { className: "mt-0.5 h-4 w-4 flex-shrink-0 text-gray-400" }),
60
- react_1.default.createElement("div", { className: "min-w-0 flex-1" },
61
- react_1.default.createElement("div", { className: "truncate text-sm font-medium" }, chat.title),
62
- react_1.default.createElement("div", { className: "text-muted-foreground mt-0.5 truncate text-xs" }, chat.preview))))); }))))),
63
- react_1.default.createElement("div", { className: "space-y-1 border border-t p-4" },
64
- react_1.default.createElement(button_1.Button, { className: "w-full", onClick: onNewChat },
65
- react_1.default.createElement(lucide_react_1.Plus, null),
66
- "New Chat"))));
67
- };
68
- exports.Sidebar = Sidebar;
@@ -1,12 +0,0 @@
1
- import { FC } from "react";
2
- export interface Suggestion {
3
- title: string;
4
- category: string;
5
- }
6
- interface WelcomeScreenProps {
7
- onSuggestionClick: (suggestion: string) => void;
8
- suggestions: Suggestion[];
9
- username: string;
10
- }
11
- export declare const WelcomeSection: FC<WelcomeScreenProps>;
12
- export {};
@@ -1,26 +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.WelcomeSection = void 0;
8
- var react_1 = __importDefault(require("react"));
9
- var button_1 = require("../../../components/ui/button");
10
- var lucide_react_1 = require("lucide-react");
11
- var WelcomeSection = function (_a) {
12
- var onSuggestionClick = _a.onSuggestionClick, suggestions = _a.suggestions, username = _a.username;
13
- return (react_1.default.createElement("div", { className: "mx-auto flex max-w-4xl flex-1 flex-col items-center justify-center p-8" },
14
- react_1.default.createElement("div", { className: "mb-12 text-center" },
15
- react_1.default.createElement("h1", { className: "mb-4 text-6xl font-bold" },
16
- react_1.default.createElement("span", { className: "bg-gradient-to-r from-pink-500 via-red-500 to-red-600 bg-clip-text text-transparent" },
17
- "Welcome, ",
18
- username)),
19
- react_1.default.createElement("p", { className: "text-muted-foreground text-xl" }, "How can I assist you today?")),
20
- react_1.default.createElement("div", { className: "grid w-full max-w-4xl grid-cols-1 gap-4 md:grid-cols-2" }, suggestions.map(function (suggestion, index) { return (react_1.default.createElement(button_1.Button, { className: "group h-auto border-gray-200 p-6 text-left hover:bg-gray-50 cursor-pointer", key: index, onClick: function () { return onSuggestionClick(suggestion.title); }, variant: "outline" },
21
- react_1.default.createElement("div", { className: "flex w-full items-start justify-between" },
22
- react_1.default.createElement("div", { className: "flex-1 pr-4" },
23
- react_1.default.createElement("p", { className: "text-muted-foreground text-sm leading-relaxed text-wrap" }, suggestion.title)),
24
- react_1.default.createElement(lucide_react_1.ArrowUpRight, { className: "group-hover:text-primary text-muted-foreground h-4 w-4 flex-shrink-0" })))); }))));
25
- };
26
- exports.WelcomeSection = WelcomeSection;
@@ -1,24 +0,0 @@
1
- import React, { FC } from "react";
2
- export interface AuthenticationProps {
3
- avatars: {
4
- image: string;
5
- alt: string;
6
- }[];
7
- backgroundImage: string;
8
- description: string;
9
- email: string;
10
- handleEmailOnChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
11
- handleOnClickTopCta?: () => void;
12
- handleOnSubmit?: (event: React.SyntheticEvent) => void;
13
- handlePasswordOnChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
14
- heading: string;
15
- isLoading: boolean;
16
- logo: string;
17
- logoAlt: string;
18
- numberOfCustomers: string;
19
- password: string;
20
- privacyLink: string;
21
- termsLink: string;
22
- topCtaLabel?: string;
23
- }
24
- export declare const Authentication: FC<AuthenticationProps>;