aura-ui-library 1.0.27 → 1.0.29

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 (3) hide show
  1. package/dist/index.js +297 -34
  2. package/dist/index.mjs +311 -39
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -258,9 +258,20 @@ var import_gsap2 = require("gsap");
258
258
  var import_fi = require("react-icons/fi");
259
259
  var Navbar = ({
260
260
  logoText = "AURA",
261
+ showBadge = true,
262
+ variant = "overlay",
263
+ // "overlay" | "classic"
261
264
  links = [
262
265
  { label: "Home", path: "/" },
263
- { label: "Products", path: "/products" },
266
+ {
267
+ label: "Products",
268
+ path: "/products",
269
+ children: [
270
+ { label: "New Arrivals", path: "/new" },
271
+ { label: "Best Sellers", path: "/best" },
272
+ { label: "Accessories", path: "/accessories" }
273
+ ]
274
+ },
264
275
  { label: "Workspace", path: "/workspace" },
265
276
  { label: "Pricing", path: "/pricing" }
266
277
  ],
@@ -274,25 +285,36 @@ var Navbar = ({
274
285
  email: "hello@aura-ui.dev",
275
286
  address: "123 Innovation Drive, SF"
276
287
  },
288
+ // E-commerce Triggers
289
+ showSearch = false,
290
+ onSearch = () => console.log("Search clicked"),
291
+ showCart = false,
292
+ cartCount = 0,
293
+ onCartClick = () => console.log("Cart clicked"),
294
+ showUser = false,
295
+ onUserClick = () => console.log("User clicked"),
296
+ // Theme & Styling
277
297
  accentColor = "#6366f1",
278
298
  theme = "dark",
279
299
  // "dark" | "light"
300
+ transparent = false,
280
301
  style = {},
281
302
  animationDuration = 1.2,
282
303
  easing = "expo.inOut",
283
304
  linkSize = "clamp(42px, 7vw, 100px)"
284
- // Option to change navlink size
285
305
  }) => {
286
306
  const [isOpen, setIsOpen] = (0, import_react2.useState)(false);
287
307
  const [isScrolled, setIsScrolled] = (0, import_react2.useState)(false);
288
308
  const [isMobile, setIsMobile] = (0, import_react2.useState)(false);
289
309
  const [hoverIndex, setHoverIndex] = (0, import_react2.useState)(null);
310
+ const [expandedOverlay, setExpandedOverlay] = (0, import_react2.useState)(null);
290
311
  const inRouter = (0, import_react_router_dom2.useInRouterContext)();
291
312
  const navigate = inRouter ? (0, import_react_router_dom2.useNavigate)() : null;
292
313
  const location = inRouter ? (0, import_react_router_dom2.useLocation)() : { pathname: "/" };
293
314
  const overlayRef = (0, import_react2.useRef)(null);
294
315
  const linksContainerRef = (0, import_react2.useRef)(null);
295
316
  const infoContainerRef = (0, import_react2.useRef)(null);
317
+ const desktopDropdownRefs = (0, import_react2.useRef)({});
296
318
  const isLight2 = theme === "light";
297
319
  const bgMain = isLight2 ? "#ffffff" : "#050505";
298
320
  const textMain = isLight2 ? "#0f172a" : "#ffffff";
@@ -341,34 +363,70 @@ var Navbar = ({
341
363
  }
342
364
  } else {
343
365
  document.body.style.overflow = "";
344
- const tl = import_gsap2.gsap.timeline();
345
- tl.to(overlayRef.current, {
366
+ import_gsap2.gsap.to(overlayRef.current, {
346
367
  clipPath: "circle(0% at 95% 40px)",
347
368
  pointerEvents: "none",
348
369
  duration: animationDuration * 0.7,
349
370
  ease: "expo.inOut"
350
371
  });
372
+ setExpandedOverlay(null);
351
373
  }
352
374
  return () => {
353
375
  document.body.style.overflow = "";
354
376
  };
355
377
  }, [isOpen, animationDuration, easing, prefersReducedMotion]);
378
+ const handleDropdownEnter = (idx) => {
379
+ if (desktopDropdownRefs.current[idx]) {
380
+ import_gsap2.gsap.killTweensOf(desktopDropdownRefs.current[idx]);
381
+ import_gsap2.gsap.to(desktopDropdownRefs.current[idx], {
382
+ opacity: 1,
383
+ y: 10,
384
+ pointerEvents: "auto",
385
+ visibility: "visible",
386
+ duration: 0.3,
387
+ ease: "power2.out"
388
+ });
389
+ }
390
+ };
391
+ const handleDropdownLeave = (idx) => {
392
+ if (desktopDropdownRefs.current[idx]) {
393
+ import_gsap2.gsap.to(desktopDropdownRefs.current[idx], {
394
+ opacity: 0,
395
+ y: 0,
396
+ pointerEvents: "none",
397
+ visibility: "hidden",
398
+ duration: 0.2,
399
+ ease: "power2.in"
400
+ });
401
+ }
402
+ };
356
403
  const handleNavigation = (path, e) => {
357
404
  e.preventDefault();
358
405
  if (location.pathname === path) {
359
406
  setIsOpen(false);
360
407
  return;
361
408
  }
362
- setIsOpen(false);
363
- setTimeout(() => {
409
+ if (isOpen) {
410
+ setIsOpen(false);
411
+ setTimeout(() => {
412
+ if (navigate) {
413
+ navigate(path);
414
+ window.scrollTo(0, 0);
415
+ } else {
416
+ window.location.href = path;
417
+ }
418
+ }, animationDuration * 0.7 * 1e3);
419
+ } else {
364
420
  if (navigate) {
365
421
  navigate(path);
366
422
  window.scrollTo(0, 0);
367
423
  } else {
368
424
  window.location.href = path;
369
425
  }
370
- }, animationDuration * 0.7 * 1e3);
426
+ }
371
427
  };
428
+ const showHamburger = isMobile || variant === "overlay";
429
+ const showDesktopLinks = variant === "classic" && !isMobile;
372
430
  const styles = {
373
431
  header: {
374
432
  position: "fixed",
@@ -382,9 +440,9 @@ var Navbar = ({
382
440
  fontFamily: '"Inter", -apple-system, sans-serif',
383
441
  boxSizing: "border-box",
384
442
  padding: isScrolled ? "15px 5%" : "30px 5%",
385
- backgroundColor: isScrolled ? headerBg : "transparent",
386
- backdropFilter: isScrolled ? "blur(20px)" : "none",
387
- boxShadow: isScrolled ? headerShadow : "none",
443
+ backgroundColor: isScrolled ? headerBg : transparent ? "transparent" : headerBg,
444
+ backdropFilter: isScrolled || !transparent ? "blur(20px)" : "none",
445
+ boxShadow: isScrolled ? headerShadow : !transparent && headerShadow,
388
446
  transition: "all 0.5s cubic-bezier(0.16, 1, 0.3, 1)",
389
447
  ...style
390
448
  },
@@ -397,7 +455,6 @@ var Navbar = ({
397
455
  letterSpacing: "1px",
398
456
  textDecoration: "none",
399
457
  color: textMain,
400
- // Text logic handles contrast via theme
401
458
  zIndex: 1001,
402
459
  cursor: "pointer",
403
460
  willChange: "transform",
@@ -410,6 +467,86 @@ var Navbar = ({
410
467
  backgroundColor: accentColor,
411
468
  boxShadow: `0 0 15px ${accentColor}88`
412
469
  },
470
+ desktopNav: {
471
+ display: "flex",
472
+ flex: 1,
473
+ justifyContent: "center",
474
+ alignItems: "center",
475
+ gap: "30px"
476
+ },
477
+ desktopLinkWrapper: {
478
+ position: "relative",
479
+ padding: "10px 0"
480
+ },
481
+ desktopLink: {
482
+ color: textMain,
483
+ textDecoration: "none",
484
+ fontSize: "15px",
485
+ fontWeight: "600",
486
+ cursor: "pointer",
487
+ display: "flex",
488
+ alignItems: "center",
489
+ gap: "6px",
490
+ transition: "color 0.3s"
491
+ },
492
+ desktopDropdown: {
493
+ position: "absolute",
494
+ top: "100%",
495
+ left: "50%",
496
+ transform: "translateX(-50%) translateY(0)",
497
+ backgroundColor: bgMain,
498
+ border: `1px solid ${borderCol}`,
499
+ borderRadius: "16px",
500
+ padding: "8px",
501
+ minWidth: "200px",
502
+ boxShadow: "0 10px 40px rgba(0,0,0,0.1)",
503
+ opacity: 0,
504
+ visibility: "hidden",
505
+ pointerEvents: "none",
506
+ display: "flex",
507
+ flexDirection: "column",
508
+ gap: "4px"
509
+ },
510
+ dropdownItem: {
511
+ padding: "12px 16px",
512
+ borderRadius: "10px",
513
+ color: textMain,
514
+ textDecoration: "none",
515
+ fontSize: "14px",
516
+ fontWeight: "500",
517
+ transition: "background-color 0.2s, color 0.2s"
518
+ },
519
+ rightActions: {
520
+ display: "flex",
521
+ alignItems: "center",
522
+ gap: "20px",
523
+ zIndex: 1001
524
+ },
525
+ iconBtn: {
526
+ fontSize: "22px",
527
+ color: textMain,
528
+ cursor: "pointer",
529
+ display: "flex",
530
+ alignItems: "center",
531
+ position: "relative",
532
+ transition: "transform 0.2s ease, color 0.2s ease"
533
+ },
534
+ cartBadge: {
535
+ position: "absolute",
536
+ top: "-6px",
537
+ right: "-8px",
538
+ backgroundColor: accentColor,
539
+ color: "#fff",
540
+ fontSize: "10px",
541
+ fontWeight: "800",
542
+ minWidth: "16px",
543
+ height: "16px",
544
+ borderRadius: "8px",
545
+ display: "flex",
546
+ justifyContent: "center",
547
+ alignItems: "center",
548
+ padding: "0 4px"
549
+ },
413
550
  hamburgerBtn: {
414
551
  position: "relative",
415
552
  width: "48px",
@@ -422,7 +559,6 @@ var Navbar = ({
422
559
  alignItems: "center",
423
560
  gap: "6px",
424
561
  cursor: "pointer",
425
- zIndex: 1001,
426
562
  border: `1px solid ${isOpen ? borderCol : "transparent"}`,
427
563
  transition: "all 0.4s ease"
428
564
  },
@@ -430,7 +566,6 @@ var Navbar = ({
430
566
  width: "22px",
431
567
  height: "2px",
432
568
  backgroundColor: textMain,
433
- // Uses theme for color
434
569
  borderRadius: "2px",
435
570
  transition: "all 0.4s cubic-bezier(0.16, 1, 0.3, 1)",
436
571
  transformOrigin: "center"
@@ -439,22 +574,21 @@ var Navbar = ({
439
574
  position: "fixed",
440
575
  top: 0,
441
576
  left: 0,
442
- width: "100vw",
577
+ width: "100%",
443
578
  height: "100vh",
444
579
  backgroundColor: bgMain,
445
580
  zIndex: 999,
446
581
  clipPath: "circle(0% at 95% 40px)",
447
582
  pointerEvents: "none",
448
583
  display: "flex",
449
- // Switch to flex for bulletproof layout
450
584
  flexDirection: isMobile ? "column" : "row",
451
585
  justifyContent: isMobile ? "flex-start" : "space-between",
452
586
  alignItems: isMobile ? "flex-start" : "center",
453
587
  padding: isMobile ? "120px 8% 60px" : "100px 10%",
454
588
  boxSizing: "border-box",
455
589
  fontFamily: '"Inter", -apple-system, sans-serif',
456
- overflowY: isMobile ? "auto" : "hidden"
457
- // Allow scroll on mobile if items overflow
590
+ overflowY: isMobile ? "auto" : "none"
591
+ // Prevent scroll lock bugs on desktop
458
592
  },
459
593
  linksArea: {
460
594
  display: "flex",
@@ -463,7 +597,12 @@ var Navbar = ({
463
597
  width: isMobile ? "100%" : "60%",
464
598
  marginBottom: isMobile ? "60px" : "0"
465
599
  },
466
- linkItem: {
600
+ overlayLinkItem: {
601
+ display: "flex",
602
+ flexDirection: "column",
603
+ width: "100%"
604
+ },
605
+ overlayLinkMain: {
467
606
  display: "flex",
468
607
  alignItems: "center",
469
608
  gap: "20px",
@@ -479,6 +618,23 @@ var Navbar = ({
479
618
  textTransform: "uppercase",
480
619
  lineHeight: "1"
481
620
  },
621
+ accordionContent: {
622
+ display: "flex",
623
+ flexDirection: "column",
624
+ paddingLeft: "2%",
625
+ borderLeft: `2px solid ${borderCol}`,
626
+ marginLeft: "1%",
627
+ marginTop: "10px",
628
+ gap: "15px",
629
+ overflow: "hidden"
630
+ },
631
+ accordionLink: {
632
+ fontSize: "clamp(20px, 3vw, 32px)",
633
+ fontWeight: "600",
634
+ color: textMuted,
635
+ textDecoration: "none",
636
+ transition: "color 0.3s ease"
637
+ },
482
638
  infoArea: {
483
639
  display: "flex",
484
640
  flexDirection: "column",
@@ -524,7 +680,80 @@ var Navbar = ({
524
680
  transition: "all 0.3s ease"
525
681
  }
526
682
  };
527
- return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("header", { style: styles.header }, /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.logo, onClick: (e) => handleNavigation("/", e) }, /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.logoDot }), logoText), /* @__PURE__ */ import_react2.default.createElement(
683
+ return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("header", { style: styles.header }, /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.logo, onClick: (e) => handleNavigation("/", e) }, showBadge && /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.logoDot }), logoText), showDesktopLinks && /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.desktopNav }, links.map((link, idx) => /* @__PURE__ */ import_react2.default.createElement(
684
+ "div",
685
+ {
686
+ key: idx,
687
+ style: styles.desktopLinkWrapper,
688
+ onMouseEnter: () => handleDropdownEnter(idx),
689
+ onMouseLeave: () => handleDropdownLeave(idx)
690
+ },
691
+ /* @__PURE__ */ import_react2.default.createElement(
692
+ "a",
693
+ {
694
+ href: link.path,
695
+ style: { ...styles.desktopLink, color: location.pathname === link.path ? accentColor : textMain },
696
+ onClick: (e) => {
697
+ if (!link.children) handleNavigation(link.path, e);
698
+ }
699
+ },
700
+ link.label,
701
+ link.children && /* @__PURE__ */ import_react2.default.createElement(import_fi.FiChevronDown, { style: { marginTop: "2px" }, size: 16 })
702
+ ),
703
+ link.children && /* @__PURE__ */ import_react2.default.createElement(
704
+ "div",
705
+ {
706
+ ref: (el) => desktopDropdownRefs.current[idx] = el,
707
+ style: styles.desktopDropdown
708
+ },
709
+ link.children.map((child, cIdx) => /* @__PURE__ */ import_react2.default.createElement(
710
+ "a",
711
+ {
712
+ key: cIdx,
713
+ href: child.path,
714
+ style: styles.dropdownItem,
715
+ onClick: (e) => handleNavigation(child.path, e),
716
+ onMouseEnter: (e) => {
717
+ e.currentTarget.style.backgroundColor = isLight2 ? "rgba(0,0,0,0.05)" : "rgba(255,255,255,0.05)";
718
+ e.currentTarget.style.color = accentColor;
719
+ },
720
+ onMouseLeave: (e) => {
721
+ e.currentTarget.style.backgroundColor = "transparent";
722
+ e.currentTarget.style.color = textMain;
723
+ }
724
+ },
725
+ child.label
726
+ ))
727
+ )
728
+ ))), /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.rightActions }, showSearch && /* @__PURE__ */ import_react2.default.createElement(
729
+ "div",
730
+ {
731
+ style: styles.iconBtn,
732
+ onClick: onSearch,
733
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
734
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
735
+ },
736
+ /* @__PURE__ */ import_react2.default.createElement(import_fi.FiSearch, null)
737
+ ), showUser && /* @__PURE__ */ import_react2.default.createElement(
738
+ "div",
739
+ {
740
+ style: styles.iconBtn,
741
+ onClick: onUserClick,
742
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
743
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
744
+ },
745
+ /* @__PURE__ */ import_react2.default.createElement(import_fi.FiUser, null)
746
+ ), showCart && /* @__PURE__ */ import_react2.default.createElement(
747
+ "div",
748
+ {
749
+ style: styles.iconBtn,
750
+ onClick: onCartClick,
751
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
752
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
753
+ },
754
+ /* @__PURE__ */ import_react2.default.createElement(import_fi.FiShoppingBag, null),
755
+ cartCount > 0 && /* @__PURE__ */ import_react2.default.createElement("span", { style: styles.cartBadge }, cartCount)
756
+ ), showHamburger && /* @__PURE__ */ import_react2.default.createElement(
528
757
  "div",
529
758
  {
530
759
  style: styles.hamburgerBtn,
@@ -542,27 +771,28 @@ var Navbar = ({
542
771
  }
543
772
  }
544
773
  },
545
- /* @__PURE__ */ import_react2.default.createElement("div", { style: {
546
- ...styles.line,
547
- transform: isOpen ? "translateY(4px) rotate(45deg)" : "none"
548
- } }),
549
- /* @__PURE__ */ import_react2.default.createElement("div", { style: {
550
- ...styles.line,
551
- transform: isOpen ? "translateY(-4px) rotate(-45deg)" : "none"
552
- } })
553
- )), /* @__PURE__ */ import_react2.default.createElement("div", { ref: overlayRef, style: styles.overlay }, /* @__PURE__ */ import_react2.default.createElement("div", { ref: linksContainerRef, style: styles.linksArea }, links.map((link, idx) => {
774
+ /* @__PURE__ */ import_react2.default.createElement("div", { style: { ...styles.line, transform: isOpen ? "translateY(4px) rotate(45deg)" : "none" } }),
775
+ /* @__PURE__ */ import_react2.default.createElement("div", { style: { ...styles.line, transform: isOpen ? "translateY(-4px) rotate(-45deg)" : "none" } })
776
+ ))), /* @__PURE__ */ import_react2.default.createElement("div", { ref: overlayRef, style: styles.overlay }, /* @__PURE__ */ import_react2.default.createElement("div", { ref: linksContainerRef, style: styles.linksArea }, links.map((link, idx) => {
554
777
  const isHovered = hoverIndex === idx;
555
778
  const isAnyHovered = hoverIndex !== null;
556
779
  const isActiveRoute = location.pathname === link.path;
557
- return /* @__PURE__ */ import_react2.default.createElement(
780
+ const isExpanded = expandedOverlay === idx;
781
+ return /* @__PURE__ */ import_react2.default.createElement("div", { key: idx, style: styles.overlayLinkItem }, /* @__PURE__ */ import_react2.default.createElement(
558
782
  "a",
559
783
  {
560
- key: idx,
561
784
  href: link.path,
562
- onClick: (e) => handleNavigation(link.path, e),
785
+ onClick: (e) => {
786
+ if (link.children) {
787
+ e.preventDefault();
788
+ setExpandedOverlay(isExpanded ? null : idx);
789
+ } else {
790
+ handleNavigation(link.path, e);
791
+ }
792
+ },
563
793
  onMouseEnter: () => setHoverIndex(idx),
564
794
  onMouseLeave: () => setHoverIndex(null),
565
- style: styles.linkItem
795
+ style: styles.overlayLinkMain
566
796
  },
567
797
  /* @__PURE__ */ import_react2.default.createElement("span", { style: {
568
798
  ...styles.linkText,
@@ -571,7 +801,18 @@ var Navbar = ({
571
801
  transform: isHovered || isActiveRoute ? "translateX(20px)" : "translateX(0px)",
572
802
  transition: "all 0.4s cubic-bezier(0.16, 1, 0.3, 1)"
573
803
  } }, link.label),
574
- /* @__PURE__ */ import_react2.default.createElement(
804
+ link.children ? /* @__PURE__ */ import_react2.default.createElement(
805
+ import_fi.FiChevronDown,
806
+ {
807
+ style: {
808
+ fontSize: "clamp(24px, 3vw, 40px)",
809
+ color: accentColor,
810
+ opacity: isHovered ? 1 : 0,
811
+ transform: isExpanded ? "rotate(180deg)" : "rotate(0deg)",
812
+ transition: "all 0.5s ease"
813
+ }
814
+ }
815
+ ) : /* @__PURE__ */ import_react2.default.createElement(
575
816
  import_fi.FiArrowUpRight,
576
817
  {
577
818
  style: {
@@ -583,7 +824,29 @@ var Navbar = ({
583
824
  }
584
825
  }
585
826
  )
586
- );
827
+ ), link.children && /* @__PURE__ */ import_react2.default.createElement("div", { style: {
828
+ ...styles.accordionContent,
829
+ maxHeight: isExpanded ? "500px" : "0px",
830
+ opacity: isExpanded ? 1 : 0,
831
+ transition: "all 0.5s cubic-bezier(0.16, 1, 0.3, 1)"
832
+ } }, link.children.map((child, cIdx) => /* @__PURE__ */ import_react2.default.createElement(
833
+ "a",
834
+ {
835
+ key: cIdx,
836
+ href: child.path,
837
+ onClick: (e) => handleNavigation(child.path, e),
838
+ style: styles.accordionLink,
839
+ onMouseEnter: (e) => {
840
+ e.currentTarget.style.color = accentColor;
841
+ e.currentTarget.style.paddingLeft = "10px";
842
+ },
843
+ onMouseLeave: (e) => {
844
+ e.currentTarget.style.color = textMuted;
845
+ e.currentTarget.style.paddingLeft = "0px";
846
+ }
847
+ },
848
+ child.label
849
+ ))));
587
850
  })), /* @__PURE__ */ import_react2.default.createElement("div", { ref: infoContainerRef, style: styles.infoArea }, /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.infoBlock }, /* @__PURE__ */ import_react2.default.createElement("span", { style: styles.infoLabel }, contact.title), /* @__PURE__ */ import_react2.default.createElement("span", { style: styles.infoText }, contact.email), /* @__PURE__ */ import_react2.default.createElement("span", { style: { ...styles.infoText, color: textMuted } }, contact.address)), /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.infoBlock }, /* @__PURE__ */ import_react2.default.createElement("span", { style: styles.infoLabel }, "Socials"), /* @__PURE__ */ import_react2.default.createElement("div", { style: styles.socialGrid }, socials.map((social, idx) => /* @__PURE__ */ import_react2.default.createElement(
588
851
  "a",
589
852
  {
package/dist/index.mjs CHANGED
@@ -199,12 +199,32 @@ var Button = ({
199
199
  import React2, { useRef as useRef2, useEffect as useEffect2, useState } from "react";
200
200
  import { Link, useInRouterContext as useInRouterContext2, useNavigate as useNavigate2, useLocation } from "react-router-dom";
201
201
  import { gsap as gsap2 } from "gsap";
202
- import { FiArrowUpRight, FiTwitter, FiGithub, FiLinkedin } from "react-icons/fi";
202
+ import {
203
+ FiArrowUpRight,
204
+ FiTwitter,
205
+ FiGithub,
206
+ FiLinkedin,
207
+ FiSearch,
208
+ FiShoppingBag,
209
+ FiUser,
210
+ FiChevronDown
211
+ } from "react-icons/fi";
203
212
  var Navbar = ({
204
213
  logoText = "AURA",
214
+ showBadge = true,
215
+ variant = "overlay",
216
+ // "overlay" | "classic"
205
217
  links = [
206
218
  { label: "Home", path: "/" },
207
- { label: "Products", path: "/products" },
219
+ {
220
+ label: "Products",
221
+ path: "/products",
222
+ children: [
223
+ { label: "New Arrivals", path: "/new" },
224
+ { label: "Best Sellers", path: "/best" },
225
+ { label: "Accessories", path: "/accessories" }
226
+ ]
227
+ },
208
228
  { label: "Workspace", path: "/workspace" },
209
229
  { label: "Pricing", path: "/pricing" }
210
230
  ],
@@ -218,25 +238,36 @@ var Navbar = ({
218
238
  email: "hello@aura-ui.dev",
219
239
  address: "123 Innovation Drive, SF"
220
240
  },
241
+ // E-commerce Triggers
242
+ showSearch = false,
243
+ onSearch = () => console.log("Search clicked"),
244
+ showCart = false,
245
+ cartCount = 0,
246
+ onCartClick = () => console.log("Cart clicked"),
247
+ showUser = false,
248
+ onUserClick = () => console.log("User clicked"),
249
+ // Theme & Styling
221
250
  accentColor = "#6366f1",
222
251
  theme = "dark",
223
252
  // "dark" | "light"
253
+ transparent = false,
224
254
  style = {},
225
255
  animationDuration = 1.2,
226
256
  easing = "expo.inOut",
227
257
  linkSize = "clamp(42px, 7vw, 100px)"
228
- // Option to change navlink size
229
258
  }) => {
230
259
  const [isOpen, setIsOpen] = useState(false);
231
260
  const [isScrolled, setIsScrolled] = useState(false);
232
261
  const [isMobile, setIsMobile] = useState(false);
233
262
  const [hoverIndex, setHoverIndex] = useState(null);
263
+ const [expandedOverlay, setExpandedOverlay] = useState(null);
234
264
  const inRouter = useInRouterContext2();
235
265
  const navigate = inRouter ? useNavigate2() : null;
236
266
  const location = inRouter ? useLocation() : { pathname: "/" };
237
267
  const overlayRef = useRef2(null);
238
268
  const linksContainerRef = useRef2(null);
239
269
  const infoContainerRef = useRef2(null);
270
+ const desktopDropdownRefs = useRef2({});
240
271
  const isLight2 = theme === "light";
241
272
  const bgMain = isLight2 ? "#ffffff" : "#050505";
242
273
  const textMain = isLight2 ? "#0f172a" : "#ffffff";
@@ -285,34 +316,70 @@ var Navbar = ({
285
316
  }
286
317
  } else {
287
318
  document.body.style.overflow = "";
288
- const tl = gsap2.timeline();
289
- tl.to(overlayRef.current, {
319
+ gsap2.to(overlayRef.current, {
290
320
  clipPath: "circle(0% at 95% 40px)",
291
321
  pointerEvents: "none",
292
322
  duration: animationDuration * 0.7,
293
323
  ease: "expo.inOut"
294
324
  });
325
+ setExpandedOverlay(null);
295
326
  }
296
327
  return () => {
297
328
  document.body.style.overflow = "";
298
329
  };
299
330
  }, [isOpen, animationDuration, easing, prefersReducedMotion]);
331
+ const handleDropdownEnter = (idx) => {
332
+ if (desktopDropdownRefs.current[idx]) {
333
+ gsap2.killTweensOf(desktopDropdownRefs.current[idx]);
334
+ gsap2.to(desktopDropdownRefs.current[idx], {
335
+ opacity: 1,
336
+ y: 10,
337
+ pointerEvents: "auto",
338
+ visibility: "visible",
339
+ duration: 0.3,
340
+ ease: "power2.out"
341
+ });
342
+ }
343
+ };
344
+ const handleDropdownLeave = (idx) => {
345
+ if (desktopDropdownRefs.current[idx]) {
346
+ gsap2.to(desktopDropdownRefs.current[idx], {
347
+ opacity: 0,
348
+ y: 0,
349
+ pointerEvents: "none",
350
+ visibility: "hidden",
351
+ duration: 0.2,
352
+ ease: "power2.in"
353
+ });
354
+ }
355
+ };
300
356
  const handleNavigation = (path, e) => {
301
357
  e.preventDefault();
302
358
  if (location.pathname === path) {
303
359
  setIsOpen(false);
304
360
  return;
305
361
  }
306
- setIsOpen(false);
307
- setTimeout(() => {
362
+ if (isOpen) {
363
+ setIsOpen(false);
364
+ setTimeout(() => {
365
+ if (navigate) {
366
+ navigate(path);
367
+ window.scrollTo(0, 0);
368
+ } else {
369
+ window.location.href = path;
370
+ }
371
+ }, animationDuration * 0.7 * 1e3);
372
+ } else {
308
373
  if (navigate) {
309
374
  navigate(path);
310
375
  window.scrollTo(0, 0);
311
376
  } else {
312
377
  window.location.href = path;
313
378
  }
314
- }, animationDuration * 0.7 * 1e3);
379
+ }
315
380
  };
381
+ const showHamburger = isMobile || variant === "overlay";
382
+ const showDesktopLinks = variant === "classic" && !isMobile;
316
383
  const styles = {
317
384
  header: {
318
385
  position: "fixed",
@@ -326,9 +393,9 @@ var Navbar = ({
326
393
  fontFamily: '"Inter", -apple-system, sans-serif',
327
394
  boxSizing: "border-box",
328
395
  padding: isScrolled ? "15px 5%" : "30px 5%",
329
- backgroundColor: isScrolled ? headerBg : "transparent",
330
- backdropFilter: isScrolled ? "blur(20px)" : "none",
331
- boxShadow: isScrolled ? headerShadow : "none",
396
+ backgroundColor: isScrolled ? headerBg : transparent ? "transparent" : headerBg,
397
+ backdropFilter: isScrolled || !transparent ? "blur(20px)" : "none",
398
+ boxShadow: isScrolled ? headerShadow : !transparent && headerShadow,
332
399
  transition: "all 0.5s cubic-bezier(0.16, 1, 0.3, 1)",
333
400
  ...style
334
401
  },
@@ -341,7 +408,6 @@ var Navbar = ({
341
408
  letterSpacing: "1px",
342
409
  textDecoration: "none",
343
410
  color: textMain,
344
- // Text logic handles contrast via theme
345
411
  zIndex: 1001,
346
412
  cursor: "pointer",
347
413
  willChange: "transform",
@@ -354,6 +420,86 @@ var Navbar = ({
354
420
  backgroundColor: accentColor,
355
421
  boxShadow: `0 0 15px ${accentColor}88`
356
422
  },
423
+ desktopNav: {
424
+ display: "flex",
425
+ flex: 1,
426
+ justifyContent: "center",
427
+ alignItems: "center",
428
+ gap: "30px"
429
+ },
430
+ desktopLinkWrapper: {
431
+ position: "relative",
432
+ padding: "10px 0"
433
+ },
434
+ desktopLink: {
435
+ color: textMain,
436
+ textDecoration: "none",
437
+ fontSize: "15px",
438
+ fontWeight: "600",
439
+ cursor: "pointer",
440
+ display: "flex",
441
+ alignItems: "center",
442
+ gap: "6px",
443
+ transition: "color 0.3s"
444
+ },
445
+ desktopDropdown: {
446
+ position: "absolute",
447
+ top: "100%",
448
+ left: "50%",
449
+ transform: "translateX(-50%) translateY(0)",
450
+ backgroundColor: bgMain,
451
+ border: `1px solid ${borderCol}`,
452
+ borderRadius: "16px",
453
+ padding: "8px",
454
+ minWidth: "200px",
455
+ boxShadow: "0 10px 40px rgba(0,0,0,0.1)",
456
+ opacity: 0,
457
+ visibility: "hidden",
458
+ pointerEvents: "none",
459
+ display: "flex",
460
+ flexDirection: "column",
461
+ gap: "4px"
462
+ },
463
+ dropdownItem: {
464
+ padding: "12px 16px",
465
+ borderRadius: "10px",
466
+ color: textMain,
467
+ textDecoration: "none",
468
+ fontSize: "14px",
469
+ fontWeight: "500",
470
+ transition: "background-color 0.2s, color 0.2s"
471
+ },
472
+ rightActions: {
473
+ display: "flex",
474
+ alignItems: "center",
475
+ gap: "20px",
476
+ zIndex: 1001
477
+ },
478
+ iconBtn: {
479
+ fontSize: "22px",
480
+ color: textMain,
481
+ cursor: "pointer",
482
+ display: "flex",
483
+ alignItems: "center",
484
+ position: "relative",
485
+ transition: "transform 0.2s ease, color 0.2s ease"
486
+ },
487
+ cartBadge: {
488
+ position: "absolute",
489
+ top: "-6px",
490
+ right: "-8px",
491
+ backgroundColor: accentColor,
492
+ color: "#fff",
493
+ fontSize: "10px",
494
+ fontWeight: "800",
495
+ minWidth: "16px",
496
+ height: "16px",
497
+ borderRadius: "8px",
498
+ display: "flex",
499
+ justifyContent: "center",
500
+ alignItems: "center",
501
+ padding: "0 4px"
502
+ },
357
503
  hamburgerBtn: {
358
504
  position: "relative",
359
505
  width: "48px",
@@ -366,7 +512,6 @@ var Navbar = ({
366
512
  alignItems: "center",
367
513
  gap: "6px",
368
514
  cursor: "pointer",
369
- zIndex: 1001,
370
515
  border: `1px solid ${isOpen ? borderCol : "transparent"}`,
371
516
  transition: "all 0.4s ease"
372
517
  },
@@ -374,7 +519,6 @@ var Navbar = ({
374
519
  width: "22px",
375
520
  height: "2px",
376
521
  backgroundColor: textMain,
377
- // Uses theme for color
378
522
  borderRadius: "2px",
379
523
  transition: "all 0.4s cubic-bezier(0.16, 1, 0.3, 1)",
380
524
  transformOrigin: "center"
@@ -383,22 +527,21 @@ var Navbar = ({
383
527
  position: "fixed",
384
528
  top: 0,
385
529
  left: 0,
386
- width: "100vw",
530
+ width: "100%",
387
531
  height: "100vh",
388
532
  backgroundColor: bgMain,
389
533
  zIndex: 999,
390
534
  clipPath: "circle(0% at 95% 40px)",
391
535
  pointerEvents: "none",
392
536
  display: "flex",
393
- // Switch to flex for bulletproof layout
394
537
  flexDirection: isMobile ? "column" : "row",
395
538
  justifyContent: isMobile ? "flex-start" : "space-between",
396
539
  alignItems: isMobile ? "flex-start" : "center",
397
540
  padding: isMobile ? "120px 8% 60px" : "100px 10%",
398
541
  boxSizing: "border-box",
399
542
  fontFamily: '"Inter", -apple-system, sans-serif',
400
- overflowY: isMobile ? "auto" : "hidden"
401
- // Allow scroll on mobile if items overflow
543
+ overflowY: isMobile ? "auto" : "none"
544
+ // Prevent scroll lock bugs on desktop
402
545
  },
403
546
  linksArea: {
404
547
  display: "flex",
@@ -407,7 +550,12 @@ var Navbar = ({
407
550
  width: isMobile ? "100%" : "60%",
408
551
  marginBottom: isMobile ? "60px" : "0"
409
552
  },
410
- linkItem: {
553
+ overlayLinkItem: {
554
+ display: "flex",
555
+ flexDirection: "column",
556
+ width: "100%"
557
+ },
558
+ overlayLinkMain: {
411
559
  display: "flex",
412
560
  alignItems: "center",
413
561
  gap: "20px",
@@ -423,6 +571,23 @@ var Navbar = ({
423
571
  textTransform: "uppercase",
424
572
  lineHeight: "1"
425
573
  },
574
+ accordionContent: {
575
+ display: "flex",
576
+ flexDirection: "column",
577
+ paddingLeft: "2%",
578
+ borderLeft: `2px solid ${borderCol}`,
579
+ marginLeft: "1%",
580
+ marginTop: "10px",
581
+ gap: "15px",
582
+ overflow: "hidden"
583
+ },
584
+ accordionLink: {
585
+ fontSize: "clamp(20px, 3vw, 32px)",
586
+ fontWeight: "600",
587
+ color: textMuted,
588
+ textDecoration: "none",
589
+ transition: "color 0.3s ease"
590
+ },
426
591
  infoArea: {
427
592
  display: "flex",
428
593
  flexDirection: "column",
@@ -468,7 +633,80 @@ var Navbar = ({
468
633
  transition: "all 0.3s ease"
469
634
  }
470
635
  };
471
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("header", { style: styles.header }, /* @__PURE__ */ React2.createElement("div", { style: styles.logo, onClick: (e) => handleNavigation("/", e) }, /* @__PURE__ */ React2.createElement("div", { style: styles.logoDot }), logoText), /* @__PURE__ */ React2.createElement(
636
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("header", { style: styles.header }, /* @__PURE__ */ React2.createElement("div", { style: styles.logo, onClick: (e) => handleNavigation("/", e) }, showBadge && /* @__PURE__ */ React2.createElement("div", { style: styles.logoDot }), logoText), showDesktopLinks && /* @__PURE__ */ React2.createElement("div", { style: styles.desktopNav }, links.map((link, idx) => /* @__PURE__ */ React2.createElement(
637
+ "div",
638
+ {
639
+ key: idx,
640
+ style: styles.desktopLinkWrapper,
641
+ onMouseEnter: () => handleDropdownEnter(idx),
642
+ onMouseLeave: () => handleDropdownLeave(idx)
643
+ },
644
+ /* @__PURE__ */ React2.createElement(
645
+ "a",
646
+ {
647
+ href: link.path,
648
+ style: { ...styles.desktopLink, color: location.pathname === link.path ? accentColor : textMain },
649
+ onClick: (e) => {
650
+ if (!link.children) handleNavigation(link.path, e);
651
+ }
652
+ },
653
+ link.label,
654
+ link.children && /* @__PURE__ */ React2.createElement(FiChevronDown, { style: { marginTop: "2px" }, size: 16 })
655
+ ),
656
+ link.children && /* @__PURE__ */ React2.createElement(
657
+ "div",
658
+ {
659
+ ref: (el) => desktopDropdownRefs.current[idx] = el,
660
+ style: styles.desktopDropdown
661
+ },
662
+ link.children.map((child, cIdx) => /* @__PURE__ */ React2.createElement(
663
+ "a",
664
+ {
665
+ key: cIdx,
666
+ href: child.path,
667
+ style: styles.dropdownItem,
668
+ onClick: (e) => handleNavigation(child.path, e),
669
+ onMouseEnter: (e) => {
670
+ e.currentTarget.style.backgroundColor = isLight2 ? "rgba(0,0,0,0.05)" : "rgba(255,255,255,0.05)";
671
+ e.currentTarget.style.color = accentColor;
672
+ },
673
+ onMouseLeave: (e) => {
674
+ e.currentTarget.style.backgroundColor = "transparent";
675
+ e.currentTarget.style.color = textMain;
676
+ }
677
+ },
678
+ child.label
679
+ ))
680
+ )
681
+ ))), /* @__PURE__ */ React2.createElement("div", { style: styles.rightActions }, showSearch && /* @__PURE__ */ React2.createElement(
682
+ "div",
683
+ {
684
+ style: styles.iconBtn,
685
+ onClick: onSearch,
686
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
687
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
688
+ },
689
+ /* @__PURE__ */ React2.createElement(FiSearch, null)
690
+ ), showUser && /* @__PURE__ */ React2.createElement(
691
+ "div",
692
+ {
693
+ style: styles.iconBtn,
694
+ onClick: onUserClick,
695
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
696
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
697
+ },
698
+ /* @__PURE__ */ React2.createElement(FiUser, null)
699
+ ), showCart && /* @__PURE__ */ React2.createElement(
700
+ "div",
701
+ {
702
+ style: styles.iconBtn,
703
+ onClick: onCartClick,
704
+ onMouseEnter: (e) => e.currentTarget.style.color = accentColor,
705
+ onMouseLeave: (e) => e.currentTarget.style.color = textMain
706
+ },
707
+ /* @__PURE__ */ React2.createElement(FiShoppingBag, null),
708
+ cartCount > 0 && /* @__PURE__ */ React2.createElement("span", { style: styles.cartBadge }, cartCount)
709
+ ), showHamburger && /* @__PURE__ */ React2.createElement(
472
710
  "div",
473
711
  {
474
712
  style: styles.hamburgerBtn,
@@ -486,27 +724,28 @@ var Navbar = ({
486
724
  }
487
725
  }
488
726
  },
489
- /* @__PURE__ */ React2.createElement("div", { style: {
490
- ...styles.line,
491
- transform: isOpen ? "translateY(4px) rotate(45deg)" : "none"
492
- } }),
493
- /* @__PURE__ */ React2.createElement("div", { style: {
494
- ...styles.line,
495
- transform: isOpen ? "translateY(-4px) rotate(-45deg)" : "none"
496
- } })
497
- )), /* @__PURE__ */ React2.createElement("div", { ref: overlayRef, style: styles.overlay }, /* @__PURE__ */ React2.createElement("div", { ref: linksContainerRef, style: styles.linksArea }, links.map((link, idx) => {
727
+ /* @__PURE__ */ React2.createElement("div", { style: { ...styles.line, transform: isOpen ? "translateY(4px) rotate(45deg)" : "none" } }),
728
+ /* @__PURE__ */ React2.createElement("div", { style: { ...styles.line, transform: isOpen ? "translateY(-4px) rotate(-45deg)" : "none" } })
729
+ ))), /* @__PURE__ */ React2.createElement("div", { ref: overlayRef, style: styles.overlay }, /* @__PURE__ */ React2.createElement("div", { ref: linksContainerRef, style: styles.linksArea }, links.map((link, idx) => {
498
730
  const isHovered = hoverIndex === idx;
499
731
  const isAnyHovered = hoverIndex !== null;
500
732
  const isActiveRoute = location.pathname === link.path;
501
- return /* @__PURE__ */ React2.createElement(
733
+ const isExpanded = expandedOverlay === idx;
734
+ return /* @__PURE__ */ React2.createElement("div", { key: idx, style: styles.overlayLinkItem }, /* @__PURE__ */ React2.createElement(
502
735
  "a",
503
736
  {
504
- key: idx,
505
737
  href: link.path,
506
- onClick: (e) => handleNavigation(link.path, e),
738
+ onClick: (e) => {
739
+ if (link.children) {
740
+ e.preventDefault();
741
+ setExpandedOverlay(isExpanded ? null : idx);
742
+ } else {
743
+ handleNavigation(link.path, e);
744
+ }
745
+ },
507
746
  onMouseEnter: () => setHoverIndex(idx),
508
747
  onMouseLeave: () => setHoverIndex(null),
509
- style: styles.linkItem
748
+ style: styles.overlayLinkMain
510
749
  },
511
750
  /* @__PURE__ */ React2.createElement("span", { style: {
512
751
  ...styles.linkText,
@@ -515,7 +754,18 @@ var Navbar = ({
515
754
  transform: isHovered || isActiveRoute ? "translateX(20px)" : "translateX(0px)",
516
755
  transition: "all 0.4s cubic-bezier(0.16, 1, 0.3, 1)"
517
756
  } }, link.label),
518
- /* @__PURE__ */ React2.createElement(
757
+ link.children ? /* @__PURE__ */ React2.createElement(
758
+ FiChevronDown,
759
+ {
760
+ style: {
761
+ fontSize: "clamp(24px, 3vw, 40px)",
762
+ color: accentColor,
763
+ opacity: isHovered ? 1 : 0,
764
+ transform: isExpanded ? "rotate(180deg)" : "rotate(0deg)",
765
+ transition: "all 0.5s ease"
766
+ }
767
+ }
768
+ ) : /* @__PURE__ */ React2.createElement(
519
769
  FiArrowUpRight,
520
770
  {
521
771
  style: {
@@ -527,7 +777,29 @@ var Navbar = ({
527
777
  }
528
778
  }
529
779
  )
530
- );
780
+ ), link.children && /* @__PURE__ */ React2.createElement("div", { style: {
781
+ ...styles.accordionContent,
782
+ maxHeight: isExpanded ? "500px" : "0px",
783
+ opacity: isExpanded ? 1 : 0,
784
+ transition: "all 0.5s cubic-bezier(0.16, 1, 0.3, 1)"
785
+ } }, link.children.map((child, cIdx) => /* @__PURE__ */ React2.createElement(
786
+ "a",
787
+ {
788
+ key: cIdx,
789
+ href: child.path,
790
+ onClick: (e) => handleNavigation(child.path, e),
791
+ style: styles.accordionLink,
792
+ onMouseEnter: (e) => {
793
+ e.currentTarget.style.color = accentColor;
794
+ e.currentTarget.style.paddingLeft = "10px";
795
+ },
796
+ onMouseLeave: (e) => {
797
+ e.currentTarget.style.color = textMuted;
798
+ e.currentTarget.style.paddingLeft = "0px";
799
+ }
800
+ },
801
+ child.label
802
+ ))));
531
803
  })), /* @__PURE__ */ React2.createElement("div", { ref: infoContainerRef, style: styles.infoArea }, /* @__PURE__ */ React2.createElement("div", { style: styles.infoBlock }, /* @__PURE__ */ React2.createElement("span", { style: styles.infoLabel }, contact.title), /* @__PURE__ */ React2.createElement("span", { style: styles.infoText }, contact.email), /* @__PURE__ */ React2.createElement("span", { style: { ...styles.infoText, color: textMuted } }, contact.address)), /* @__PURE__ */ React2.createElement("div", { style: styles.infoBlock }, /* @__PURE__ */ React2.createElement("span", { style: styles.infoLabel }, "Socials"), /* @__PURE__ */ React2.createElement("div", { style: styles.socialGrid }, socials.map((social, idx) => /* @__PURE__ */ React2.createElement(
532
804
  "a",
533
805
  {
@@ -4146,7 +4418,7 @@ var Canvas = ({
4146
4418
  import React17, { useRef as useRef17, useEffect as useEffect17 } from "react";
4147
4419
  import { gsap as gsap17 } from "gsap";
4148
4420
  import { ScrollTrigger } from "gsap/ScrollTrigger";
4149
- import { FiChevronDown, FiArrowRight as FiArrowRight5 } from "react-icons/fi";
4421
+ import { FiChevronDown as FiChevronDown2, FiArrowRight as FiArrowRight5 } from "react-icons/fi";
4150
4422
  if (typeof window !== "undefined") {
4151
4423
  gsap17.registerPlugin(ScrollTrigger);
4152
4424
  }
@@ -4382,7 +4654,7 @@ var ParallaxImage = ({
4382
4654
  onMouseLeave: handleMouseLeave
4383
4655
  },
4384
4656
  /* @__PURE__ */ React17.createElement("span", null, "Scroll"),
4385
- /* @__PURE__ */ React17.createElement(FiChevronDown, { fontSize: "24px" })
4657
+ /* @__PURE__ */ React17.createElement(FiChevronDown2, { fontSize: "24px" })
4386
4658
  ));
4387
4659
  };
4388
4660
 
@@ -5635,7 +5907,7 @@ import { gsap as gsap22 } from "gsap";
5635
5907
  import {
5636
5908
  FiMail as FiMail3,
5637
5909
  FiLock as FiLock2,
5638
- FiUser,
5910
+ FiUser as FiUser2,
5639
5911
  FiArrowRight as FiArrowRight9,
5640
5912
  FiCheckCircle,
5641
5913
  FiShield,
@@ -5947,7 +6219,7 @@ var AuraRegister = ({
5947
6219
  } }, /* @__PURE__ */ React22.createElement(FiShield, null))),
5948
6220
  /* @__PURE__ */ React22.createElement("h1", { ref: titleRef, style: styles.title }, /* @__PURE__ */ React22.createElement(SplitText, { text: title })),
5949
6221
  /* @__PURE__ */ React22.createElement("p", { style: styles.subtitle }, subtitle),
5950
- /* @__PURE__ */ React22.createElement("form", { ref: formRef, style: styles.form, onSubmit: handleSubmit }, /* @__PURE__ */ React22.createElement("div", { style: styles.inputGroup }, /* @__PURE__ */ React22.createElement("label", { style: styles.inputLabel }, "Full Name"), /* @__PURE__ */ React22.createElement("div", { style: styles.inputWrapper }, /* @__PURE__ */ React22.createElement(FiUser, { style: styles.inputIcon }), /* @__PURE__ */ React22.createElement(
6222
+ /* @__PURE__ */ React22.createElement("form", { ref: formRef, style: styles.form, onSubmit: handleSubmit }, /* @__PURE__ */ React22.createElement("div", { style: styles.inputGroup }, /* @__PURE__ */ React22.createElement("label", { style: styles.inputLabel }, "Full Name"), /* @__PURE__ */ React22.createElement("div", { style: styles.inputWrapper }, /* @__PURE__ */ React22.createElement(FiUser2, { style: styles.inputIcon }), /* @__PURE__ */ React22.createElement(
5951
6223
  "input",
5952
6224
  {
5953
6225
  name: "name",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aura-ui-library",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "A modern and customizable UI library for React applications.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",