katalyst-riya-test 0.1.1 → 0.1.3

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 (50) hide show
  1. package/dist/index.cjs +964 -0
  2. package/dist/index.css +1940 -0
  3. package/dist/index.d.cts +258 -0
  4. package/dist/index.d.ts +258 -0
  5. package/dist/index.js +896 -0
  6. package/package.json +48 -20
  7. package/.eslintrc.cjs +0 -38
  8. package/.eslintrc.json +0 -3
  9. package/.prettierrc +0 -9
  10. package/next.config.ts +0 -7
  11. package/postcss.config.mjs +0 -8
  12. package/public/ImgPlaceholder.svg +0 -9
  13. package/public/assets/image.png +0 -0
  14. package/public/assets/image2.png +0 -0
  15. package/public/file.svg +0 -1
  16. package/public/globe.svg +0 -1
  17. package/public/next.svg +0 -1
  18. package/public/vercel.svg +0 -1
  19. package/public/window.svg +0 -1
  20. package/src/app/Test.tsx +0 -1256
  21. package/src/app/favicon.ico +0 -0
  22. package/src/app/font.ts +0 -13
  23. package/src/app/globals.css +0 -42
  24. package/src/app/index.ts +0 -2
  25. package/src/app/layout.tsx +0 -30
  26. package/src/app/page.tsx +0 -11
  27. package/src/components/Accordion.tsx +0 -136
  28. package/src/components/Button.tsx +0 -75
  29. package/src/components/Caption.tsx +0 -31
  30. package/src/components/Card.tsx +0 -71
  31. package/src/components/Checkbox.tsx +0 -61
  32. package/src/components/Chip.tsx +0 -73
  33. package/src/components/Dropdown.tsx +0 -110
  34. package/src/components/Footer.tsx +0 -134
  35. package/src/components/ImageCard.tsx +0 -45
  36. package/src/components/Input.tsx +0 -54
  37. package/src/components/Label.tsx +0 -52
  38. package/src/components/ListItem.tsx +0 -94
  39. package/src/components/Navigation.tsx +0 -11
  40. package/src/components/Paragraph.tsx +0 -41
  41. package/src/components/Slider.tsx +0 -77
  42. package/src/components/StatsCard.tsx +0 -39
  43. package/src/components/Textarea.tsx +0 -54
  44. package/src/components/Toggle.tsx +0 -66
  45. package/src/components/Typography.tsx +0 -50
  46. package/src/components/index.ts +0 -38
  47. package/src/context/ThemeContext.tsx +0 -47
  48. package/src/utils/util.ts +0 -5
  49. package/tailwind.config.ts +0 -79
  50. package/tsconfig.json +0 -42
