@syscore/ui-library 1.11.1 → 1.12.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.
Files changed (55) hide show
  1. package/client/components/icons/UtilityClose.tsx +1 -1
  2. package/client/components/icons/achievement-badges/BadgeCertificationBronze.tsx +103 -0
  3. package/client/components/icons/achievement-badges/BadgeCertificationGold.tsx +103 -0
  4. package/client/components/icons/achievement-badges/BadgeCertificationPlatinum.tsx +103 -0
  5. package/client/components/icons/achievement-badges/BadgeCertificationSilver.tsx +103 -0
  6. package/client/components/icons/achievement-badges/BadgeRatingCoworking.tsx +59 -0
  7. package/client/components/icons/achievement-badges/BadgeRatingDesign.tsx +59 -0
  8. package/client/components/icons/achievement-badges/BadgeRatingEquity.tsx +59 -0
  9. package/client/components/icons/achievement-badges/BadgeRatingHealthySafety.tsx +63 -0
  10. package/client/components/icons/achievement-badges/BadgeRatingOperations.tsx +63 -0
  11. package/client/components/icons/achievement-badges/BadgeRatingPerformance.tsx +63 -0
  12. package/client/components/icons/achievement-badges/BadgeRatingRealEstate.tsx +63 -0
  13. package/client/components/icons/achievement-badges/BadgeRatingResidential.tsx +63 -0
  14. package/client/components/icons/achievement-badges/BadgeRatingWorkforce.tsx +59 -0
  15. package/client/components/icons/achievement-badges/index.tsx +13 -0
  16. package/client/components/icons/provider-badges/BadgeEnterpriseProvider.tsx +72 -0
  17. package/client/components/icons/provider-badges/BadgePerformanceTestingProvider.tsx +76 -0
  18. package/client/components/icons/provider-badges/BadgeProductProvider.tsx +72 -0
  19. package/client/components/icons/provider-badges/BadgeSurveyProvider.tsx +72 -0
  20. package/client/components/icons/provider-badges/index.tsx +4 -0
  21. package/client/components/icons/provider-seals/SealEnterpriseProvider.tsx +67 -0
  22. package/client/components/icons/provider-seals/SealPerformanceTestingProvider.tsx +67 -0
  23. package/client/components/icons/provider-seals/SealProductProvider.tsx +63 -0
  24. package/client/components/icons/provider-seals/SealProviders.tsx +63 -0
  25. package/client/components/icons/provider-seals/SealSurveyProvider.tsx +63 -0
  26. package/client/components/icons/provider-seals/index.tsx +5 -0
  27. package/client/components/icons/seals/IWBILogo.tsx +169 -0
  28. package/client/components/icons/{SealIwbiMember.tsx → seals/SealIwbiMember.tsx} +1 -1
  29. package/client/components/icons/{SealWell.tsx → seals/SealWell.tsx} +1 -1
  30. package/client/components/icons/{SealWellCertification.tsx → seals/SealWellCertification.tsx} +1 -1
  31. package/client/components/icons/{SealWellCommunity.tsx → seals/SealWellCommunity.tsx} +1 -1
  32. package/client/components/icons/{SealWellResidence.tsx → seals/SealWellResidence.tsx} +1 -1
  33. package/client/components/icons/{SealWorksWithWell.tsx → seals/SealWorksWithWell.tsx} +1 -1
  34. package/client/components/icons/{WellSeal.tsx → seals/WellSeal.tsx} +1 -1
  35. package/client/components/icons/seals/index.tsx +8 -0
  36. package/client/components/icons/{WaterMarkWWWProducts.tsx → watermarks/WaterMarkWWWProducts.tsx} +1 -1
  37. package/client/components/icons/{WaterMarkWellProjects.tsx → watermarks/WaterMarkWellProjects.tsx} +1 -1
  38. package/client/components/icons/{WatermarkMemberOrg.tsx → watermarks/WatermarkMemberOrg.tsx} +1 -1
  39. package/client/components/icons/watermarks/index.tsx +3 -0
  40. package/client/components/ui/accordion.tsx +46 -32
  41. package/client/components/ui/navigation.tsx +32 -56
  42. package/client/components/ui/tooltip.tsx +28 -3
  43. package/client/global.css +19 -21
  44. package/client/ui/Icons.stories.tsx +105 -16
  45. package/client/ui/PageHeader.stories.tsx +1 -1
  46. package/client/ui/Panel.stories.tsx +30 -19
  47. package/client/ui/Tooltip.stories.tsx +30 -19
  48. package/dist/index.cjs.js +1 -1
  49. package/dist/index.d.ts +59 -23
  50. package/dist/index.es.js +1833 -240
  51. package/package.json +1 -1
  52. package/client/components/icons/AchievementBadges.tsx +0 -33
  53. package/client/components/icons/ProviderBadges.tsx +0 -295
  54. package/client/components/icons/ProviderSeals.tsx +0 -319
  55. package/client/components/icons/SealHealthSafetyRating.tsx +0 -65
