dune-react 0.0.36 → 0.0.38

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.
@@ -48,46 +48,65 @@ const ImageCarousel = (props) => {
48
48
  return "basis-full";
49
49
  }
50
50
  };
51
- return /* @__PURE__ */ jsxs(SectionWrapper, { className: cn({ "h-dvh": isFullscreen }, sectionClassName), style: sectionStyle, css, children: [
52
- /* @__PURE__ */ jsx("div", { className: "px-[5%] py-8 md:py-12 lg:py-14", children: /* @__PURE__ */ jsxs(
53
- "div",
54
- {
55
- className: cn("container", {
56
- "text-center": isHeaderCenter,
57
- "text-left": !isHeaderCenter
58
- }),
59
- children: [
60
- /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
61
- /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
62
- ]
63
- }
64
- ) }),
65
- /* @__PURE__ */ jsxs(
66
- Carousel,
67
- {
68
- setApi,
69
- opts: { loop: true, align: "start" },
70
- className: cn({ "overflow-hidden": slideOverflow === "hidden" }),
71
- children: [
72
- /* @__PURE__ */ jsx(CarouselContent, { className: "ml-0", children: medias.map((media, index) => /* @__PURE__ */ jsx(
73
- CarouselItem,
74
- {
75
- className: cn(
76
- "pl-0",
77
- getBasisClass(),
51
+ return /* @__PURE__ */ jsxs(
52
+ SectionWrapper,
53
+ {
54
+ className: cn(
55
+ { "h-dvh flex flex-col overflow-hidden": isFullscreen },
56
+ sectionClassName
57
+ ),
58
+ style: sectionStyle,
59
+ css,
60
+ children: [
61
+ /* @__PURE__ */ jsx("div", { className: cn("px-[5%] py-8 md:py-12 lg:py-14", { "shrink-0": isFullscreen }), children: /* @__PURE__ */ jsxs(
62
+ "div",
63
+ {
64
+ className: cn("container", {
65
+ "text-center": isHeaderCenter,
66
+ "text-left": !isHeaderCenter
67
+ }),
68
+ children: [
69
+ /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
70
+ /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
71
+ ]
72
+ }
73
+ ) }),
74
+ /* @__PURE__ */ jsxs(
75
+ Carousel,
76
+ {
77
+ setApi,
78
+ opts: { align: "start" },
79
+ className: cn({
80
+ "overflow-hidden": slideOverflow === "hidden",
81
+ "relative flex-1 min-h-0 [&>[data-slot=carousel-content]]:h-full": isFullscreen
82
+ }),
83
+ children: [
84
+ /* @__PURE__ */ jsx(CarouselContent, { className: cn("ml-0", { "h-full": isFullscreen }), children: medias.map((media, index) => /* @__PURE__ */ jsx(
85
+ CarouselItem,
78
86
  {
79
- "relative h-dvh": isFullscreen,
80
- "pr-6 md:pr-8": slidesPerView !== "1"
81
- }
82
- ),
83
- children: hasActiveOpacity ? /* @__PURE__ */ jsx(
84
- "div",
85
- {
86
- className: cn("size-full transition-opacity duration-300", {
87
- "opacity-100": current === index + 1,
88
- "opacity-40": current !== index + 1
87
+ className: cn("pl-0", getBasisClass(), {
88
+ "relative h-full": isFullscreen,
89
+ "pr-6 md:pr-8": slidesPerView !== "1"
89
90
  }),
90
- children: /* @__PURE__ */ jsx(
91
+ children: hasActiveOpacity ? /* @__PURE__ */ jsx(
92
+ "div",
93
+ {
94
+ className: cn("size-full transition-opacity duration-300", {
95
+ "opacity-100": current === index + 1,
96
+ "opacity-40": current !== index + 1
97
+ }),
98
+ children: /* @__PURE__ */ jsx(
99
+ CompoundMedia,
100
+ {
101
+ src: media.src,
102
+ alt: media.alt,
103
+ className: cn("size-full object-cover", {
104
+ "absolute inset-0": isFullscreen
105
+ })
106
+ }
107
+ )
108
+ }
109
+ ) : /* @__PURE__ */ jsx(
91
110
  CompoundMedia,
92
111
  {
93
112
  src: media.src,
@@ -97,57 +116,51 @@ const ImageCarousel = (props) => {
97
116
  })
98
117
  }
99
118
  )
100
- }
101
- ) : /* @__PURE__ */ jsx(
102
- CompoundMedia,
119
+ },
120
+ index
121
+ )) }),
122
+ isFullscreen && /* @__PURE__ */ jsxs(Fragment, { children: [
123
+ /* @__PURE__ */ jsx(CarouselPrevious, { className: "-mt-8 ml-16 hidden lg:flex" }),
124
+ /* @__PURE__ */ jsx(CarouselNext, { className: "-mt-8 mr-16 hidden lg:flex" })
125
+ ] }),
126
+ isBottomBar ? /* @__PURE__ */ jsxs("div", { className: "container mt-8 flex items-center justify-between px-[5%]", children: [
127
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2 md:gap-4", children: [
128
+ /* @__PURE__ */ jsx(CarouselPrevious, { className: "static left-0 top-0 size-12 -translate-y-0" }),
129
+ /* @__PURE__ */ jsx(CarouselNext, { className: "static left-0 top-0 size-12 -translate-y-0" })
130
+ ] }),
131
+ /* @__PURE__ */ jsx("div", { className: "flex items-center", children: medias.map((_, index) => /* @__PURE__ */ jsx(
132
+ "button",
133
+ {
134
+ onClick: () => api == null ? void 0 : api.scrollTo(index),
135
+ className: cn("mx-[3px] inline-block size-2 rounded-full", {
136
+ "bg-black": current === index + 1,
137
+ "bg-neutral-light": current !== index + 1
138
+ })
139
+ },
140
+ index
141
+ )) })
142
+ ] }) : /* @__PURE__ */ jsx("div", { className: "absolute bottom-8 left-1/2 -translate-x-1/2 transform", children: medias.map((_, index) => /* @__PURE__ */ jsx(
143
+ "button",
103
144
  {
104
- src: media.src,
105
- alt: media.alt,
106
- className: cn("size-full object-cover", {
107
- "absolute inset-0": isFullscreen
108
- })
109
- }
110
- )
111
- },
112
- index
113
- )) }),
114
- isFullscreen && /* @__PURE__ */ jsxs(Fragment, { children: [
115
- /* @__PURE__ */ jsx(CarouselPrevious, { className: "-mt-8 ml-8 hidden lg:flex" }),
116
- /* @__PURE__ */ jsx(CarouselNext, { className: "-mt-8 mr-8 hidden lg:flex" })
117
- ] }),
118
- isBottomBar ? /* @__PURE__ */ jsxs("div", { className: "container mt-8 flex items-center justify-between px-[5%]", children: [
119
- /* @__PURE__ */ jsxs("div", { className: "flex gap-2 md:gap-4", children: [
120
- /* @__PURE__ */ jsx(CarouselPrevious, { className: "static left-0 top-0 size-12 -translate-y-0" }),
121
- /* @__PURE__ */ jsx(CarouselNext, { className: "static left-0 top-0 size-12 -translate-y-0" })
122
- ] }),
123
- /* @__PURE__ */ jsx("div", { className: "flex items-center", children: medias.map((_, index) => /* @__PURE__ */ jsx(
124
- "button",
125
- {
126
- onClick: () => api == null ? void 0 : api.scrollTo(index),
127
- className: cn("mx-[3px] inline-block size-2 rounded-full", {
128
- "bg-black": current === index + 1,
129
- "bg-neutral-light": current !== index + 1
130
- })
131
- },
132
- index
133
- )) })
134
- ] }) : /* @__PURE__ */ jsx("div", { className: "absolute bottom-8 left-1/2 -translate-x-1/2 transform", children: medias.map((_, index) => /* @__PURE__ */ jsx(
135
- "button",
136
- {
137
- onClick: () => api == null ? void 0 : api.scrollTo(index),
138
- className: cn("relative mx-[3px] inline-block size-2 rounded-full", {
139
- "bg-white": isFullscreen && current === index + 1,
140
- "bg-white/40": isFullscreen && current !== index + 1,
141
- "bg-black": !isFullscreen && current === index + 1,
142
- "bg-neutral-light": !isFullscreen && current !== index + 1
143
- })
144
- },
145
- index
146
- )) })
147
- ]
148
- }
149
- )
150
- ] });
145
+ onClick: () => api == null ? void 0 : api.scrollTo(index),
146
+ className: cn(
147
+ "relative mx-[3px] inline-block size-2 rounded-full",
148
+ {
149
+ "bg-white": isFullscreen && current === index + 1,
150
+ "bg-white/40": isFullscreen && current !== index + 1,
151
+ "bg-black": !isFullscreen && current === index + 1,
152
+ "bg-neutral-light": !isFullscreen && current !== index + 1
153
+ }
154
+ )
155
+ },
156
+ index
157
+ )) })
158
+ ]
159
+ }
160
+ )
161
+ ]
162
+ }
163
+ );
151
164
  };
