@syscore/ui-library 1.1.12 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/components/icons/AchievementBadges.tsx +33 -0
- package/client/components/icons/ConceptIcons.tsx +169 -22
- package/client/components/icons/NavLogo.tsx +4 -4
- package/client/components/icons/ProviderBadges.tsx +28 -28
- package/client/components/icons/ProviderSeals.tsx +35 -35
- package/client/components/icons/StandardLogo.tsx +47 -0
- package/client/components/icons/UtilityChevronDown.tsx +1 -1
- package/client/components/icons/UtilityClearRegular.tsx +43 -0
- package/client/components/icons/UtilityCompare.tsx +71 -0
- package/client/components/icons/UtilityHome.tsx +26 -0
- package/client/components/icons/UtilityReset.tsx +7 -7
- package/client/components/icons/UtilitySave.tsx +35 -0
- package/client/components/icons/UtilityScopeLarge.tsx +86 -0
- package/client/components/icons/UtilityShow.tsx +41 -0
- package/client/components/icons/UtilityTarget.tsx +21 -0
- package/client/components/icons/UtilityTargetActive.tsx +34 -0
- package/client/components/icons/UtilityText.tsx +8 -8
- package/client/components/ui/accordion.tsx +6 -9
- package/client/components/ui/alert-dialog.tsx +6 -19
- package/client/components/ui/alert.tsx +5 -6
- package/client/components/ui/avatar.tsx +3 -9
- package/client/components/ui/badge.tsx +5 -8
- package/client/components/ui/breadcrumb.tsx +24 -11
- package/client/components/ui/button.tsx +40 -56
- package/client/components/ui/calendar.tsx +24 -28
- package/client/components/ui/card.tsx +6 -9
- package/client/components/ui/carousel.tsx +14 -14
- package/client/components/ui/chart.tsx +25 -28
- package/client/components/ui/checkbox.tsx +3 -8
- package/client/components/ui/code-badge.tsx +22 -0
- package/client/components/ui/command.tsx +12 -48
- package/client/components/ui/context-menu.tsx +17 -32
- package/client/components/ui/dialog.tsx +9 -18
- package/client/components/ui/drawer.tsx +7 -13
- package/client/components/ui/dropdown-menu.tsx +17 -29
- package/client/components/ui/form.tsx +4 -4
- package/client/components/ui/hover-card.tsx +1 -4
- package/client/components/ui/input-otp.tsx +7 -10
- package/client/components/ui/input.tsx +34 -9
- package/client/components/ui/label.tsx +2 -4
- package/client/components/ui/menubar.tsx +19 -40
- package/client/components/ui/navigation-menu.tsx +10 -27
- package/client/components/ui/navigation.tsx +861 -0
- package/client/components/ui/pagination.tsx +8 -8
- package/client/components/ui/popover.tsx +1 -4
- package/client/components/ui/progress.tsx +2 -5
- package/client/components/ui/radio-group.tsx +4 -7
- package/client/components/ui/resizable.tsx +4 -10
- package/client/components/ui/scroll-area.tsx +5 -8
- package/client/components/ui/{SearchField.tsx → search.tsx} +7 -10
- package/client/components/ui/select.tsx +19 -44
- package/client/components/ui/separator.tsx +2 -2
- package/client/components/ui/sheet.tsx +12 -23
- package/client/components/ui/sidebar.tsx +55 -82
- package/client/components/ui/skeleton.tsx +1 -1
- package/client/components/ui/slider.tsx +4 -7
- package/client/components/ui/sonner.tsx +5 -8
- package/client/components/ui/switch.tsx +2 -9
- package/client/components/ui/table.tsx +9 -18
- package/client/components/ui/tabs.tsx +43 -203
- package/client/components/ui/tag.tsx +68 -0
- package/client/components/ui/textarea.tsx +1 -4
- package/client/components/ui/toast.tsx +9 -19
- package/client/components/ui/toaster.tsx +1 -1
- package/client/components/ui/toggle-group.tsx +20 -3
- package/client/components/ui/toggle.tsx +13 -13
- package/client/components/ui/tooltip.tsx +147 -10
- package/client/global.css +5421 -1049
- package/client/storybook.css +1164 -0
- package/client/ui/AspectRatio.stories.tsx +1 -1
- package/client/ui/Button.stories.tsx +5 -5
- package/client/ui/Card.stories.tsx +223 -2
- package/client/ui/CodeBadge.stories.tsx +76 -0
- package/client/ui/Dialog.stories.tsx +52 -5
- package/client/ui/Icons.stories.tsx +31 -31
- package/client/ui/Input.stories.tsx +125 -0
- package/client/ui/Label.stories.tsx +8 -11
- package/client/ui/Navigation.stories.tsx +1 -1
- package/client/ui/RadioGroup/RadioGroup.stories.tsx +1 -1
- package/client/ui/SearchField.stories.tsx +1 -1
- package/client/ui/{Select/Select.stories.tsx → Select.stories.tsx} +2 -2
- package/client/ui/{Switch/Switch.stories.tsx → Switch.stories.tsx} +3 -3
- package/client/ui/Tabs.stories.tsx +174 -10
- package/client/ui/Tag.stories.tsx +48 -1
- package/client/ui/{Textarea/Textarea.stories.tsx → Textarea.stories.tsx} +9 -10
- package/client/ui/Toggle.stories.tsx +3 -3
- package/client/ui/Tooltip.stories.tsx +28 -4
- package/dist/ui/index.cjs.js +1 -1
- package/dist/ui/index.d.ts +4 -6
- package/dist/ui/index.es.js +1227 -2235
- package/dist/ui/ui-library.css +1 -0
- package/package.json +3 -3
- package/client/components/ui/Navigation.tsx +0 -958
- package/client/components/ui/StrategyTable.tsx +0 -303
- package/client/components/ui/Tag.tsx +0 -127
- package/client/ui/Input/Input.stories.tsx +0 -69
- package/client/ui/StrategyTable.stories.tsx +0 -138
- package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +0 -115
- package/client/ui/WELLDashboard/index.tsx +0 -317
- /package/client/hooks/{UseTabs.tsx → use-tabs.tsx} +0 -0
|
@@ -0,0 +1,861 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { AnimatePresence, motion } from "motion/react";
|
|
3
|
+
import { cn } from "@/lib/utils";
|
|
4
|
+
import { UtilityClose } from "../icons/UtilityClose";
|
|
5
|
+
import { NavLogo } from "../icons/NavLogo";
|
|
6
|
+
import { NavAccount } from "../icons/NavAccount";
|
|
7
|
+
import { NavBullet } from "../icons/NavBullet";
|
|
8
|
+
import { Button } from "@/components/ui/button";
|
|
9
|
+
|
|
10
|
+
export interface NavItem {
|
|
11
|
+
label: string;
|
|
12
|
+
active?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Define a Link component type that matches common routing patterns
|
|
16
|
+
export type LinkComponent = React.ComponentType<{
|
|
17
|
+
href: string;
|
|
18
|
+
className?: string;
|
|
19
|
+
"aria-label"?: string;
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
22
|
+
}>;
|
|
23
|
+
|
|
24
|
+
interface NavigationProps {
|
|
25
|
+
navItems?: NavItem[];
|
|
26
|
+
isStrategy?: boolean;
|
|
27
|
+
Link?: LinkComponent; // Optional Link component from routing library
|
|
28
|
+
onLinkClick?: (href: string) => void; // Fallback callback for navigation
|
|
29
|
+
onClose?: () => void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const Navigation: React.FC<NavigationProps> = ({
|
|
33
|
+
navItems,
|
|
34
|
+
isStrategy = false,
|
|
35
|
+
Link: LinkComponent,
|
|
36
|
+
onLinkClick,
|
|
37
|
+
onClose,
|
|
38
|
+
}) => {
|
|
39
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
40
|
+
const [activeItem, setActiveItem] = React.useState<number | null>(null);
|
|
41
|
+
|
|
42
|
+
const containerRef = React.useRef<HTMLElement>(null);
|
|
43
|
+
const menuRef = React.useRef<HTMLDivElement>(null);
|
|
44
|
+
const menuItemsRef = React.useRef<HTMLDivElement>(null);
|
|
45
|
+
const overlayRef = React.useRef<HTMLDivElement>(null);
|
|
46
|
+
|
|
47
|
+
const handleMouseLeave = () => {
|
|
48
|
+
setIsOpen(false);
|
|
49
|
+
setActiveItem(null);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const handleNavItemMouseEnter = (index: number) => {
|
|
53
|
+
setIsOpen(true);
|
|
54
|
+
setActiveItem(index + 1);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// Internal NavLink component that handles different routing scenarios
|
|
58
|
+
const NavLink: React.FC<{
|
|
59
|
+
href: string;
|
|
60
|
+
className?: string;
|
|
61
|
+
"aria-label"?: string;
|
|
62
|
+
children: React.ReactNode;
|
|
63
|
+
}> = ({ href, className, "aria-label": ariaLabel, children }) => {
|
|
64
|
+
// If Link component is provided, use it
|
|
65
|
+
if (LinkComponent) {
|
|
66
|
+
return (
|
|
67
|
+
<LinkComponent href={href} className={className} aria-label={ariaLabel}>
|
|
68
|
+
{children}
|
|
69
|
+
</LinkComponent>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// If onLinkClick callback is provided, use anchor with click handler
|
|
74
|
+
if (onLinkClick) {
|
|
75
|
+
return (
|
|
76
|
+
<a
|
|
77
|
+
href={href}
|
|
78
|
+
className={className}
|
|
79
|
+
aria-label={ariaLabel}
|
|
80
|
+
onClick={(e) => {
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
onLinkClick(href);
|
|
83
|
+
}}
|
|
84
|
+
>
|
|
85
|
+
{children}
|
|
86
|
+
</a>
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Default: plain anchor tag (browser navigation)
|
|
91
|
+
return (
|
|
92
|
+
<a href={href} className={className} aria-label={ariaLabel}>
|
|
93
|
+
{children}
|
|
94
|
+
</a>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<nav
|
|
100
|
+
ref={containerRef}
|
|
101
|
+
className={cn("navigation", isStrategy && "navigation--strategy")}
|
|
102
|
+
data-strategy={isStrategy}
|
|
103
|
+
onMouseLeave={handleMouseLeave}
|
|
104
|
+
>
|
|
105
|
+
{!isStrategy && (
|
|
106
|
+
<div
|
|
107
|
+
ref={overlayRef}
|
|
108
|
+
className="navigation-overlay"
|
|
109
|
+
data-open={isOpen}
|
|
110
|
+
/>
|
|
111
|
+
)}
|
|
112
|
+
|
|
113
|
+
<div className="navigation-container">
|
|
114
|
+
<div className="navigation-logo-container">
|
|
115
|
+
{isStrategy ? (
|
|
116
|
+
<Button
|
|
117
|
+
className="navigation-close-button"
|
|
118
|
+
size="icon"
|
|
119
|
+
onClick={(e) => {
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
if (onClose) {
|
|
122
|
+
onClose();
|
|
123
|
+
} else if (onLinkClick) {
|
|
124
|
+
onLinkClick("/");
|
|
125
|
+
}
|
|
126
|
+
}}
|
|
127
|
+
>
|
|
128
|
+
<UtilityClose className="navigation-close-icon" />
|
|
129
|
+
</Button>
|
|
130
|
+
) : null}
|
|
131
|
+
|
|
132
|
+
<NavLink
|
|
133
|
+
href="/"
|
|
134
|
+
className={cn(
|
|
135
|
+
"navigation-logo-link",
|
|
136
|
+
isStrategy && "navigation-logo-link--strategy",
|
|
137
|
+
)}
|
|
138
|
+
data-strategy={isStrategy}
|
|
139
|
+
aria-label="Home"
|
|
140
|
+
>
|
|
141
|
+
<NavLogo dark={isStrategy} />
|
|
142
|
+
</NavLink>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
{!isStrategy ? (
|
|
146
|
+
<div className="navigation-nav-container">
|
|
147
|
+
<ul className="navigation-nav-list">
|
|
148
|
+
{navItems
|
|
149
|
+
? navItems.map((item, index) => (
|
|
150
|
+
<li
|
|
151
|
+
key={index + 1}
|
|
152
|
+
className="navigation-nav-item"
|
|
153
|
+
onMouseEnter={() => handleNavItemMouseEnter(index)}
|
|
154
|
+
>
|
|
155
|
+
<span className="navigation-nav-link">{item.label}</span>
|
|
156
|
+
|
|
157
|
+
{/* Underline */}
|
|
158
|
+
{activeItem === index + 1 && (
|
|
159
|
+
<motion.div
|
|
160
|
+
id="underline"
|
|
161
|
+
className="navigation-underline"
|
|
162
|
+
layoutId="underline"
|
|
163
|
+
transition={{ duration: 0.2, ease: "easeOut" }}
|
|
164
|
+
>
|
|
165
|
+
<div
|
|
166
|
+
className="navigation-underline-circle navigation-underline-circle--gradient"
|
|
167
|
+
style={{
|
|
168
|
+
width: "10px",
|
|
169
|
+
height: "5px",
|
|
170
|
+
borderBottomLeftRadius: "100px",
|
|
171
|
+
borderBottomRightRadius: "100px",
|
|
172
|
+
borderBottom: "0",
|
|
173
|
+
boxSizing: "border-box",
|
|
174
|
+
}}
|
|
175
|
+
/>
|
|
176
|
+
</motion.div>
|
|
177
|
+
)}
|
|
178
|
+
{index === 0 && (
|
|
179
|
+
<div
|
|
180
|
+
className="navigation-underline navigation-underline--static"
|
|
181
|
+
style={{ transition: "all 0.2s ease-out" }}
|
|
182
|
+
>
|
|
183
|
+
<div
|
|
184
|
+
className="navigation-underline-circle navigation-underline-circle--white"
|
|
185
|
+
style={{
|
|
186
|
+
width: "10px",
|
|
187
|
+
height: "5px",
|
|
188
|
+
borderTopLeftRadius: "100px",
|
|
189
|
+
borderTopRightRadius: "100px",
|
|
190
|
+
borderBottom: "0",
|
|
191
|
+
boxSizing: "border-box",
|
|
192
|
+
}}
|
|
193
|
+
/>
|
|
194
|
+
</div>
|
|
195
|
+
)}
|
|
196
|
+
</li>
|
|
197
|
+
))
|
|
198
|
+
: null}
|
|
199
|
+
</ul>
|
|
200
|
+
</div>
|
|
201
|
+
) : null}
|
|
202
|
+
|
|
203
|
+
<div className="navigation-actions">
|
|
204
|
+
<NavLink
|
|
205
|
+
href="/"
|
|
206
|
+
aria-label="Account link"
|
|
207
|
+
className="navigation-account-link"
|
|
208
|
+
data-open={isOpen}
|
|
209
|
+
data-strategy={isStrategy}
|
|
210
|
+
>
|
|
211
|
+
<NavAccount
|
|
212
|
+
className={cn(
|
|
213
|
+
"navigation-account-icon",
|
|
214
|
+
isStrategy
|
|
215
|
+
? "navigation-account-icon--strategy"
|
|
216
|
+
: "navigation-account-icon--default",
|
|
217
|
+
)}
|
|
218
|
+
/>
|
|
219
|
+
</NavLink>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
{isOpen && <div className="navigation-divider" />}
|
|
224
|
+
|
|
225
|
+
{/* Tray */}
|
|
226
|
+
<div ref={menuRef} className="navigation-tray" data-open={isOpen}>
|
|
227
|
+
<div className="navigation-tray-content">
|
|
228
|
+
<div ref={menuItemsRef} className="navigation-tray-grid">
|
|
229
|
+
<AnimatePresence mode="wait">
|
|
230
|
+
<motion.div
|
|
231
|
+
key={activeItem ? activeItem + 1 : "empty"}
|
|
232
|
+
initial={{ y: 10, opacity: 0 }}
|
|
233
|
+
animate={{ y: 0, opacity: 1 }}
|
|
234
|
+
exit={{ y: -10, opacity: 0 }}
|
|
235
|
+
transition={{ duration: 0.2 }}
|
|
236
|
+
>
|
|
237
|
+
{/* WELL Tray */}
|
|
238
|
+
{activeItem === 1 && (
|
|
239
|
+
<div className="navigation-tray-section">
|
|
240
|
+
<h2
|
|
241
|
+
className="navigation-tray-heading"
|
|
242
|
+
style={{
|
|
243
|
+
background:
|
|
244
|
+
"linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
|
|
245
|
+
WebkitBackgroundClip: "text",
|
|
246
|
+
WebkitTextFillColor: "transparent",
|
|
247
|
+
backgroundClip: "text",
|
|
248
|
+
}}
|
|
249
|
+
>
|
|
250
|
+
WELL sets the standard for people-first places
|
|
251
|
+
</h2>
|
|
252
|
+
|
|
253
|
+
<div className="navigation-tray-columns">
|
|
254
|
+
<div className="navigation-tray-column">
|
|
255
|
+
<h3 className="navigation-tray-column-title">
|
|
256
|
+
Everything
|
|
257
|
+
</h3>
|
|
258
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
259
|
+
<li>
|
|
260
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
261
|
+
Explore WELL
|
|
262
|
+
</NavLink>
|
|
263
|
+
</li>
|
|
264
|
+
<li>
|
|
265
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
266
|
+
Enroll in WELL
|
|
267
|
+
</NavLink>
|
|
268
|
+
</li>
|
|
269
|
+
<li>
|
|
270
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
271
|
+
What's new
|
|
272
|
+
</NavLink>
|
|
273
|
+
</li>
|
|
274
|
+
</ul>
|
|
275
|
+
</div>
|
|
276
|
+
<div className="navigation-tray-column">
|
|
277
|
+
<h3 className="navigation-tray-column-title">
|
|
278
|
+
WHY WELL
|
|
279
|
+
</h3>
|
|
280
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
281
|
+
<li>
|
|
282
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
283
|
+
Performance
|
|
284
|
+
</NavLink>
|
|
285
|
+
</li>
|
|
286
|
+
<li>
|
|
287
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
288
|
+
ROI
|
|
289
|
+
</NavLink>
|
|
290
|
+
</li>
|
|
291
|
+
<li>
|
|
292
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
293
|
+
Impact
|
|
294
|
+
</NavLink>
|
|
295
|
+
</li>
|
|
296
|
+
</ul>
|
|
297
|
+
</div>
|
|
298
|
+
<div className="navigation-tray-column">
|
|
299
|
+
<h3 className="navigation-tray-column-title">
|
|
300
|
+
Standard
|
|
301
|
+
</h3>
|
|
302
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
303
|
+
<li>
|
|
304
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
305
|
+
Strategies
|
|
306
|
+
</NavLink>
|
|
307
|
+
</li>
|
|
308
|
+
<li>
|
|
309
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
310
|
+
Themes
|
|
311
|
+
</NavLink>
|
|
312
|
+
</li>
|
|
313
|
+
<li>
|
|
314
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
315
|
+
Milestones
|
|
316
|
+
</NavLink>
|
|
317
|
+
</li>
|
|
318
|
+
</ul>
|
|
319
|
+
</div>
|
|
320
|
+
<div className="navigation-tray-column">
|
|
321
|
+
<h3 className="navigation-tray-column-title">
|
|
322
|
+
Network
|
|
323
|
+
</h3>
|
|
324
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
325
|
+
<li>
|
|
326
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
327
|
+
Organizations
|
|
328
|
+
</NavLink>
|
|
329
|
+
</li>
|
|
330
|
+
<li>
|
|
331
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
332
|
+
People
|
|
333
|
+
</NavLink>
|
|
334
|
+
</li>
|
|
335
|
+
</ul>
|
|
336
|
+
</div>
|
|
337
|
+
<div className="navigation-tray-column">
|
|
338
|
+
<h3 className="navigation-tray-column-title">
|
|
339
|
+
Solutions
|
|
340
|
+
</h3>
|
|
341
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
342
|
+
<li>
|
|
343
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
344
|
+
Products
|
|
345
|
+
</NavLink>
|
|
346
|
+
</li>
|
|
347
|
+
<li>
|
|
348
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
349
|
+
Services
|
|
350
|
+
</NavLink>
|
|
351
|
+
</li>
|
|
352
|
+
</ul>
|
|
353
|
+
</div>
|
|
354
|
+
<div className="navigation-tray-column">
|
|
355
|
+
<h3 className="navigation-tray-column-title">Places</h3>
|
|
356
|
+
<ul className="navigation-tray-column-list navigation-tray-column-list--spacing-5">
|
|
357
|
+
<li>
|
|
358
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
359
|
+
Locations
|
|
360
|
+
</NavLink>
|
|
361
|
+
</li>
|
|
362
|
+
<li>
|
|
363
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
364
|
+
Portfolios
|
|
365
|
+
</NavLink>
|
|
366
|
+
</li>
|
|
367
|
+
</ul>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
</div>
|
|
371
|
+
)}
|
|
372
|
+
|
|
373
|
+
{/* Pursuits Tray */}
|
|
374
|
+
{activeItem === 2 && (
|
|
375
|
+
<div className="navigation-tray-section">
|
|
376
|
+
<h2
|
|
377
|
+
className="navigation-tray-heading"
|
|
378
|
+
style={{
|
|
379
|
+
background:
|
|
380
|
+
"linear-gradient(99deg, #41D5F6 3.39%, #3EECD1 57.86%, #66FCD9 112.32%)",
|
|
381
|
+
backgroundClip: "text",
|
|
382
|
+
WebkitBackgroundClip: "text",
|
|
383
|
+
WebkitTextFillColor: "transparent",
|
|
384
|
+
}}
|
|
385
|
+
>
|
|
386
|
+
WELL works everywhere, at any scale
|
|
387
|
+
</h2>
|
|
388
|
+
<div className="navigation-tray-columns">
|
|
389
|
+
<div className="navigation-tray-column">
|
|
390
|
+
<h3 className="navigation-tray-column-title">
|
|
391
|
+
SUBSCRIBE
|
|
392
|
+
</h3>
|
|
393
|
+
<ul className="navigation-tray-column-list">
|
|
394
|
+
<li>
|
|
395
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
396
|
+
WELL at scale
|
|
397
|
+
</NavLink>
|
|
398
|
+
</li>
|
|
399
|
+
<li>
|
|
400
|
+
<div className="navigation-tray-bullet-item">
|
|
401
|
+
<div className="navigation-tray-bullet" />
|
|
402
|
+
<NavLink href="/">
|
|
403
|
+
<span className="navigation-tray-link-small">
|
|
404
|
+
Pricing
|
|
405
|
+
</span>
|
|
406
|
+
</NavLink>
|
|
407
|
+
</div>
|
|
408
|
+
</li>
|
|
409
|
+
<li>
|
|
410
|
+
<div className="navigation-tray-bullet-item">
|
|
411
|
+
<div className="navigation-tray-bullet" />
|
|
412
|
+
<NavLink href="/">
|
|
413
|
+
<span className="navigation-tray-link-small">
|
|
414
|
+
Leaderboard
|
|
415
|
+
</span>
|
|
416
|
+
</NavLink>
|
|
417
|
+
</div>
|
|
418
|
+
</li>
|
|
419
|
+
</ul>
|
|
420
|
+
</div>
|
|
421
|
+
<div className="navigation-tray-column">
|
|
422
|
+
<h3 className="navigation-tray-column-title">
|
|
423
|
+
Certify
|
|
424
|
+
</h3>
|
|
425
|
+
<ul className="navigation-tray-column-list">
|
|
426
|
+
<li>
|
|
427
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
428
|
+
WELL Certification
|
|
429
|
+
</NavLink>
|
|
430
|
+
</li>
|
|
431
|
+
<li>
|
|
432
|
+
<NavLink
|
|
433
|
+
href="/"
|
|
434
|
+
className="navigation-tray-link navigation-tray-link--with-badge"
|
|
435
|
+
>
|
|
436
|
+
WELL Residence
|
|
437
|
+
<span className="navigation-tray-badge">
|
|
438
|
+
PILOT
|
|
439
|
+
</span>
|
|
440
|
+
</NavLink>
|
|
441
|
+
</li>
|
|
442
|
+
</ul>
|
|
443
|
+
</div>
|
|
444
|
+
<div className="navigation-tray-column">
|
|
445
|
+
<h3 className="navigation-tray-column-title">
|
|
446
|
+
Get rated
|
|
447
|
+
</h3>
|
|
448
|
+
<ul className="navigation-tray-column-list">
|
|
449
|
+
<li>
|
|
450
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
451
|
+
WELL Ratings
|
|
452
|
+
</NavLink>
|
|
453
|
+
</li>
|
|
454
|
+
<li>
|
|
455
|
+
<div className="navigation-tray-bullet-item">
|
|
456
|
+
<NavBullet color="#F3E7D8" />
|
|
457
|
+
<NavLink
|
|
458
|
+
href="/"
|
|
459
|
+
className="navigation-tray-link-small"
|
|
460
|
+
>
|
|
461
|
+
Health-Safety Rating
|
|
462
|
+
</NavLink>
|
|
463
|
+
</div>
|
|
464
|
+
</li>
|
|
465
|
+
<li>
|
|
466
|
+
<div className="navigation-tray-bullet-item">
|
|
467
|
+
<NavBullet color="#0F748A" />
|
|
468
|
+
<NavLink
|
|
469
|
+
href="/"
|
|
470
|
+
className="navigation-tray-link-small"
|
|
471
|
+
>
|
|
472
|
+
Performance Rating
|
|
473
|
+
</NavLink>
|
|
474
|
+
</div>
|
|
475
|
+
</li>
|
|
476
|
+
<li>
|
|
477
|
+
<div className="navigation-tray-bullet-item">
|
|
478
|
+
<NavBullet color="#17AA8D" />
|
|
479
|
+
<NavLink
|
|
480
|
+
href="/"
|
|
481
|
+
className="navigation-tray-link-small"
|
|
482
|
+
>
|
|
483
|
+
Equity Rating
|
|
484
|
+
</NavLink>
|
|
485
|
+
</div>
|
|
486
|
+
</li>
|
|
487
|
+
</ul>
|
|
488
|
+
</div>
|
|
489
|
+
</div>
|
|
490
|
+
</div>
|
|
491
|
+
)}
|
|
492
|
+
|
|
493
|
+
{/* Network Tray */}
|
|
494
|
+
{activeItem === 3 && (
|
|
495
|
+
<div className="navigation-tray-section">
|
|
496
|
+
<h2
|
|
497
|
+
className="navigation-tray-heading"
|
|
498
|
+
style={{
|
|
499
|
+
background:
|
|
500
|
+
"linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
|
|
501
|
+
WebkitBackgroundClip: "text",
|
|
502
|
+
WebkitTextFillColor: "transparent",
|
|
503
|
+
}}
|
|
504
|
+
>
|
|
505
|
+
Our network drives our movement
|
|
506
|
+
</h2>
|
|
507
|
+
|
|
508
|
+
<div className="navigation-tray-columns">
|
|
509
|
+
<div className="navigation-tray-column">
|
|
510
|
+
<h3 className="navigation-tray-column-title">JOIN</h3>
|
|
511
|
+
<ul className="navigation-tray-column-list">
|
|
512
|
+
<li>
|
|
513
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
514
|
+
Membership
|
|
515
|
+
</NavLink>
|
|
516
|
+
</li>
|
|
517
|
+
<li>
|
|
518
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
519
|
+
Works with WELL
|
|
520
|
+
</NavLink>
|
|
521
|
+
</li>
|
|
522
|
+
<li>
|
|
523
|
+
<div className="navigation-tray-bullet-item">
|
|
524
|
+
<NavBullet color="#2E74AD" />
|
|
525
|
+
<NavLink
|
|
526
|
+
href="/"
|
|
527
|
+
className="navigation-tray-link-small"
|
|
528
|
+
>
|
|
529
|
+
Enterprise Provider
|
|
530
|
+
</NavLink>
|
|
531
|
+
</div>
|
|
532
|
+
</li>
|
|
533
|
+
<li>
|
|
534
|
+
<div className="navigation-tray-bullet-item">
|
|
535
|
+
<NavBullet color="#149EBD" />
|
|
536
|
+
<NavLink
|
|
537
|
+
href="/"
|
|
538
|
+
className="navigation-tray-link-small"
|
|
539
|
+
>
|
|
540
|
+
Product Provider
|
|
541
|
+
</NavLink>
|
|
542
|
+
</div>
|
|
543
|
+
</li>
|
|
544
|
+
<li>
|
|
545
|
+
<div className="navigation-tray-bullet-item">
|
|
546
|
+
<NavBullet color="#ED896F" />
|
|
547
|
+
<NavLink
|
|
548
|
+
href="/"
|
|
549
|
+
className="navigation-tray-link-small"
|
|
550
|
+
>
|
|
551
|
+
Performance Testing Provider
|
|
552
|
+
</NavLink>
|
|
553
|
+
</div>
|
|
554
|
+
</li>
|
|
555
|
+
</ul>
|
|
556
|
+
</div>
|
|
557
|
+
|
|
558
|
+
<div className="navigation-tray-column">
|
|
559
|
+
<h3 className="navigation-tray-column-title">EARN</h3>
|
|
560
|
+
<ul className="navigation-tray-column-list">
|
|
561
|
+
<li>
|
|
562
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
563
|
+
WELL AP
|
|
564
|
+
</NavLink>
|
|
565
|
+
</li>
|
|
566
|
+
<li>
|
|
567
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
568
|
+
WELL Faculty
|
|
569
|
+
</NavLink>
|
|
570
|
+
</li>
|
|
571
|
+
</ul>
|
|
572
|
+
</div>
|
|
573
|
+
</div>
|
|
574
|
+
</div>
|
|
575
|
+
)}
|
|
576
|
+
|
|
577
|
+
{/* Knowledge Tray */}
|
|
578
|
+
{activeItem === 4 && (
|
|
579
|
+
<div className="navigation-tray-section">
|
|
580
|
+
<h2
|
|
581
|
+
className="navigation-tray-heading"
|
|
582
|
+
style={{
|
|
583
|
+
background:
|
|
584
|
+
"linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
|
|
585
|
+
WebkitBackgroundClip: "text",
|
|
586
|
+
WebkitTextFillColor: "transparent",
|
|
587
|
+
}}
|
|
588
|
+
>
|
|
589
|
+
Learn from the experts on health
|
|
590
|
+
</h2>
|
|
591
|
+
|
|
592
|
+
<div className="navigation-tray-columns">
|
|
593
|
+
<div className="navigation-tray-column">
|
|
594
|
+
<h3 className="navigation-tray-column-title">LEARN</h3>
|
|
595
|
+
<ul className="navigation-tray-column-list">
|
|
596
|
+
<li>
|
|
597
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
598
|
+
WELL Forum
|
|
599
|
+
</NavLink>
|
|
600
|
+
</li>
|
|
601
|
+
<li>
|
|
602
|
+
<div className="navigation-tray-bullet-item">
|
|
603
|
+
<div className="navigation-tray-bullet" />
|
|
604
|
+
<NavLink
|
|
605
|
+
href="/"
|
|
606
|
+
className="navigation-tray-link-small"
|
|
607
|
+
>
|
|
608
|
+
Threads
|
|
609
|
+
</NavLink>
|
|
610
|
+
</div>
|
|
611
|
+
</li>
|
|
612
|
+
<li>
|
|
613
|
+
<div className="navigation-tray-bullet-item">
|
|
614
|
+
<div className="navigation-tray-bullet" />
|
|
615
|
+
<NavLink
|
|
616
|
+
href="/"
|
|
617
|
+
className="navigation-tray-link-small"
|
|
618
|
+
>
|
|
619
|
+
Webcasts
|
|
620
|
+
</NavLink>
|
|
621
|
+
</div>
|
|
622
|
+
</li>
|
|
623
|
+
<li>
|
|
624
|
+
<div className="navigation-tray-bullet-item">
|
|
625
|
+
<div className="navigation-tray-bullet" />
|
|
626
|
+
<NavLink
|
|
627
|
+
href="/"
|
|
628
|
+
className="navigation-tray-link-small"
|
|
629
|
+
>
|
|
630
|
+
Trainings
|
|
631
|
+
</NavLink>
|
|
632
|
+
</div>
|
|
633
|
+
</li>
|
|
634
|
+
</ul>
|
|
635
|
+
</div>
|
|
636
|
+
<div className="navigation-tray-column">
|
|
637
|
+
<h3 className="navigation-tray-column-title">ATTEND</h3>
|
|
638
|
+
<ul className="navigation-tray-column-list">
|
|
639
|
+
<li>
|
|
640
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
641
|
+
WELL 2025
|
|
642
|
+
</NavLink>
|
|
643
|
+
</li>
|
|
644
|
+
<li>
|
|
645
|
+
<div className="navigation-tray-bullet-item">
|
|
646
|
+
<div className="navigation-tray-bullet" />
|
|
647
|
+
<NavLink
|
|
648
|
+
href="/"
|
|
649
|
+
className="navigation-tray-link-small"
|
|
650
|
+
>
|
|
651
|
+
Flagship events
|
|
652
|
+
</NavLink>
|
|
653
|
+
</div>
|
|
654
|
+
</li>
|
|
655
|
+
<li>
|
|
656
|
+
<div className="navigation-tray-bullet-item">
|
|
657
|
+
<div className="navigation-tray-bullet" />
|
|
658
|
+
<NavLink
|
|
659
|
+
href="/"
|
|
660
|
+
className="navigation-tray-link-small"
|
|
661
|
+
>
|
|
662
|
+
Thematic summits
|
|
663
|
+
</NavLink>
|
|
664
|
+
</div>
|
|
665
|
+
</li>
|
|
666
|
+
<li>
|
|
667
|
+
<div className="navigation-tray-bullet-item">
|
|
668
|
+
<div className="navigation-tray-bullet" />
|
|
669
|
+
<NavLink
|
|
670
|
+
href="/"
|
|
671
|
+
className="navigation-tray-link-small"
|
|
672
|
+
>
|
|
673
|
+
Regional summits
|
|
674
|
+
</NavLink>
|
|
675
|
+
</div>
|
|
676
|
+
</li>
|
|
677
|
+
</ul>
|
|
678
|
+
</div>
|
|
679
|
+
<div className="navigation-tray-column">
|
|
680
|
+
<h3 className="navigation-tray-column-title">
|
|
681
|
+
GUIDANCE
|
|
682
|
+
</h3>
|
|
683
|
+
<ul className="navigation-tray-column-list">
|
|
684
|
+
<li>
|
|
685
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
686
|
+
Knowledge base
|
|
687
|
+
</NavLink>
|
|
688
|
+
</li>
|
|
689
|
+
<li>
|
|
690
|
+
<div className="navigation-tray-bullet-item">
|
|
691
|
+
<div className="navigation-tray-bullet" />
|
|
692
|
+
<NavLink
|
|
693
|
+
href="/"
|
|
694
|
+
className="navigation-tray-link-small"
|
|
695
|
+
>
|
|
696
|
+
Tutorials
|
|
697
|
+
</NavLink>
|
|
698
|
+
</div>
|
|
699
|
+
</li>
|
|
700
|
+
<li>
|
|
701
|
+
<div className="navigation-tray-bullet-item">
|
|
702
|
+
<div className="navigation-tray-bullet" />
|
|
703
|
+
<NavLink
|
|
704
|
+
href="/"
|
|
705
|
+
className="navigation-tray-link-small"
|
|
706
|
+
>
|
|
707
|
+
Guides
|
|
708
|
+
</NavLink>
|
|
709
|
+
</div>
|
|
710
|
+
</li>
|
|
711
|
+
<li>
|
|
712
|
+
<div className="navigation-tray-bullet-item">
|
|
713
|
+
<div className="navigation-tray-bullet" />
|
|
714
|
+
<NavLink
|
|
715
|
+
href="/"
|
|
716
|
+
className="navigation-tray-link-small"
|
|
717
|
+
>
|
|
718
|
+
FAQs
|
|
719
|
+
</NavLink>
|
|
720
|
+
</div>
|
|
721
|
+
</li>
|
|
722
|
+
</ul>
|
|
723
|
+
</div>
|
|
724
|
+
<div className="navigation-tray-column">
|
|
725
|
+
<h3 className="navigation-tray-column-title">
|
|
726
|
+
Resources
|
|
727
|
+
</h3>
|
|
728
|
+
<ul className="navigation-tray-column-list">
|
|
729
|
+
<li>
|
|
730
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
731
|
+
Resource library
|
|
732
|
+
</NavLink>
|
|
733
|
+
</li>
|
|
734
|
+
<li>
|
|
735
|
+
<div className="navigation-tray-bullet-item">
|
|
736
|
+
<div className="navigation-tray-bullet" />
|
|
737
|
+
<NavLink
|
|
738
|
+
href="/"
|
|
739
|
+
className="navigation-tray-link-small"
|
|
740
|
+
>
|
|
741
|
+
Technical tools
|
|
742
|
+
</NavLink>
|
|
743
|
+
</div>
|
|
744
|
+
</li>
|
|
745
|
+
<li>
|
|
746
|
+
<div className="navigation-tray-bullet-item">
|
|
747
|
+
<div className="navigation-tray-bullet" />
|
|
748
|
+
<NavLink
|
|
749
|
+
href="/"
|
|
750
|
+
className="navigation-tray-link-small"
|
|
751
|
+
>
|
|
752
|
+
Sales tools
|
|
753
|
+
</NavLink>
|
|
754
|
+
</div>
|
|
755
|
+
</li>
|
|
756
|
+
<li>
|
|
757
|
+
<div className="navigation-tray-bullet-item">
|
|
758
|
+
<div className="navigation-tray-bullet" />
|
|
759
|
+
<NavLink
|
|
760
|
+
href="/"
|
|
761
|
+
className="navigation-tray-link-small"
|
|
762
|
+
>
|
|
763
|
+
Media
|
|
764
|
+
</NavLink>
|
|
765
|
+
</div>
|
|
766
|
+
</li>
|
|
767
|
+
</ul>
|
|
768
|
+
</div>
|
|
769
|
+
</div>
|
|
770
|
+
</div>
|
|
771
|
+
)}
|
|
772
|
+
|
|
773
|
+
{/* IWBI Tray */}
|
|
774
|
+
{activeItem === 5 && (
|
|
775
|
+
<div className="navigation-tray-section">
|
|
776
|
+
<h2
|
|
777
|
+
className="navigation-tray-heading"
|
|
778
|
+
style={{
|
|
779
|
+
background:
|
|
780
|
+
"linear-gradient(90deg, #41D5F6 0%, #3EECD1 25%, #66FCD9 50%, #66FCD9 75%, #3EECD1 100%)",
|
|
781
|
+
WebkitBackgroundClip: "text",
|
|
782
|
+
WebkitTextFillColor: "transparent",
|
|
783
|
+
}}
|
|
784
|
+
>
|
|
785
|
+
The International WELL Building Institute (IWBI)
|
|
786
|
+
</h2>
|
|
787
|
+
|
|
788
|
+
<div className="navigation-tray-columns">
|
|
789
|
+
<div className="navigation-tray-column">
|
|
790
|
+
<h3 className="navigation-tray-column-title">About</h3>
|
|
791
|
+
<ul className="navigation-tray-column-list">
|
|
792
|
+
<li>
|
|
793
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
794
|
+
IWBI
|
|
795
|
+
</NavLink>
|
|
796
|
+
</li>
|
|
797
|
+
<li>
|
|
798
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
799
|
+
Research
|
|
800
|
+
</NavLink>
|
|
801
|
+
</li>
|
|
802
|
+
<li>
|
|
803
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
804
|
+
Advocacy
|
|
805
|
+
</NavLink>
|
|
806
|
+
</li>
|
|
807
|
+
</ul>
|
|
808
|
+
</div>
|
|
809
|
+
<div className="navigation-tray-column">
|
|
810
|
+
<h3 className="navigation-tray-column-title">Meet</h3>
|
|
811
|
+
<ul className="navigation-tray-column-list">
|
|
812
|
+
<li>
|
|
813
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
814
|
+
Team
|
|
815
|
+
</NavLink>
|
|
816
|
+
</li>
|
|
817
|
+
<li>
|
|
818
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
819
|
+
Advisories
|
|
820
|
+
</NavLink>
|
|
821
|
+
</li>
|
|
822
|
+
<li>
|
|
823
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
824
|
+
Governance Council
|
|
825
|
+
</NavLink>
|
|
826
|
+
</li>
|
|
827
|
+
</ul>
|
|
828
|
+
</div>
|
|
829
|
+
<div className="navigation-tray-column">
|
|
830
|
+
<h3 className="navigation-tray-column-title">
|
|
831
|
+
Explore
|
|
832
|
+
</h3>
|
|
833
|
+
<ul className="navigation-tray-column-list">
|
|
834
|
+
<li>
|
|
835
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
836
|
+
Newsroom
|
|
837
|
+
</NavLink>
|
|
838
|
+
</li>
|
|
839
|
+
<li>
|
|
840
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
841
|
+
Jobs
|
|
842
|
+
</NavLink>
|
|
843
|
+
</li>
|
|
844
|
+
<li>
|
|
845
|
+
<NavLink href="/" className="navigation-tray-link">
|
|
846
|
+
Blog
|
|
847
|
+
</NavLink>
|
|
848
|
+
</li>
|
|
849
|
+
</ul>
|
|
850
|
+
</div>
|
|
851
|
+
</div>
|
|
852
|
+
</div>
|
|
853
|
+
)}
|
|
854
|
+
</motion.div>
|
|
855
|
+
</AnimatePresence>
|
|
856
|
+
</div>
|
|
857
|
+
</div>
|
|
858
|
+
</div>
|
|
859
|
+
</nav>
|
|
860
|
+
);
|
|
861
|
+
};
|