@@ -4,6 +4,7 @@ import * as React from "react";
4
4
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
5
 
6
6
  import { cn } from "@/lib/utils";
7
+ import { UtilityClose } from "@/components/icons/UtilityClose";
7
8
 
8
9
  type TriggerMode = "hover" | "click";
9
10
 
@@ -149,8 +150,11 @@ function TooltipContent({
149
150
  side = "bottom",
150
151
  children,
151
152
  alignOffset = 0,
153
+ hideClose = false,
152
154
  ...props
153
- }: React.ComponentProps<typeof TooltipPrimitive.Content>) {
155
+ }: React.ComponentProps<typeof TooltipPrimitive.Content> & {
156
+ hideClose?: boolean;
157
+ }) {
154
158
  const { trigger, close, triggerRef } = React.useContext(TooltipContext);
155
159
  const contentRef = React.useRef<HTMLDivElement>(null);
156
160
 
@@ -193,7 +197,7 @@ function TooltipContent({
193
197
  {...props}
194
198
  >
195
199
  {/* Marker/Arrow */}
196
- <div className="tooltip-arrow" data-side={side}>
200
+ <div className="tooltip-arrow">
197
201
  <svg
198
202
  xmlns="http://www.w3.org/2000/svg"
199
203
  width="10"
@@ -207,10 +211,31 @@ function TooltipContent({
207
211
  />
208
212
  </svg>
209
213
  </div>
214
+ {!hideClose && <ToggleClose className="absolute top-4 right-4" />}
210
215
  {children}
211
216
  </TooltipPrimitive.Content>
212
217
  </TooltipPrimitive.Portal>
213
218
  );
214
219
  }
215
220
 
216
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
221
+ function ToggleClose({ className }: { className?: string }) {
222
+ const { close } = React.useContext(TooltipContext);
223
+
224
+ return (
225
+ <button
226
+ data-slot="tooltip-close"
227
+ onClick={close}
228
+ className={cn("group cursor-pointer", className)}
229
+ >
230
+ <UtilityClose />
231
+ </button>
232
+ );
233
+ }
234
+
235
+ export {
236
+ Tooltip,
237
+ TooltipTrigger,
238
+ TooltipContent,
239
+ TooltipProvider,
240
+ ToggleClose,
241
+ };
package/client/global.css CHANGED
@@ -662,13 +662,13 @@ layer(base);
662
662
  --color-beige-50: #fdfcfc;
663
663
  --color-beige-100: #fbfaf9;
664
664
  --color-beige-200: #efeae6;
665
- --color-beige-300: #e2d7d0;
666
- --color-beige-400: #d2c2b6;
667
- --color-beige-500: #c1aa9a;
668
- --color-beige-600: #b59a87;
669
- --color-beige-700: #a5856e;
670
- --color-beige-800: #8b6c56;
671
- --color-beige-900: #685140;
665
+ --color-beige-300: #e3dbd6;
666
+ --color-beige-400: #d3cac4;
667
+ --color-beige-500: #c1b6af;
668
+ --color-beige-600: #b4a9a1;
669
+ --color-beige-700: #a79a92;
670
+ --color-beige-800: #8e837b;
671
+ --color-beige-900: #716962;
672
672
 
673
673
  --color-mind: #0a5161;
674
674
  --color-community: #0f748a;
@@ -1131,8 +1131,6 @@ body {
1131
1131
  width: 2rem;
1132
1132
  height: 2rem;
1133
1133
  padding: 0;
1134
- background-color: var(--color-white, #fff);
1135
- border: 1px solid var(--color-gray-100, #eff1f2);
1136
1134
  transition: all 0.2s ease-in-out;
1137
1135
  }
1138
1136
 
@@ -1761,13 +1759,13 @@ body {
1761
1759
  }
1762
1760
 
1763
1761
  .tag-general--active {
1764
- background-color: var(--color-cyan-800, #0f748a);
1765
- color: var(--color-white, #fff);
1762
+ background-color: var(--tag-active-bg, var(--color-cyan-800, #0f748a));
1763
+ color: var(--tag-active-fg, var(--color-white, #fff));
1766
1764
  font-weight: 600;
1767
1765
  }
1768
1766
 
1769
1767
  .tag-general--active:hover {
1770
- border-color: var(--color-cyan-800, #0f748a);
1768
+ border-color: var(--tag-active-bg, var(--color-cyan-800, #0f748a));
1771
1769
  }
1772
1770
 
1773
1771
  .tag-general--inactive {
@@ -1896,8 +1894,8 @@ body {
1896
1894
  }
1897
1895
 
1898
1896
  .segmented-control-button--active {
1899
- background-color: var(--color-cyan-800, #0f748a);
1900
- color: var(--color-white, #fff);
1897
+ background-color: var(--toggle-active-bg, var(--color-cyan-800, #0f748a));
1898
+ color: var(--toggle-active-fg, var(--color-white, #fff));
1901
1899
  font-weight: 600;
1902
1900
  }
1903
1901
 
@@ -2020,13 +2018,11 @@ body {
2020
2018
  color: currentColor;
2021
2019
  }
2022
2020
 
2023
-
2024
2021
  /* Tooltip Styles */
2025
2022
  .tooltip-content {
2026
2023
  position: relative;
2027
2024
  background-color: #3e4049;
2028
2025
  z-index: 50;
2029
- width: fit-content;
2030
2026
  border-radius: 0.5rem;
2031
2027
  padding: 1.5rem;
2032
2028
  padding-top: 2rem;
@@ -2087,6 +2083,7 @@ body {
2087
2083
  }
2088
2084
 
2089
2085
  .tooltip-content[data-side="top"] {
2086
+ margin-bottom: 12px;
2090
2087
  animation:
2091
2088
  fade-in 0.15s ease-in-out,
2092
2089
  zoom-in 0.15s ease-in-out,
@@ -2108,23 +2105,23 @@ body {
2108
2105
  justify-content: center;
2109
2106
  }
2110
2107
 
2111
- .tooltip-arrow[data-side="top"] {
2108
+ [data-side="top"] > .tooltip-arrow {
2112
2109
  bottom: 0;
2113
2110
  transform: translateX(-50%) rotate(180deg);
2114
2111
  }
2115
2112
 
2116
- .tooltip-arrow[data-side="bottom"] {
2113
+ [data-side="bottom"] > .tooltip-arrow {
2117
2114
  top: 0;
2118
2115
  transform: translateX(-50%);
2119
2116
  }
2120
2117
 
2121
- .tooltip-arrow[data-side="left"] {
2118
+ [data-side="left"] > .tooltip-arrow {
2122
2119
  right: 0;
2123
2120
  top: 50%;
2124
2121
  transform: translateY(-50%) rotate(-90deg);
2125
2122
  }
2126
2123
 
2127
- .tooltip-arrow[data-side="right"] {
2124
+ [data-side="right"] > .tooltip-arrow {
2128
2125
  left: 0;
2129
2126
  top: 50%;
2130
2127
  transform: translateY(-50%) rotate(90deg);
@@ -6993,7 +6990,8 @@ body {
6993
6990
 
6994
6991
  .page-header-description {
6995
6992
  /* Uses body-large utility */
6996
- max-width: 680px;
6993
+ /* max-width: 680px; */
6994
+ padding-right: 10rem;
6997
6995
  }
6998
6996
 
6999
6997
  /* Navigation Styles */
@@ -29,29 +29,51 @@ import { UtilitySearch } from "../components/icons/UtilitySearch";
29
29
  import { UtilitySort } from "../components/icons/UtilitySort";
30
30
  import { UtilityText } from "../components/icons/UtilityText";
31
31
  import { UtilityTriangleInfo } from "../components/icons/UtilityTriangleInfo";
32
- import { SealWell } from "../components/icons/SealWell";
33
- import { SealIwbiMember } from "../components/icons/SealIwbiMember";
34
- import { SealWellCertification } from "../components/icons/SealWellCertification";
35
- import { SealWellCommunity } from "../components/icons/SealWellCommunity";
36
- import { SealWellResidence } from "../components/icons/SealWellResidence";
37
- import { SealWorksWithWell } from "../components/icons/SealWorksWithWell";
38
- import { SealEnterpriseProvider } from "../components/icons/ProviderSeals";
39
- import { SealPerformanceTestingProvider } from "../components/icons/ProviderSeals";
40
- import { SealSurveyProvider } from "../components/icons/ProviderSeals";
32
+ import {
33
+ IWBILogo,
34
+ SealWell,
35
+ SealIwbiMember,
36
+ SealWellCertification,
37
+ SealWellCommunity,
38
+ SealWellResidence,
39
+ SealWorksWithWell,
40
+ } from "../components/icons/seals";
41
+ import {
42
+ SealEnterpriseProvider,
43
+ SealPerformanceTestingProvider,
44
+ SealSurveyProvider,
45
+ } from "../components/icons/provider-seals";
41
46
  import {
42
47
  BadgeEnterpriseProvider,
43
48
  BadgePerformanceTestingProvider,
44
49
  BadgeProductProvider,
45
50
  BadgeSurveyProvider,
46
- } from "../components/icons/ProviderBadges";
47
- import { WatermarkMemberOrg } from "../components/icons/WatermarkMemberOrg";
48
- import { WaterMarkWWWProducts } from "../components/icons/WaterMarkWWWProducts";
49
- import { WaterMarkWellProjects } from "../components/icons/WaterMarkWellProjects";
51
+ } from "../components/icons/provider-badges";
52
+ import {
53
+ WatermarkMemberOrg,
54
+ WaterMarkWWWProducts,
55
+ WaterMarkWellProjects,
56
+ } from "../components/icons/watermarks";
50
57
  import {
51
58
  SealProductProvider,
52
59
  SealProviders,
53
- } from "../components/icons/ProviderSeals";
60
+ } from "../components/icons/provider-seals";
54
61
  import { UtilityTrash } from "@/components/icons/UtilityTrash";
62
+ import {
63
+ BadgeCertificationBronze,
64
+ BadgeCertificationSilver,
65
+ BadgeCertificationGold,
66
+ BadgeCertificationPlatinum,
67
+ BadgeRatingHealthySafety,
68
+ BadgeRatingOperations,
69
+ BadgeRatingPerformance,
70
+ BadgeRatingEquity,
71
+ BadgeRatingCoworking,
72
+ BadgeRatingWorkforce,
73
+ BadgeRatingDesign,
74
+ BadgeRatingRealEstate,
75
+ BadgeRatingResidential,
76
+ } from "../components/icons/achievement-badges";
55
77
 
56
78
  const meta = {
57
79
  title: "Review/Icons",
@@ -281,13 +303,14 @@ export const UtilityIcons: Story = {
281
303
  ),
282
304
  };
283
305
 
284
- export const MarkIcons: Story = {
306
+ export const Seals: Story = {
285
307
  render: () => (
286
308
  <div className="space-y-8 p-8 bg-cyan-50">
287
309
  <div>
288
- <h2 className="text-2xl font-bold mb-6">Mark Icons</h2>
310
+ <h2 className="text-2xl font-bold mb-6">Seals</h2>
289
311
  <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
290
312
  <div className="flex flex-col items-center gap-4">
313
+ <IWBILogo />
291
314
  <SealWell />
292
315
  <SealIwbiMember />
293
316
  <SealWellCertification />
@@ -341,3 +364,69 @@ export const ProviderSeals: Story = {
341
364
  </div>
342
365
  ),
343
366
  };
367
+
368
+ export const AchievementBadges: Story = {
369
+ render: () => (
370
+ <div className="space-y-8 p-8">
371
+ <h2 className="text-2xl font-bold mb-6">Achievement Badges</h2>
372
+ <h3 className="text-lg font-semibold mb-4">Certification</h3>
373
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-6">
374
+ <div className="flex flex-col items-start gap-2">
375
+ <span className="text-sm font-medium">Bronze</span>
376
+ <BadgeCertificationBronze />
377
+ </div>
378
+ <div className="flex flex-col items-start gap-2">
379
+ <span className="text-sm font-medium">Silver</span>
380
+ <BadgeCertificationSilver />
381
+ </div>
382
+ <div className="flex flex-col items-start gap-2">
383
+ <span className="text-sm font-medium">Gold</span>
384
+ <BadgeCertificationGold />
385
+ </div>
386
+ <div className="flex flex-col items-start gap-2">
387
+ <span className="text-sm font-medium">Platinum</span>
388
+ <BadgeCertificationPlatinum />
389
+ </div>
390
+ </div>
391
+ <h3 className="text-lg font-semibold mb-4">Rating</h3>
392
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-6">
393
+ <div className="flex flex-col items-start gap-2">
394
+ <span className="text-sm font-medium">Healthy Safety</span>
395
+ <BadgeRatingHealthySafety />
396
+ </div>
397
+ <div className="flex flex-col items-start gap-2">
398
+ <span className="text-sm font-medium">Operations</span>
399
+ <BadgeRatingOperations />
400
+ </div>
401
+ <div className="flex flex-col items-start gap-2">
402
+ <span className="text-sm font-medium">Performance</span>
403
+ <BadgeRatingPerformance />
404
+ </div>
405
+ <div className="flex flex-col items-start gap-2">
406
+ <span className="text-sm font-medium">Equity</span>
407
+ <BadgeRatingEquity />
408
+ </div>
409
+ <div className="flex flex-col items-start gap-2">
410
+ <span className="text-sm font-medium">Coworking</span>
411
+ <BadgeRatingCoworking />
412
+ </div>
413
+ <div className="flex flex-col items-start gap-2">
414
+ <span className="text-sm font-medium">Workforce</span>
415
+ <BadgeRatingWorkforce />
416
+ </div>
417
+ <div className="flex flex-col items-start gap-2">
418
+ <span className="text-sm font-medium">Design</span>
419
+ <BadgeRatingDesign />
420
+ </div>
421
+ <div className="flex flex-col items-start gap-2">
422
+ <span className="text-sm font-medium">Real Estate</span>
423
+ <BadgeRatingRealEstate />
424
+ </div>
425
+ <div className="flex flex-col items-start gap-2">
426
+ <span className="text-sm font-medium">Residential</span>
427
+ <BadgeRatingResidential />
428
+ </div>
429
+ </div>
430
+ </div>
431
+ ),
432
+ };
@@ -7,7 +7,7 @@ import {
7
7
  PageHeaderTitle,
8
8
  PageHeaderDescription,
9
9
  } from "../components/ui/page-header";
10
- import { BadgeCertificationBronze } from "../components/icons/AchievementBadges";
10
+ import { BadgeCertificationBronze } from "../components/icons/achievement-badges";
11
11
  import { Tag } from "../components/ui/tag";
12
12
  import {
13
13
  Tooltip,
@@ -7,7 +7,7 @@ import { Tag } from "../components/ui/tag";
7
7
  import { CONCEPT_ICONS, conceptOrder } from "../lib/concept-icons";
8
8
  import { conceptColors } from "../lib/concept-colors";
9
9
  import { Card } from "../components/ui/card";
10
- import { useState } from "react";
10
+ import { useState, type CSSProperties } from "react";
11
11
  import { Label } from "../components/ui/label";
12
12
  import { Toggle } from "../components/ui/toggle";
13
13
 
@@ -37,8 +37,17 @@ const ExploreSidePanelView = (args: any) => {
37
37
  const [hoveredStrategy, setHoveredStrategy] = useState<string | null>(null);
38
38
 
39
39
  // Derived data
40
- const conceptsByKey = new Map(concepts.map((c) => [c.conceptKey, c]));
41
40
  const activeColor = getConceptColor(selectedConcept || "community");
41
+ const displayedConceptKey = hoveredConcept ?? selectedConcept;
42
+ const displayedConceptName = displayedConceptKey
43
+ ? capitalize(
44
+ concepts.find((c) => c.conceptKey === displayedConceptKey)?.name ?? "",
45
+ )
46
+ : "";
47
+ const displayedThemeCode = hoveredTheme ?? selectedTheme;
48
+ const displayedThemeName = displayedThemeCode
49
+ ? capitalize(themes.find((t) => t.code === displayedThemeCode)?.name ?? "")
50
+ : "";
42
51
 
43
52
  return (
44
53
  <LayoutGroup>
@@ -50,24 +59,21 @@ const ExploreSidePanelView = (args: any) => {
50
59
 
51
60
  <div className="relative min-w-0 flex-1 self-stretch">
52
61
  <AnimatePresence mode="wait">
53
- {hoveredConcept && (
62
+ {displayedConceptName && (
54
63
  <motion.div
55
- key={hoveredConcept}
64
+ key={displayedConceptKey ?? "concept-label"}
56
65
  initial={{ opacity: 0, x: -4 }}
57
66
  animate={{ opacity: 1, x: 0 }}
58
67
  exit={{ opacity: 0, x: 4 }}
59
68
  transition={{ duration: 0.15 }}
60
- className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small"
69
+ className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small max-w-40"
61
70
  style={{ willChange: "opacity, transform" }}
62
71
  >
63
72
  <span className="line-clamp-1 text-gray-800">
64
73
  <span aria-hidden="true" className="text-gray-300">
65
74
  ·{" "}
66
75
  </span>
67
- {capitalize(
68
- concepts.find((c) => c.conceptKey === hoveredConcept)
69
- ?.name ?? "",
70
- )}
76
+ {displayedConceptName}
71
77
  </span>
72
78
  </motion.div>
73
79
  )}
@@ -106,7 +112,9 @@ const ExploreSidePanelView = (args: any) => {
106
112
  }
107
113
  return undefined;
108
114
  })()}
109
- aria-label={conceptsByKey.get(slug)?.name}
115
+ aria-label={
116
+ concepts.find((c) => c.conceptKey === slug)?.name
117
+ }
110
118
  >
111
119
  <Icon
112
120
  active={isFilled}
@@ -137,24 +145,21 @@ const ExploreSidePanelView = (args: any) => {
137
145
 
138
146
  <div className="relative min-w-0 flex-1 self-stretch">
139
147
  <AnimatePresence mode="wait">
140
- {hoveredTheme && (
148
+ {displayedThemeName && (
141
149
  <motion.div
142
- key={hoveredTheme}
150
+ key={displayedThemeCode ?? "theme-label"}
143
151
  initial={{ opacity: 0, x: -4 }}
144
152
  animate={{ opacity: 1, x: 0 }}
145
153
  exit={{ opacity: 0, x: 4 }}
146
154
  transition={{ duration: 0.15 }}
147
- className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small"
155
+ className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small max-w-40"
148
156
  style={{ willChange: "opacity, transform" }}
149
157
  >
150
158
  <span className="block w-[235px] truncate pr-6 text-gray-800">
151
159
  <span aria-hidden="true" className="text-gray-300">
152
160
  ·{" "}
153
161
  </span>
154
- {capitalize(
155
- themes.find((t) => t.code === hoveredTheme)?.name ??
156
- "",
157
- )}
162
+ {displayedThemeName}
158
163
  </span>
159
164
  </motion.div>
160
165
  )}
@@ -244,7 +249,7 @@ const ExploreSidePanelView = (args: any) => {
244
249
  animate={{ opacity: 1, x: 0 }}
245
250
  exit={{ opacity: 0, x: 4 }}
246
251
  transition={{ duration: 0.15 }}
247
- className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small"
252
+ className="absolute top-1/2 -translate-y-1/2 left-0 right-0 body-small max-w-40"
248
253
  style={{ willChange: "opacity, transform" }}
249
254
  >
250
255
  <span className="line-clamp-1">
@@ -319,6 +324,9 @@ const ExploreSidePanelView = (args: any) => {
319
324
  { label: "Core", value: "core" },
320
325
  ]}
321
326
  value={scope}
327
+ style={
328
+ { "--toggle-active-bg": "var(--color-cyan-700)" } as CSSProperties
329
+ }
322
330
  onValueChange={(value) =>
323
331
  onScopeChange(value as "non-core" | "core")
324
332
  }
@@ -333,7 +341,10 @@ const ExploreSidePanelView = (args: any) => {
333
341
  className="flex flex-col gap-3 items-start max-w-max"
334
342
  >
335
343
  <Label>PURSUIT</Label>
336
- <div className=" inline-flex gap-3">
344
+ <div
345
+ className=" inline-flex gap-3"
346
+ style={{ "--tag-active-bg": "var(--color-cyan-700)" } as CSSProperties}
347
+ >
337
348
  <Tag
338
349
  variant="text"
339
350
  active={activePursuits.has("certification")}
@@ -6,6 +6,7 @@ import {
6
6
  } from "../components/ui/tooltip";
7
7
  import { Separator } from "../components/ui/separator";
8
8
  import { Button } from "../components/ui/button";
9
+ import { Text } from "../components/ui/typography";
9
10
 
10
11
  const meta = {
11
12
  title: "Review/Tooltip",
@@ -25,15 +26,21 @@ export const Default: Story = {
25
26
  <div className="p-16">
26
27
  <Tooltip>
27
28
  <TooltipTrigger>Hover</TooltipTrigger>
28
- <TooltipContent>
29
+ <TooltipContent className="w-[400px]">
29
30
  <div className="space-y-3">
30
- <h4 className="text-white font-semibold text-base">
31
+ <Text as="h1" variant="body-base" className="text-white">
31
32
  Strategy Details
32
- </h4>
33
+ </Text>
33
34
  <div className="space-y-1">
34
- <p className="text-white/90 text-sm">Status: Active</p>
35
- <p className="text-white/90 text-sm">Score: 12 PTS</p>
36
- <p className="text-white/90 text-sm">Last updated: 2 days ago</p>
35
+ <Text as="p" variant="body-small" className="text-white/90">
36
+ Status: Active
37
+ </Text>
38
+ <Text as="p" variant="body-small" className="text-white/90">
39
+ Score: 12 PTS
40
+ </Text>
41
+ <Text as="p" variant="body-small" className="text-white/90">
42
+ Last updated: 2 days ago
43
+ </Text>
37
44
  </div>
38
45
  </div>
39
46
  </TooltipContent>
@@ -45,15 +52,21 @@ export const Default: Story = {
45
52
  export const WithContent: Story = {
46
53
  render: () => (
47
54
  <div className="p-16">
48
- <Tooltip>
55
+ <Tooltip trigger="click">
49
56
  <TooltipTrigger>Hover with Content</TooltipTrigger>
50
- <TooltipContent className="w-[400px]" alignOffset={500}>
57
+ <TooltipContent className="w-[400px]">
51
58
  <div className="space-y-4">
52
- <h4 className="text-white font-semibold body-base">Header</h4>
59
+ <Text as="h1" variant="body-base" className="text-white">
60
+ Header
61
+ </Text>
53
62
  <div className="space-y-4">
54
- <p className="text-white/90 body-small">Body</p>
63
+ <Text as="p" variant="body-small" className="text-white/90">
64
+ Body
65
+ </Text>
55
66
  <Separator className="my-8" />
56
- <p className="text-white/90 body-small">Body</p>
67
+ <Text as="p" variant="body-small" className="text-white/90">
68
+ Body
69
+ </Text>
57
70
 
58
71
  <div className="flex flex-row gap-4 justify-start items-start">
59
72
  <Button size="utility" variant="tooltip-primary">
@@ -75,18 +88,16 @@ export const Click: Story = {
75
88
  render: () => (
76
89
  <div className="p-16">
77
90
  <Tooltip trigger="click">
78
- <TooltipTrigger >
79
- Click me
80
- </TooltipTrigger>
81
- <TooltipContent>
91
+ <TooltipTrigger>Click me</TooltipTrigger>
92
+ <TooltipContent className="w-[400px]">
82
93
  <div className="space-y-3">
83
- <h4 className="text-white font-semibold text-base">
94
+ <Text as="h1" variant="body-base" className="text-white">
84
95
  Click Tooltip
85
- </h4>
96
+ </Text>
86
97
  <div className="space-y-1">
87
- <p className="text-white/90 text-sm">
98
+ <Text as="p" variant="body-small" className="text-white/90">
88
99
  This tooltip opens on click and closes when clicking outside.
89
- </p>
100
+ </Text>
90
101
  </div>
91
102
  </div>
92
103
  </TooltipContent>