152
165
  const ImageCarouselDefaults = {
153
166
  tagline: "",
@@ -156,9 +169,18 @@ const ImageCarouselDefaults = {
156
169
  button: { label: "View all" },
157
170
  buttons: [],
158
171
  medias: [
159
- { src: "https://picsum.photos/seed/carousel-1/1920/1080", alt: "Gallery image 1" },
160
- { src: "https://picsum.photos/seed/carousel-2/1920/1080", alt: "Gallery image 2" },
161
- { src: "https://picsum.photos/seed/carousel-3/1920/1080", alt: "Gallery image 3" }
172
+ {
173
+ src: "https://picsum.photos/seed/carousel-1/1920/1080",
174
+ alt: "Gallery image 1"
175
+ },
176
+ {
177
+ src: "https://picsum.photos/seed/carousel-2/1920/1080",
178
+ alt: "Gallery image 2"
179
+ },
180
+ {
181
+ src: "https://picsum.photos/seed/carousel-3/1920/1080",
182
+ alt: "Gallery image 3"
183
+ }
162
184
  ],
163
185
  projects: [],
164
186
  hoverLinks: [],
@@ -9,55 +9,233 @@ import { RxChevronDown } from "../../../../node_modules/.pnpm/react-icons@5.6.0_
9
9
  import { cn } from "../../../../utils/css-utils.js";
10
10
  import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
11
11
  import { CompoundSocialLinks } from "../../../puck-base/social-links.js";
12
+ import { actionDefaults } from "../../../puck-core/core/props/interactive.js";
12
13
  const StandardNavbar = (props) => {
13
- const { logo, navLinks, buttons, socialLinks, styles } = { ...StandardNavbarDefaults, ...props };
14
- const { className: sectionClassName, style: sectionStyle, css } = styles ?? {};
14
+ const { logo, navLinks, buttons, socialLinks, styles } = {
15
+ ...StandardNavbarDefaults,
16
+ ...props
17
+ };
18
+ const {
19
+ className: sectionClassName,
20
+ style: sectionStyle,
21
+ css
22
+ } = styles ?? {};
15
23
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
16
24
  const isMobile = useMediaQuery("(max-width: 991px)");
17
- return /* @__PURE__ */ jsx(SectionWrapper, { className: cn("z-[999] flex w-full items-center border-b border-border-primary bg-background-primary lg:min-h-18 lg:px-[5%]", sectionClassName), style: sectionStyle, css, children: /* @__PURE__ */ jsxs("div", { className: "size-full lg:flex lg:items-center lg:justify-between", children: [
18
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-16 items-center justify-between px-[5%] md:min-h-18 lg:min-h-full lg:px-0", children: [
19
- /* @__PURE__ */ jsx("a", { href: logo == null ? void 0 : logo.url, children: /* @__PURE__ */ jsx(CompoundMedia, { src: logo == null ? void 0 : logo.src, alt: logo == null ? void 0 : logo.alt, className: "h-9 w-auto" }) }),
20
- /* @__PURE__ */ jsxs("button", { className: "-mr-2 flex size-12 flex-col items-center justify-center lg:hidden", onClick: () => setIsMobileMenuOpen((prev) => !prev), children: [
21
- /* @__PURE__ */ jsx(motion.span, { className: "my-[3px] h-0.5 w-6 bg-black", animate: isMobileMenuOpen ? ["open", "rotatePhase"] : "closed", variants: topLineVariants }),
22
- /* @__PURE__ */ jsx(motion.span, { className: "my-[3px] h-0.5 w-6 bg-black", animate: isMobileMenuOpen ? "open" : "closed", variants: middleLineVariants }),
23
- /* @__PURE__ */ jsx(motion.span, { className: "my-[3px] h-0.5 w-6 bg-black", animate: isMobileMenuOpen ? ["open", "rotatePhase"] : "closed", variants: bottomLineVariants })
24
- ] })
25
- ] }),
26
- /* @__PURE__ */ jsxs(motion.div, { variants: { open: { height: "var(--height-open, 100dvh)" }, close: { height: "var(--height-closed, 0)" } }, initial: "close", exit: "close", animate: isMobileMenuOpen ? "open" : "close", transition: { duration: 0.4 }, className: "overflow-hidden px-[5%] lg:flex lg:items-center lg:px-0 lg:[--height-closed:auto] lg:[--height-open:auto]", children: [
27
- navLinks == null ? void 0 : navLinks.map(
28
- (navLink, index) => navLink.subMenuLinks && navLink.subMenuLinks.length > 0 ? /* @__PURE__ */ jsx(SubMenu, { navLink, isMobile }, index) : /* @__PURE__ */ jsx("a", { href: navLink.url, className: "block py-3 text-md first:pt-7 lg:px-4 lg:py-2 lg:text-base first:lg:pt-2", children: navLink.title }, index)
25
+ return /* @__PURE__ */ jsx(
26
+ SectionWrapper,
27
+ {
28
+ className: cn(
29
+ "z-[999] flex w-full items-center border-b border-border-primary bg-background-primary lg:min-h-18 lg:px-[5%]",
30
+ sectionClassName
29
31
  ),
30
- /* @__PURE__ */ jsxs("div", { className: "mt-6 flex flex-col items-center gap-4 lg:ml-4 lg:mt-0 lg:flex-row", children: [
31
- buttons == null ? void 0 : buttons.map((button, index) => /* @__PURE__ */ jsx(Button, { variant: button.variant, size: button.size, className: "w-full", children: button.label }, index)),
32
- (styles == null ? void 0 : styles.showSocialLinks) === "true" && /* @__PURE__ */ jsx(CompoundSocialLinks, { links: socialLinks ?? [], iconClassName: "size-5", className: "gap-2" })
32
+ style: sectionStyle,
33
+ css,
34
+ children: /* @__PURE__ */ jsxs("div", { className: "size-full lg:flex lg:items-center lg:justify-between", children: [
35
+ /* @__PURE__ */ jsxs("div", { className: "flex min-h-16 items-center justify-between px-[5%] md:min-h-18 lg:min-h-full lg:px-0", children: [
36
+ /* @__PURE__ */ jsx("a", { href: logo == null ? void 0 : logo.url, children: /* @__PURE__ */ jsx(
37
+ CompoundMedia,
38
+ {
39
+ src: logo == null ? void 0 : logo.src,
40
+ alt: logo == null ? void 0 : logo.alt,
41
+ className: "h-9 w-auto"
42
+ }
43
+ ) }),
44
+ /* @__PURE__ */ jsxs(
45
+ "button",
46
+ {
47
+ className: "-mr-2 flex size-12 flex-col items-center justify-center lg:hidden",
48
+ onClick: () => setIsMobileMenuOpen((prev) => !prev),
49
+ children: [
50
+ /* @__PURE__ */ jsx(
51
+ motion.span,
52
+ {
53
+ className: "my-[3px] h-0.5 w-6 bg-black",
54
+ animate: isMobileMenuOpen ? ["open", "rotatePhase"] : "closed",
55
+ variants: topLineVariants
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(
59
+ motion.span,
60
+ {
61
+ className: "my-[3px] h-0.5 w-6 bg-black",
62
+ animate: isMobileMenuOpen ? "open" : "closed",
63
+ variants: middleLineVariants
64
+ }
65
+ ),
66
+ /* @__PURE__ */ jsx(
67
+ motion.span,
68
+ {
69
+ className: "my-[3px] h-0.5 w-6 bg-black",
70
+ animate: isMobileMenuOpen ? ["open", "rotatePhase"] : "closed",
71
+ variants: bottomLineVariants
72
+ }
73
+ )
74
+ ]
75
+ }
76
+ )
77
+ ] }),
78
+ /* @__PURE__ */ jsxs(
79
+ motion.div,
80
+ {
81
+ variants: {
82
+ open: { height: "var(--height-open, 100dvh)" },
83
+ close: { height: "var(--height-closed, 0)" }
84
+ },
85
+ initial: "close",
86
+ exit: "close",
87
+ animate: isMobileMenuOpen ? "open" : "close",
88
+ transition: { duration: 0.4 },
89
+ className: "overflow-hidden px-[5%] lg:flex lg:items-center lg:px-0 lg:[--height-closed:auto] lg:[--height-open:auto]",
90
+ children: [
91
+ navLinks == null ? void 0 : navLinks.map(
92
+ (navLink, index) => navLink.subMenuLinks && navLink.subMenuLinks.length > 0 ? /* @__PURE__ */ jsx(SubMenu, { navLink, isMobile }, index) : /* @__PURE__ */ jsx(
93
+ "a",
94
+ {
95
+ href: navLink.url,
96
+ className: "block py-3 text-md first:pt-7 lg:px-4 lg:py-2 lg:text-base first:lg:pt-2",
97
+ children: navLink.title
98
+ },
99
+ index
100
+ )
101
+ ),
102
+ /* @__PURE__ */ jsxs("div", { className: "mt-6 flex flex-col items-center gap-4 lg:ml-4 lg:mt-0 lg:flex-row", children: [
103
+ buttons == null ? void 0 : buttons.map((button, index) => /* @__PURE__ */ jsx(
104
+ Button,
105
+ {
106
+ variant: button.variant,
107
+ size: button.size,
108
+ className: "w-full",
109
+ children: button.label
110
+ },
111
+ index
112
+ )),
113
+ (styles == null ? void 0 : styles.showSocialLinks) === "true" && /* @__PURE__ */ jsx(
114
+ CompoundSocialLinks,
115
+ {
116
+ links: socialLinks ?? [],
117
+ iconClassName: "size-5",
118
+ className: "gap-2"
119
+ }
120
+ )
121
+ ] })
122
+ ]
123
+ }
124
+ )
33
125
  ] })
34
- ] })
35
- ] }) });
126
+ }
127
+ );
36
128
  };
37
- const SubMenu = ({ navLink, isMobile }) => {
129
+ const SubMenu = ({
130
+ navLink,
131
+ isMobile
132
+ }) => {
38
133
  var _a;
39
134
  const [isDropdownOpen, setIsDropdownOpen] = useState(false);
40
- return /* @__PURE__ */ jsxs("div", { onMouseEnter: () => !isMobile && setIsDropdownOpen(true), onMouseLeave: () => !isMobile && setIsDropdownOpen(false), children: [
41
- /* @__PURE__ */ jsxs("button", { className: "flex w-full items-center justify-between gap-2 py-3 text-left text-md lg:flex-none lg:justify-start lg:px-4 lg:py-2 lg:text-base", onClick: () => setIsDropdownOpen((prev) => !prev), children: [
42
- /* @__PURE__ */ jsx("span", { children: navLink.title }),
43
- /* @__PURE__ */ jsx(motion.span, { variants: { rotated: { rotate: 180 }, initial: { rotate: 0 } }, animate: isDropdownOpen ? "rotated" : "initial", transition: { duration: 0.3 }, children: /* @__PURE__ */ jsx(RxChevronDown, {}) })
44
- ] }),
45
- isDropdownOpen && /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(motion.nav, { variants: { open: { visibility: "visible", opacity: "var(--opacity-open, 100%)", y: 0 }, close: { visibility: "hidden", opacity: "var(--opacity-close, 0)", y: "var(--y-close, 0%)" } }, animate: isDropdownOpen ? "open" : "close", initial: "close", exit: "close", transition: { duration: 0.2 }, className: "bg-background-primary lg:absolute lg:z-50 lg:border lg:border-border-primary lg:p-2 lg:[--y-close:25%]", children: (_a = navLink.subMenuLinks) == null ? void 0 : _a.map((link, index) => /* @__PURE__ */ jsx("a", { href: link.url, className: "block py-3 pl-[5%] text-md lg:px-4 lg:py-2 lg:text-base", children: link.title }, index)) }) })
46
- ] });
135
+ return /* @__PURE__ */ jsxs(
136
+ "div",
137
+ {
138
+ onMouseEnter: () => !isMobile && setIsDropdownOpen(true),
139
+ onMouseLeave: () => !isMobile && setIsDropdownOpen(false),
140
+ children: [
141
+ /* @__PURE__ */ jsxs(
142
+ "button",
143
+ {
144
+ className: "flex w-full items-center justify-between gap-2 py-3 text-left text-md lg:flex-none lg:justify-start lg:px-4 lg:py-2 lg:text-base",
145
+ onClick: () => setIsDropdownOpen((prev) => !prev),
146
+ children: [
147
+ /* @__PURE__ */ jsx("span", { children: navLink.title }),
148
+ /* @__PURE__ */ jsx(
149
+ motion.span,
150
+ {
151
+ variants: { rotated: { rotate: 180 }, initial: { rotate: 0 } },
152
+ animate: isDropdownOpen ? "rotated" : "initial",
153
+ transition: { duration: 0.3 },
154
+ children: /* @__PURE__ */ jsx(RxChevronDown, {})
155
+ }
156
+ )
157
+ ]
158
+ }
159
+ ),
160
+ isDropdownOpen && /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(
161
+ motion.nav,
162
+ {
163
+ variants: {
164
+ open: {
165
+ visibility: "visible",
166
+ opacity: "var(--opacity-open, 100%)",
167
+ y: 0
168
+ },
169
+ close: {
170
+ visibility: "hidden",
171
+ opacity: "var(--opacity-close, 0)",
172
+ y: "var(--y-close, 0%)"
173
+ }
174
+ },
175
+ animate: isDropdownOpen ? "open" : "close",
176
+ initial: "close",
177
+ exit: "close",
178
+ transition: { duration: 0.2 },
179
+ className: "bg-background-primary lg:absolute lg:z-50 lg:border lg:border-border-primary lg:p-2 lg:[--y-close:25%]",
180
+ children: (_a = navLink.subMenuLinks) == null ? void 0 : _a.map((link, index) => /* @__PURE__ */ jsx(
181
+ "a",
182
+ {
183
+ href: link.url,
184
+ className: "block py-3 pl-[5%] text-md lg:px-4 lg:py-2 lg:text-base",
185
+ children: link.title
186
+ },
187
+ index
188
+ ))
189
+ }
190
+ ) })
191
+ ]
192
+ }
193
+ );
194
+ };
195
+ const topLineVariants = {
196
+ open: { translateY: 8, transition: { delay: 0.1 } },
197
+ rotatePhase: { rotate: -45, transition: { delay: 0.2 } },
198
+ closed: { translateY: 0, rotate: 0, transition: { duration: 0.2 } }
199
+ };
200
+ const middleLineVariants = {
201
+ open: { width: 0, transition: { duration: 0.1 } },
202
+ closed: { width: "1.5rem", transition: { delay: 0.3, duration: 0.2 } }
203
+ };
204
+ const bottomLineVariants = {
205
+ open: { translateY: -8, transition: { delay: 0.1 } },
206
+ rotatePhase: { rotate: 45, transition: { delay: 0.2 } },
207
+ closed: { translateY: 0, rotate: 0, transition: { duration: 0.2 } }
47
208
  };
48
- const topLineVariants = { open: { translateY: 8, transition: { delay: 0.1 } }, rotatePhase: { rotate: -45, transition: { delay: 0.2 } }, closed: { translateY: 0, rotate: 0, transition: { duration: 0.2 } } };
49
- const middleLineVariants = { open: { width: 0, transition: { duration: 0.1 } }, closed: { width: "1.5rem", transition: { delay: 0.3, duration: 0.2 } } };
50
- const bottomLineVariants = { open: { translateY: -8, transition: { delay: 0.1 } }, rotatePhase: { rotate: 45, transition: { delay: 0.2 } }, closed: { translateY: 0, rotate: 0, transition: { duration: 0.2 } } };
51
209
  const StandardNavbarDefaults = {
52
210
  __metadata: { type: "header" },
53
- logo: { url: "#", src: "https://file.springbrand.ai/web_assets/template-logo.svg", alt: "Logo image" },
211
+ logo: {
212
+ url: "#",
213
+ src: "https://file.springbrand.ai/web_assets/template-logo.svg",
214
+ alt: "Logo image"
215
+ },
54
216
  navLinks: [
55
217
  { title: "Link One", url: "#" },
56
218
  { title: "Link Two", url: "#" },
57
219
  { title: "Link Three", url: "#" },
58
- { title: "Link Four", url: "#", subMenuLinks: [{ title: "Link Five", url: "#" }, { title: "Link Six", url: "#" }, { title: "Link Seven", url: "#" }] }
220
+ {
221
+ title: "Link Four",
222
+ url: "#",
223
+ subMenuLinks: [
224
+ { title: "Link Five", url: "#" },
225
+ { title: "Link Six", url: "#" },
226
+ { title: "Link Seven", url: "#" }
227
+ ]
228
+ }
229
+ ],
230
+ buttons: [
231
+ {
232
+ label: "Button",
233
+ action: actionDefaults,
234
+ variant: "secondary",
235
+ size: "sm"
236
+ },
237
+ { label: "Button", action: actionDefaults, size: "sm" }
59
238
  ],
60
- buttons: [{ label: "Button", variant: "secondary", size: "sm" }, { label: "Button", size: "sm" }],
61
239
  socialLinks: [],
62
240
  styles: { dropdownType: "simple" }
63
241
  };