package/dist/index.cjs ADDED
@@ -0,0 +1,964 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/app/index.ts
31
+ var app_exports = {};
32
+ __export(app_exports, {
33
+ Accordion: () => Accordion,
34
+ AccordionContent: () => AccordionContent,
35
+ AccordionItem: () => AccordionItem,
36
+ AccordionTrigger: () => AccordionTrigger,
37
+ Button: () => Button_default,
38
+ Caption: () => Caption_default,
39
+ Card: () => Card,
40
+ CardBg: () => CardBg,
41
+ CardContent: () => CardContent,
42
+ CardDescription: () => CardDescription,
43
+ CardFooter: () => CardFooter,
44
+ CardHeader: () => CardHeader,
45
+ CardIcon: () => CardIcon,
46
+ CardTitle: () => CardTitle,
47
+ Checkbox: () => Checkbox_default,
48
+ Chip: () => Chip_default,
49
+ Dropdown: () => Dropdown,
50
+ Footer: () => Footer,
51
+ FooterContent: () => FooterContent,
52
+ FooterHeader: () => FooterHeader,
53
+ FooterIcons: () => FooterIcons,
54
+ FooterList: () => FooterList,
55
+ ImageCard: () => ImageCard_default,
56
+ Input: () => Input_default,
57
+ Label: () => Label_default,
58
+ ListItem: () => ListItem_default,
59
+ MenuItem: () => MenuItem,
60
+ MenuSubItem: () => MenuSubItem,
61
+ Paragraph: () => Paragraph_default,
62
+ Slider: () => Slider_default,
63
+ StatsCard: () => StatsCard_default,
64
+ Textarea: () => Textarea_default,
65
+ Toggle: () => Toggle_default,
66
+ Typography: () => Typography_default
67
+ });
68
+ module.exports = __toCommonJS(app_exports);
69
+
70
+ // src/utils/util.ts
71
+ var import_clsx = __toESM(require("clsx"), 1);
72
+ var import_tailwind_merge = require("tailwind-merge");
73
+ var cn = (...classes) => (0, import_tailwind_merge.twMerge)((0, import_clsx.default)(...classes));
74
+
75
+ // src/components/Accordion.tsx
76
+ var import_react = __toESM(require("react"), 1);
77
+ var import_fi = require("react-icons/fi");
78
+ function Accordion({
79
+ type = "single",
80
+ collapsible = true,
81
+ className,
82
+ children
83
+ }) {
84
+ const [openItems, setOpenItems] = (0, import_react.useState)([]);
85
+ const handleToggle = (value) => {
86
+ if (type === "single") {
87
+ setOpenItems(
88
+ (prev) => prev.includes(value) ? collapsible ? [] : prev : [value]
89
+ );
90
+ } else {
91
+ setOpenItems(
92
+ (prev) => prev.includes(value) ? prev.filter((item) => item !== value) : [...prev, value]
93
+ );
94
+ }
95
+ };
96
+ return /* @__PURE__ */ import_react.default.createElement("div", { className }, import_react.default.Children.map(children, (child) => {
97
+ if (import_react.default.isValidElement(child)) {
98
+ return import_react.default.cloneElement(
99
+ child,
100
+ {
101
+ openItems,
102
+ handleToggle
103
+ }
104
+ );
105
+ }
106
+ return child;
107
+ }));
108
+ }
109
+ function AccordionItem({
110
+ value,
111
+ disabled = false,
112
+ openItems,
113
+ handleToggle,
114
+ children
115
+ }) {
116
+ const isOpen = openItems?.includes(value);
117
+ const toggle = () => {
118
+ if (!disabled && handleToggle) {
119
+ handleToggle(value);
120
+ }
121
+ };
122
+ return /* @__PURE__ */ import_react.default.createElement(
123
+ "div",
124
+ {
125
+ className: cn(
126
+ "rounded-radius-lg mb-3 shadow-cardShadow dark:shadow-none border dark:border-gray-900",
127
+ isOpen && "border border-brand-500 shadow-cardShadowActive dark:bg-gray-900 dark:border-gray-100",
128
+ disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
129
+ )
130
+ },
131
+ /* @__PURE__ */ import_react.default.createElement(
132
+ "div",
133
+ {
134
+ className: "font-semibold transition-colors p-[32px] mobile:p-4 duration-200 ease-in-out",
135
+ onClick: toggle
136
+ },
137
+ children && Array.isArray(children) ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, import_react.default.cloneElement(children[0], { isOpen }), isOpen && !disabled ? children[1] : null) : children
138
+ )
139
+ );
140
+ }
141
+ function AccordionTrigger({ isOpen, children }) {
142
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "accordion-trigger transition-all delay-150 ease-in font-montserrat text-[20px] mobile:text-[12px] mobile:leading-[18px] text-dark dark:text-white flex justify-between items-center font-semibold" }, children, /* @__PURE__ */ import_react.default.createElement("span", null, isOpen ? /* @__PURE__ */ import_react.default.createElement(import_fi.FiChevronUp, { size: 20 }) : /* @__PURE__ */ import_react.default.createElement(import_fi.FiChevronDown, { size: 20 })));
143
+ }
144
+ function AccordionContent({ isOpen, children }) {
145
+ return /* @__PURE__ */ import_react.default.createElement(
146
+ "div",
147
+ {
148
+ className: cn(
149
+ "opacity-0 w-full accordion-content font-normal font-karla text-[18px] mobile:text-[12px] mobile:leading-[18px] text-dark dark:text-gray-600 pt-[32px] mobile:pt-[10px] overflow-hidden max-h-0 duration-500 transition-all delay-100 ease-in",
150
+ !isOpen && "max-h-fit opacity-[1] transition-all ease-in duration-150"
151
+ )
152
+ },
153
+ children
154
+ );
155
+ }
156
+
157
+ // src/components/Button.tsx
158
+ var import_class_variance_authority = require("class-variance-authority");
159
+ var import_react2 = __toESM(require("react"), 1);
160
+ var buttonVariants = (0, import_class_variance_authority.cva)(
161
+ "font-semibold transition-colors rounded-radius-md py-spacing-sm duration-300 ease-in-out cursor-pointer disabled:pointer-events-none disabled:select-none disabled:bg-gray-400 disabled:text-light border-gray-25/15",
162
+ {
163
+ variants: {
164
+ variant: {
165
+ primary: "bg-brand-500 text-light border hover:bg-brand-600 hover:shadow-[inset_0px_2px_8px_-2px_#FFFFFF8F,inset_0px_8px_8px_-2px_#0000002E] active:bg-brand-400 active:shadow-[0px_0px_0px_3px] active:shadow-brand-300",
166
+ "primary-light": "bg-brand-50 text-brand-600 hover:bg-brand-200 hover:shadow-[inset_0px_2px_8px_-2px_#FFFFFF8F,inset_0px_8px_8px_-2px_#356AC32E] active:shadow-[0px_0px_0px_3px] active:bg-brand-50 active:shadow-brand-300",
167
+ secondary: "bg-brand-50 text-brand-800 hover:bg-brand-200 hover:shadow-[inset_0px_2px_8px_-2px_#FFFFFF8F,inset_0px_8px_8px_-2px_#6984AD2E] active:bg-brand-50 active:shadow-[0px_0px_0px_3px] active:shadow-brand-700",
168
+ tertiary: "bg-gray-100 text-gray-900 hover:bg-gray-300 hover:shadow-[inset_0px_2px_8px_-2px_#FFFFFF8F,inset_0px_8px_8px_-2px_#9595952E] active:bg-gray-25 active:shadow-[0px_0px_0px_3px] active:shadow-gray-700",
169
+ quaternary: "bg-gray-50/[0.02] text-light backdrop-blur-[6px] hover:shadow-[inset_0px_8px_8px_-2px_#23232314] hover:backdrop-blur-md hover:bg-gray-200/10 active:bg-gray-25 active:shadow-[0px_0px_0px_3px] active:text-gray-900 active:shadow-[#46464659]"
170
+ },
171
+ size: {
172
+ sm: "text-xl leading-[30px] px-spacing-md",
173
+ md: "font-bold text-2xl leading-[36px] px-spacing-lg",
174
+ lg: "font-bold text-[32px] leading-[48px] px-spacing-xl"
175
+ }
176
+ },
177
+ defaultVariants: {
178
+ variant: "primary",
179
+ size: "md"
180
+ }
181
+ }
182
+ );
183
+ var Button = ({
184
+ children,
185
+ startIcon,
186
+ endIcon,
187
+ fullWidth,
188
+ rounded,
189
+ disabled,
190
+ className,
191
+ variant,
192
+ size,
193
+ ...props
194
+ }) => {
195
+ return /* @__PURE__ */ import_react2.default.createElement(
196
+ "button",
197
+ {
198
+ ...props,
199
+ disabled,
200
+ className: cn(
201
+ buttonVariants({ variant, size, className }),
202
+ fullWidth && "w-full",
203
+ "flex items-center justify-center text-center gap-spacing-sm",
204
+ rounded && "!rounded-full"
205
+ )
206
+ },
207
+ startIcon,
208
+ children,
209
+ endIcon
210
+ );
211
+ };
212
+ var Button_default = Button;
213
+
214
+ // src/components/Caption.tsx
215
+ var import_class_variance_authority2 = require("class-variance-authority");
216
+ var import_react3 = __toESM(require("react"), 1);
217
+ var captionVariants = (0, import_class_variance_authority2.cva)("font-bold font-karla text-dark dark:text-light", {
218
+ variants: {
219
+ variant: {
220
+ sm: "text-[10px] leading-[15px]",
221
+ md: "text-sm leading-[18px]"
222
+ }
223
+ },
224
+ defaultVariants: {
225
+ variant: "sm"
226
+ }
227
+ });
228
+ var Caption = ({ children, variant, className, ...props }) => {
229
+ return /* @__PURE__ */ import_react3.default.createElement("span", { className: cn(captionVariants({ variant, className })), ...props }, children);
230
+ };
231
+ var Caption_default = Caption;
232
+
233
+ // src/components/Card.tsx
234
+ var import_image = __toESM(require("next/image"), 1);
235
+
236
+ // src/components/Typography.tsx
237
+ var import_class_variance_authority3 = require("class-variance-authority");
238
+ var import_react4 = __toESM(require("react"), 1);
239
+ var typographyVariant = (0, import_class_variance_authority3.cva)("text-dark dark:text-light font-bold", {
240
+ variants: {
241
+ variant: {
242
+ h1: "text-8xl leading-[144px]",
243
+ h2: "text-7xl leading-[90px]",
244
+ h3: "text-5xl leading-[72px]",
245
+ h4: "text-[32px] leading-[48px]",
246
+ h5: "text-2xl leading-9",
247
+ h6: "text-xl font-semibold leading-[30px]"
248
+ }
249
+ },
250
+ defaultVariants: {
251
+ variant: "h1"
252
+ }
253
+ });
254
+ var Typography = ({
255
+ as,
256
+ variant = "h1",
257
+ children,
258
+ className,
259
+ ...props
260
+ }) => {
261
+ const Component = as || variant;
262
+ return /* @__PURE__ */ import_react4.default.createElement(
263
+ Component,
264
+ {
265
+ className: cn(typographyVariant({ variant, className })),
266
+ ...props
267
+ },
268
+ children
269
+ );
270
+ };
271
+ var Typography_default = Typography;
272
+
273
+ // src/components/Paragraph.tsx
274
+ var import_class_variance_authority4 = require("class-variance-authority");
275
+ var import_react5 = __toESM(require("react"), 1);
276
+ var paragraphVariants = (0, import_class_variance_authority4.cva)(
277
+ "font-karla font-normal text-dark dark:text-light",
278
+ {
279
+ variants: {
280
+ variant: {
281
+ b1: "text-2xl leading-[38px]",
282
+ b2: "text-xl leading-[30px]",
283
+ b3: "text-base",
284
+ b4: "text-sm leading-[21px]"
285
+ }
286
+ },
287
+ defaultVariants: {
288
+ variant: "b1"
289
+ }
290
+ }
291
+ );
292
+ var Paragraph = ({
293
+ children,
294
+ className,
295
+ variant,
296
+ ...props
297
+ }) => {
298
+ return /* @__PURE__ */ import_react5.default.createElement("p", { className: cn(paragraphVariants({ variant, className })), ...props }, children);
299
+ };
300
+ var Paragraph_default = Paragraph;
301
+
302
+ // src/components/Card.tsx
303
+ function Card({ children, className }) {
304
+ return /* @__PURE__ */ React.createElement("article", { className }, children);
305
+ }
306
+ var CardIcon = ({ children, className }) => /* @__PURE__ */ React.createElement("span", { className }, children);
307
+ var CardHeader = ({ children, className }) => /* @__PURE__ */ React.createElement("div", { className }, children);
308
+ var CardBg = ({
309
+ children,
310
+ className,
311
+ src,
312
+ alt = "Card",
313
+ width = 300,
314
+ height = 200
315
+ }) => /* @__PURE__ */ React.createElement("div", { className: cn("relative", className) }, src && /* @__PURE__ */ React.createElement(
316
+ import_image.default,
317
+ {
318
+ src,
319
+ alt,
320
+ width,
321
+ height,
322
+ layout: "responsive"
323
+ }
324
+ ), /* @__PURE__ */ React.createElement("div", { className: "absolute inset-0" }, children));
325
+ var CardTitle = ({ children, className }) => /* @__PURE__ */ React.createElement(Typography_default, { variant: "h4", className }, children);
326
+ var CardDescription = ({ children, className }) => /* @__PURE__ */ React.createElement(Paragraph_default, { variant: "b1", className: cn("text-light", className) }, children);
327
+ var CardContent = ({ children, className }) => /* @__PURE__ */ React.createElement("div", { className: cn("font-karla text-white", className) }, children);
328
+ var CardFooter = ({ children, className }) => /* @__PURE__ */ React.createElement("div", { className: cn("font-karla text-white", className) }, children);
329
+
330
+ // src/components/Checkbox.tsx
331
+ var import_react6 = __toESM(require("react"), 1);
332
+ var Checkbox = (0, import_react6.forwardRef)(
333
+ ({ disabled, checked, className, children, readOnly, ...props }, ref) => {
334
+ return /* @__PURE__ */ import_react6.default.createElement(
335
+ "div",
336
+ {
337
+ className: cn(
338
+ "group inline-flex relative items-center rounded-full border-2 border-transparent hover:border-brand-300",
339
+ disabled && "border-none"
340
+ )
341
+ },
342
+ /* @__PURE__ */ import_react6.default.createElement(
343
+ "input",
344
+ {
345
+ type: "checkbox",
346
+ ref,
347
+ ...props,
348
+ disabled,
349
+ readOnly,
350
+ checked,
351
+ className: cn(
352
+ "peer relative h-5 w-5 cursor-pointer appearance-none rounded-full border-2 border-gray-300 transition-all checked:border-brand-500 hover:border-brand-500 hover:bg-brand-25/25 disabled:opacity-30 disabled:pointer-events-none disabled:border-gray-400",
353
+ className
354
+ )
355
+ }
356
+ ),
357
+ /* @__PURE__ */ import_react6.default.createElement(
358
+ "span",
359
+ {
360
+ className: cn(
361
+ "absolute text-brand-600 transition-opacity opacity-0 pointer-events-none top-2/4 left-2/4 -translate-y-2/4 -translate-x-2/4 peer-checked:opacity-100",
362
+ disabled && "text-gray-300"
363
+ )
364
+ },
365
+ /* @__PURE__ */ import_react6.default.createElement(
366
+ "svg",
367
+ {
368
+ xmlns: "http://www.w3.org/2000/svg",
369
+ className: "w-4 h-4",
370
+ viewBox: "0 0 20 20",
371
+ fill: "currentColor",
372
+ stroke: "currentColor",
373
+ strokeWidth: "0.3"
374
+ },
375
+ /* @__PURE__ */ import_react6.default.createElement(
376
+ "path",
377
+ {
378
+ fillRule: "evenodd",
379
+ d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
380
+ clipRule: "evenodd"
381
+ }
382
+ )
383
+ )
384
+ ),
385
+ children
386
+ );
387
+ }
388
+ );
389
+ Checkbox.displayName = "Checkbox";
390
+ var Checkbox_default = Checkbox;
391
+
392
+ // src/components/Chip.tsx
393
+ var import_react7 = __toESM(require("react"), 1);
394
+ var import_class_variance_authority5 = require("class-variance-authority");
395
+ var chipVariants = (0, import_class_variance_authority5.cva)("", {
396
+ variants: {
397
+ variant: {
398
+ primary: "bg-white text-brand-500 hover:text-white hover:bg-gradient-to-r hover:from-brand-500 hover:to-[#264D8E]",
399
+ secondary: "bg-brand-500 text-white hover:text-white hover:bg-gradient-to-r hover:from-brand-500 hover:to-[#285092]",
400
+ glass: "text-brand-500"
401
+ },
402
+ size: {
403
+ sm: "text-sm py-1 px-3",
404
+ md: "text-base px-4 py-2",
405
+ lg: "text-lg px-6 py-3"
406
+ }
407
+ },
408
+ defaultVariants: {
409
+ variant: "primary",
410
+ size: "md"
411
+ }
412
+ });
413
+ var Chip = ({
414
+ children,
415
+ className,
416
+ variant,
417
+ startIcon,
418
+ endIcon,
419
+ size,
420
+ ...props
421
+ }) => {
422
+ return /* @__PURE__ */ import_react7.default.createElement(
423
+ "div",
424
+ {
425
+ className: cn(
426
+ "rounded-radius-xl bg-gradient-to-r",
427
+ {
428
+ solid: "from-brand-200 to-brand-500",
429
+ primary: "from-brand-200 to-brand-500",
430
+ secondary: "from-brand-200 to-brand-500",
431
+ glass: "border border-brand-500"
432
+ }[variant || "primary"],
433
+ "p-[1px]"
434
+ )
435
+ },
436
+ /* @__PURE__ */ import_react7.default.createElement(
437
+ "div",
438
+ {
439
+ ...props,
440
+ className: cn(
441
+ "flex items-center justify-center gap-2 text-center font-semibold",
442
+ "rounded-radius-xl",
443
+ chipVariants({ variant, size }),
444
+ className
445
+ )
446
+ },
447
+ startIcon,
448
+ children,
449
+ endIcon
450
+ )
451
+ );
452
+ };
453
+ var Chip_default = Chip;
454
+
455
+ // src/components/Dropdown.tsx
456
+ var import_react8 = __toESM(require("react"), 1);
457
+ var import_hi2 = require("react-icons/hi2");
458
+ function Dropdown({
459
+ triggerIcon,
460
+ children,
461
+ width = "250px"
462
+ }) {
463
+ const [isOpen, setIsOpen] = (0, import_react8.useState)(false);
464
+ const dropdownRef = (0, import_react8.useRef)(null);
465
+ (0, import_react8.useEffect)(() => {
466
+ const handleClickOutside = (event) => {
467
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
468
+ setIsOpen(false);
469
+ }
470
+ };
471
+ document.addEventListener("mousedown", handleClickOutside);
472
+ return () => {
473
+ document.removeEventListener("mousedown", handleClickOutside);
474
+ };
475
+ }, []);
476
+ return /* @__PURE__ */ import_react8.default.createElement("div", { className: "relative w-full font-karla", ref: dropdownRef }, /* @__PURE__ */ import_react8.default.createElement(
477
+ "div",
478
+ {
479
+ className: "cursor-pointer",
480
+ onClick: () => setIsOpen(!isOpen),
481
+ "aria-label": "Open menu"
482
+ },
483
+ triggerIcon || /* @__PURE__ */ import_react8.default.createElement("span", null, "\u2630")
484
+ ), isOpen && /* @__PURE__ */ import_react8.default.createElement(
485
+ "div",
486
+ {
487
+ style: { width },
488
+ className: "border border-gray-200 dark:bg-gray-800 dark:border-gray-600 dark:text-white rounded-t-radius-md absolute left-0 mt-1 z-[100000] w-full bg-white shadow-sm"
489
+ },
490
+ children
491
+ ));
492
+ }
493
+ var MenuItem = ({
494
+ label,
495
+ onClick,
496
+ disabled,
497
+ children
498
+ }) => /* @__PURE__ */ import_react8.default.createElement(
499
+ "button",
500
+ {
501
+ className: cn(
502
+ "w-full text-left p-4 border-t border-gray-200 last:border-none hover:bg-gray-200 dark:hover:bg-gray-600",
503
+ disabled ? "opacity-50 cursor-not-allowed" : ""
504
+ ),
505
+ onClick,
506
+ disabled
507
+ },
508
+ label,
509
+ children && /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, children)
510
+ );
511
+ var MenuSubItem = ({
512
+ label,
513
+ children
514
+ }) => {
515
+ const [isSubOpen, setIsSubOpen] = (0, import_react8.useState)(false);
516
+ return /* @__PURE__ */ import_react8.default.createElement("div", { className: "relative" }, /* @__PURE__ */ import_react8.default.createElement(
517
+ "section",
518
+ {
519
+ onClick: () => setIsSubOpen(!isSubOpen),
520
+ className: "cursor-pointer hover:bg-gray-200 dark:hover:bg-gray-600 border-t border-b border-gray-200 p-4 flex justify-between items-center gap-1 w-full text-left"
521
+ },
522
+ /* @__PURE__ */ import_react8.default.createElement("span", null, label),
523
+ isSubOpen ? /* @__PURE__ */ import_react8.default.createElement(import_hi2.HiChevronUp, null) : /* @__PURE__ */ import_react8.default.createElement(import_hi2.HiChevronDown, null)
524
+ ), isSubOpen && /* @__PURE__ */ import_react8.default.createElement("div", { className: "bg-gray-100 border-gray-200 dark:bg-gray-700 dark:border-gray-600 dark:text-white" }, children));
525
+ };
526
+
527
+ // src/components/Footer.tsx
528
+ var import_react9 = __toESM(require("react"), 1);
529
+ var import_link = __toESM(require("next/link"), 1);
530
+ function Footer({
531
+ children,
532
+ className,
533
+ footerBottom
534
+ }) {
535
+ return /* @__PURE__ */ import_react9.default.createElement(
536
+ "footer",
537
+ {
538
+ className: cn(
539
+ "bg-gradient-to-b from-gray-25 to-brand-100 dark:from-brand-900 dark:to-dark",
540
+ className
541
+ )
542
+ },
543
+ children,
544
+ footerBottom && /* @__PURE__ */ import_react9.default.createElement("section", { className: "border-t border-brand-500 dark:border-brand-800 text-center py-spacing-md" }, footerBottom)
545
+ );
546
+ }
547
+ var FooterHeader = ({ children, className }) => {
548
+ return /* @__PURE__ */ import_react9.default.createElement(
549
+ "div",
550
+ {
551
+ className: cn(
552
+ "md:w-[30%] space-y-4 flex flex-col items-center lg:items-start",
553
+ className
554
+ )
555
+ },
556
+ children
557
+ );
558
+ };
559
+ var FooterContent = ({ children, className }) => {
560
+ return /* @__PURE__ */ import_react9.default.createElement(
561
+ "section",
562
+ {
563
+ className: cn(
564
+ "max-w-6xl mx-auto flex md:flex-row flex-col items-center md:items-start justify-between gap-14 px-4 md:px-20 py-20",
565
+ className
566
+ )
567
+ },
568
+ children
569
+ );
570
+ };
571
+ var FooterList = ({ footerItems, target }) => {
572
+ return /* @__PURE__ */ import_react9.default.createElement("div", { className: "grid lg:grid-cols-3 md:grid-cols-2 place-items-start gap-12 text-center md:text-left" }, footerItems?.map((data, i) => /* @__PURE__ */ import_react9.default.createElement("div", { key: i, className: "space-y-5 w-full" }, /* @__PURE__ */ import_react9.default.createElement(Typography_default, { variant: "h5" }, data?.label), /* @__PURE__ */ import_react9.default.createElement("ul", { className: "space-y-2.5 list-none" }, data.content?.map((data2, i2) => /* @__PURE__ */ import_react9.default.createElement("li", { key: i2 }, /* @__PURE__ */ import_react9.default.createElement(import_link.default, { href: data2?.link, target }, /* @__PURE__ */ import_react9.default.createElement(
573
+ Paragraph_default,
574
+ {
575
+ variant: "b3",
576
+ className: "dark:text-gray-300 hover:text-brand-400 dark:hover:text-brand-600 text-gray-900"
577
+ },
578
+ data2?.text
579
+ ))))))));
580
+ };
581
+ var FooterIcons = ({ icons }) => {
582
+ return /* @__PURE__ */ import_react9.default.createElement("div", { className: "flex flex-wrap justify-center items-center gap-5 text-brand-700 dark:text-brand-200" }, icons.map((icon, index) => /* @__PURE__ */ import_react9.default.createElement(
583
+ import_link.default,
584
+ {
585
+ href: icon.link,
586
+ key: index,
587
+ target: "_blank",
588
+ className: "hover:bg-brand-100 dark:hover:bg-brand-800 p-1 rounded-radius-sm"
589
+ },
590
+ icon.icon
591
+ )));
592
+ };
593
+
594
+ // src/components/ImageCard.tsx
595
+ var import_react10 = __toESM(require("react"), 1);
596
+ var ImageCard = ({
597
+ cardTitle,
598
+ cardDesc,
599
+ cardImg,
600
+ children,
601
+ className = ""
602
+ }) => {
603
+ const backgroundImage = `url('${cardImg}')`;
604
+ return /* @__PURE__ */ import_react10.default.createElement(
605
+ "div",
606
+ {
607
+ className: cn(
608
+ "transition-all duration-300 ease-in-out hover:ring-1 hover:ring-[#4285F4] relative rounded-radius-xl overflow-hidden block z-10 bg-cover bg-no-repeat bg-center",
609
+ className
610
+ ),
611
+ style: {
612
+ backgroundImage
613
+ }
614
+ },
615
+ /* @__PURE__ */ import_react10.default.createElement("div", { className: "absolute inset-0 z-[-5] transition-all duration-300 ease-in-out bg-gradient-to-b from-transparent via-black/50 to-black" }),
616
+ /* @__PURE__ */ import_react10.default.createElement("section", { className: "p-[32px] w-full h-full flex flex-col justify-end font-karla hover:bg-gradient-to-b hover:from-black/60 hover:via-black/70 hover:to-[#070707]" }, /* @__PURE__ */ import_react10.default.createElement(CardTitle, { className: "text-[24px] font-bold text-white mt-4 mb-6" }, cardTitle), /* @__PURE__ */ import_react10.default.createElement(CardDescription, { className: "text-[20px] leading-[25px] text-white" }, cardDesc), /* @__PURE__ */ import_react10.default.createElement("div", null, children))
617
+ );
618
+ };
619
+ var ImageCard_default = ImageCard;
620
+
621
+ // src/components/Input.tsx
622
+ var import_class_variance_authority6 = require("class-variance-authority");
623
+ var import_react11 = __toESM(require("react"), 1);
624
+ var inputVariants = (0, import_class_variance_authority6.cva)(
625
+ "flex items-center text-sm gap-2 py-2 px-4 rounded-radius-md border font-karla has-[:disabled]:opacity-30 has-[:disabled]:select-none has-[:disabled]:pointer-events-none",
626
+ {
627
+ variants: {
628
+ variant: {
629
+ default: "dark:text-gray-500 dark:bg-gray-900 dark:border-gray-800 dark:hover:text-light dark:hover:bg-gray-800 dark:hover:border-gray-700 dark:focus-within:bg-gray-100 dark:focus-within:border-gray-800 dark:focus-within:hover:bg-gray-700 dark:focus-within:text-dark dark:has-[:disabled]:bg-gray-700 bg-gray-100 border-gray-200 text-gray-600 hover:border-gray-300 hover:text-gray-500 hover:bg-gray-300 focus-within:bg-gray-50 focus-within:border-gray-400 focus-within:text-dark focus-within:hover:text-dark focus-within:hover:border-brand-100 focus-within:hover:bg-brand-50 has-[:disabled]:bg-gray-25 has-[:disabled]:border-gray-400",
630
+ glass: "backdrop-blur-[3.5px] bg-light/10 dark:bg-dark/20 dark:border-gray-800 border-gray-200/50 text-light"
631
+ }
632
+ },
633
+ defaultVariants: {
634
+ variant: "default"
635
+ }
636
+ }
637
+ );
638
+ var Input = (0, import_react11.forwardRef)(
639
+ ({ startIcon, endIcon, className, variant, type, disabled, ...props }, ref) => {
640
+ return /* @__PURE__ */ import_react11.default.createElement("div", { className: cn(inputVariants({ variant, className })) }, startIcon, /* @__PURE__ */ import_react11.default.createElement(
641
+ "input",
642
+ {
643
+ ...props,
644
+ ref,
645
+ disabled,
646
+ type,
647
+ className: "w-full bg-none bg-transparent outline-none"
648
+ }
649
+ ), endIcon);
650
+ }
651
+ );
652
+ Input.displayName = "Input";
653
+ var Input_default = Input;
654
+
655
+ // src/components/Label.tsx
656
+ var import_class_variance_authority7 = require("class-variance-authority");
657
+ var import_react12 = __toESM(require("react"), 1);
658
+ var labelVariants = (0, import_class_variance_authority7.cva)("font-medium text-dark dark:text-light", {
659
+ variants: {
660
+ size: {
661
+ sm: "text-xs",
662
+ md: "text-sm",
663
+ lg: "text-base"
664
+ }
665
+ },
666
+ defaultVariants: {
667
+ size: "md"
668
+ }
669
+ });
670
+ var Label = ({
671
+ children,
672
+ htmlFor,
673
+ size,
674
+ required,
675
+ disabled,
676
+ className,
677
+ ...props
678
+ }) => {
679
+ return /* @__PURE__ */ import_react12.default.createElement(
680
+ "label",
681
+ {
682
+ htmlFor,
683
+ className: cn(
684
+ "cursor-pointer",
685
+ labelVariants({ className, size }),
686
+ disabled === true ? "opacity-30 select-none" : "opacity-100"
687
+ ),
688
+ ...props
689
+ },
690
+ children,
691
+ required && /* @__PURE__ */ import_react12.default.createElement("span", { className: "text-error" }, "*")
692
+ );
693
+ };
694
+ var Label_default = Label;
695
+
696
+ // src/components/ListItem.tsx
697
+ var import_link2 = __toESM(require("next/link"), 1);
698
+ var import_react13 = __toESM(require("react"), 1);
699
+ var import_navigation = require("next/navigation");
700
+ var ListItem = import_react13.default.forwardRef(
701
+ ({ className, title, href, onClick, as = "link", variant = "solid" }, ref) => {
702
+ const pathname = (0, import_navigation.usePathname)();
703
+ const isActive = as === "link" && href === pathname;
704
+ const variantClasses = variant === "solid" ? "rounded-radius-lg hover:bg-brand-50 group border border-transparent hover:border-brand-200 focus:outline-none focus:ring-1 focus:ring-brand-500 focus:text-white leading-none no-underline outline-none transition-colors" : variant === "glass" ? "rounded-radius-lg group border border-transparent hover:border-brand-200 focus:outline-none focus:ring-1 focus:ring-brand-500 focus:text-white leading-none no-underline outline-none transition-colors" : "";
705
+ if (as === "button") {
706
+ return /* @__PURE__ */ import_react13.default.createElement(
707
+ "button",
708
+ {
709
+ className: cn(
710
+ "px-4 py-[8px] font-karla",
711
+ variantClasses,
712
+ className
713
+ ),
714
+ onClick,
715
+ ref
716
+ },
717
+ /* @__PURE__ */ import_react13.default.createElement(
718
+ Typography_default,
719
+ {
720
+ variant: "h6",
721
+ className: cn("font-karla group-hover:dark:text-dark", className)
722
+ },
723
+ title
724
+ )
725
+ );
726
+ }
727
+ return /* @__PURE__ */ import_react13.default.createElement(
728
+ import_link2.default,
729
+ {
730
+ href: href ?? "",
731
+ passHref: true,
732
+ className: cn(
733
+ "px-4 py-[8px] font-karla",
734
+ isActive ? "bg-brand-400 text-white border border-brand-200" : variantClasses,
735
+ className
736
+ ),
737
+ ref
738
+ },
739
+ /* @__PURE__ */ import_react13.default.createElement(
740
+ Typography_default,
741
+ {
742
+ variant: "h6",
743
+ className: cn("font-karla group-hover:dark:text-dark", className)
744
+ },
745
+ title
746
+ )
747
+ );
748
+ }
749
+ );
750
+ ListItem.displayName = "ListItem";
751
+ var ListItem_default = ListItem;
752
+
753
+ // src/components/Slider.tsx
754
+ var import_react14 = __toESM(require("react"), 1);
755
+ var Slider = (0, import_react14.forwardRef)(
756
+ ({ value, min = 0, max = 100, size = "sm", sliderColor, ...props }, ref) => {
757
+ const progress = (value - min) / (max - min) * 100;
758
+ return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(
759
+ "input",
760
+ {
761
+ ref,
762
+ type: "range",
763
+ min,
764
+ max,
765
+ value,
766
+ ...props,
767
+ className: cn(
768
+ "slider w-full rounded-full appearance-none bg-gray-300 h-4 cursor-pointer focus:outline-none",
769
+ size === "sm" ? "h-1.5" : "h-4"
770
+ ),
771
+ style: {
772
+ background: `linear-gradient(to right, ${sliderColor ?? "#8EB6F8"} ${progress}%, #d1d5db ${progress}%)`
773
+ }
774
+ }
775
+ ), /* @__PURE__ */ import_react14.default.createElement("style", { jsx: true }, `
776
+ .slider {
777
+ -webkit-appearance: none;
778
+ appearance: none;
779
+ }
780
+
781
+ .slider::-webkit-slider-thumb {
782
+ -webkit-appearance: none;
783
+ appearance: none;
784
+ width: 36px;
785
+ height: 24px;
786
+ background-color: ${sliderColor ?? "#4285F4"};
787
+ border-radius: 9999px;
788
+ outline: 3px solid #B3CEFB
789
+ cursor: pointer;
790
+ }
791
+
792
+ .slider::-webkit-slider-thumb:hover {
793
+ background-color: #285092;
794
+ outline: 3px solid #B3CEFB
795
+ }
796
+
797
+ .slider::-webkit-slider-thumb:active {
798
+ background-color: #356ac3;
799
+ outline: 3px solid #B3CEFB
800
+ box-shadow: 0px 4px 4.7px 0px #0000002e;
801
+ }
802
+
803
+ .slider::-moz-range-thumb {
804
+ width: 50px;
805
+ outline: 3px solid #B3CEFB
806
+ height: 50px;
807
+ background-color: #000;
808
+ border-radius: 0;
809
+ cursor: pointer;
810
+ }
811
+ `));
812
+ }
813
+ );
814
+ Slider.displayName = "Slider";
815
+ var Slider_default = Slider;
816
+
817
+ // src/components/StatsCard.tsx
818
+ var import_react15 = __toESM(require("react"), 1);
819
+ var StatsCard = ({
820
+ statTitle,
821
+ statDesc,
822
+ className,
823
+ cardIcon
824
+ }) => {
825
+ return /* @__PURE__ */ import_react15.default.createElement(
826
+ Card,
827
+ {
828
+ className: cn(
829
+ "border border-[#eee] hover:border-[#4285F4] rounded-radius-xl bg-[#FFFFFFE5] bg-gradient-to-b bg-[#fff] hover:from-[#8EB6F8D9] hover:to-[#356AC3D9] dark:from-[#252525D9] dark:to-[#070707D9] dark:hover:from-[#1A3562D9] dark:hover:to-[#070707D9] backdrop-blur-sm px-[32px] py-[64px] group",
830
+ className
831
+ )
832
+ },
833
+ /* @__PURE__ */ import_react15.default.createElement("span", { className: "group-hover:text-white text-dark dark:text-white" }, cardIcon),
834
+ /* @__PURE__ */ import_react15.default.createElement(CardTitle, { className: "group-hover:text-white text-[48px] font-bold text-brand-500 dark:text-white my-4" }, statTitle),
835
+ /* @__PURE__ */ import_react15.default.createElement(CardDescription, { className: "group-hover:text-white text-[24px] hover:text-white text-dark leading-[25px]" }, statDesc)
836
+ );
837
+ };
838
+ var StatsCard_default = StatsCard;
839
+
840
+ // src/components/Textarea.tsx
841
+ var import_class_variance_authority8 = require("class-variance-authority");
842
+ var import_react16 = __toESM(require("react"), 1);
843
+ var textareaVariants = (0, import_class_variance_authority8.cva)(
844
+ "flex items-center gap-2 font-karla text-sm outline-none rounded-radius-md border py-2 px-4 disabled:opacity-60 disabled:select-none disabled:pointer-events-none w-full",
845
+ {
846
+ variants: {
847
+ variant: {
848
+ default: "dark:text-gray-500 dark:bg-gray-900 dark:border-gray-800 dark:hover:text-light dark:hover:bg-gray-800 dark:hover:border-gray-700 dark:focus-within:bg-gray-100 dark:focus-within:border-gray-800 dark:focus-within:hover:bg-gray-700 dark:focus-within:text-dark dark:disabled:bg-gray-700 bg-gray-100 border-gray-200 text-gray-600 hover:border-gray-300 hover:text-gray-500 hover:bg-gray-300 focus-within:bg-gray-50 focus-within:border-gray-400 focus-within:text-dark focus-within:hover:text-dark focus-within:hover:border-brand-100 focus-within:hover:bg-brand-50 disabled:bg-gray-25 disabled:border-gray-400",
849
+ glass: "backdrop-blur-[3.5px] bg-light/10 dark:bg-dark/20 dark:border-gray-800 border-gray-200/50 text-light"
850
+ }
851
+ },
852
+ defaultVariants: {
853
+ variant: "default"
854
+ }
855
+ }
856
+ );
857
+ var Textarea = (0, import_react16.forwardRef)(
858
+ ({ className, rows, cols, variant, disabled, children, ...props }, ref) => {
859
+ return /* @__PURE__ */ import_react16.default.createElement(
860
+ "textarea",
861
+ {
862
+ ...props,
863
+ ref,
864
+ disabled,
865
+ rows,
866
+ cols,
867
+ className: cn(textareaVariants({ variant, className }))
868
+ },
869
+ children
870
+ );
871
+ }
872
+ );
873
+ Textarea.displayName = "Textarea";
874
+ var Textarea_default = Textarea;
875
+
876
+ // src/components/Toggle.tsx
877
+ var import_class_variance_authority9 = require("class-variance-authority");
878
+ var import_react17 = __toESM(require("react"), 1);
879
+ var toggleVariants = (0, import_class_variance_authority9.cva)(
880
+ "rounded-radius-xl bg-gray-300 transition-colors peer-checked:bg-brand-500 peer-active:ring-2 peer-active:ring-brand-300",
881
+ {
882
+ variants: {
883
+ size: {
884
+ sm: "w-8 h-[18px]",
885
+ lg: "w-[52px] h-[27px]"
886
+ }
887
+ },
888
+ defaultVariants: {
889
+ size: "lg"
890
+ }
891
+ }
892
+ );
893
+ var Toggle = (0, import_react17.forwardRef)(
894
+ ({ icon, children, disabled, size = "lg", ...props }, ref) => {
895
+ return /* @__PURE__ */ import_react17.default.createElement(
896
+ "label",
897
+ {
898
+ className: cn(
899
+ "flex cursor-pointer select-none items-center",
900
+ disabled && "opacity-50 pointer-events-none"
901
+ )
902
+ },
903
+ /* @__PURE__ */ import_react17.default.createElement("div", { className: "relative" }, /* @__PURE__ */ import_react17.default.createElement(
904
+ "input",
905
+ {
906
+ type: "checkbox",
907
+ disabled,
908
+ ref,
909
+ ...props,
910
+ className: "sr-only peer"
911
+ }
912
+ ), /* @__PURE__ */ import_react17.default.createElement("div", { className: cn(toggleVariants({ size })) }), /* @__PURE__ */ import_react17.default.createElement(
913
+ "div",
914
+ {
915
+ className: cn(
916
+ "absolute flex items-center justify-center bg-white transition-transform",
917
+ size === "sm" ? "peer-checked:translate-x-2 top-[1px] left-[2px] w-5 h-4 rounded-radius-md" : "peer-checked:translate-x-3 top-[2.5px] left-1 h-[22px] w-[34px] rounded-radius-lg"
918
+ )
919
+ },
920
+ /* @__PURE__ */ import_react17.default.createElement("span", { className: "flex items-center justify-center" }, icon),
921
+ children
922
+ ))
923
+ );
924
+ }
925
+ );
926
+ Toggle.displayName = "Toggle";
927
+ var Toggle_default = Toggle;
928
+ // Annotate the CommonJS export names for ESM import in node:
929
+ 0 && (module.exports = {
930
+ Accordion,
931
+ AccordionContent,
932
+ AccordionItem,
933
+ AccordionTrigger,
934
+ Button,
935
+ Caption,
936
+ Card,
937
+ CardBg,
938
+ CardContent,
939
+ CardDescription,
940
+ CardFooter,
941
+ CardHeader,
942
+ CardIcon,
943
+ CardTitle,
944
+ Checkbox,
945
+ Chip,
946
+ Dropdown,
947
+ Footer,
948
+ FooterContent,
949
+ FooterHeader,
950
+ FooterIcons,
951
+ FooterList,
952
+ ImageCard,
953
+ Input,
954
+ Label,
955
+ ListItem,
956
+ MenuItem,
957
+ MenuSubItem,
958
+ Paragraph,
959
+ Slider,
960
+ StatsCard,
961
+ Textarea,
962
+ Toggle,
963
+ Typography
964
+ });