@syscore/ui-library 1.15.2 → 1.15.4

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.
@@ -1,13 +1,30 @@
1
1
  import React from "react";
2
2
  import { cn } from "../../lib/utils";
3
3
 
4
+ /** Green = low, Plum = medium, Coral = high */
5
+ export type UtilityTriangleInfoVariant = "low" | "medium" | "high";
6
+
7
+ const VARIANT_COLORS: Record<
8
+ UtilityTriangleInfoVariant,
9
+ { fill: string; stroke: string }
10
+ > = {
11
+ low: { fill: "#50E7CA", stroke: "#1BC5A3" },
12
+ medium: { fill: "#DCADD2", stroke: "#AA6A9B" },
13
+ high: { fill: "#F0AA99", stroke: "#E67357" },
14
+ };
15
+
4
16
  interface UtilityTriangleInfoProps {
5
17
  className?: string;
18
+ /** Low (green), Medium (plum), High (coral) */
19
+ variant?: UtilityTriangleInfoVariant;
6
20
  }
7
21
 
8
22
  export const UtilityTriangleInfo: React.FC<UtilityTriangleInfoProps> = ({
9
23
  className,
24
+ variant = "low",
10
25
  }) => {
26
+ const { fill, stroke } = VARIANT_COLORS[variant];
27
+
11
28
  return (
12
29
  <svg
13
30
  xmlns="http://www.w3.org/2000/svg"
@@ -19,8 +36,8 @@ export const UtilityTriangleInfo: React.FC<UtilityTriangleInfoProps> = ({
19
36
  >
20
37
  <path
21
38
  d="M7.78821 1.348C7.6827 1.16611 7.53127 1.01514 7.34906 0.910189C7.16685 0.80524 6.96027 0.75 6.75 0.75C6.53973 0.75 6.33315 0.80524 6.15094 0.910189C5.96873 1.01514 5.8173 1.16611 5.71179 1.348L0.910803 9.74972C0.805511 9.93209 0.750054 10.139 0.75 10.3495C0.749946 10.5601 0.805297 10.767 0.910495 10.9494C1.01569 11.1319 1.16703 11.2834 1.34932 11.3888C1.53161 11.4943 1.73843 11.5499 1.94902 11.5501H11.551C11.7616 11.5499 11.9684 11.4943 12.1507 11.3888C12.333 11.2834 12.4843 11.1319 12.5895 10.9494C12.6947 10.767 12.7501 10.5601 12.75 10.3495C12.7499 10.139 12.6945 9.93209 12.5892 9.74972L7.78821 1.348Z"
22
- fill="#50E7CA"
23
- stroke="#1BC5A3"
39
+ fill={fill}
40
+ stroke={stroke}
24
41
  strokeWidth="1.5"
25
42
  strokeLinecap="round"
26
43
  strokeLinejoin="round"
@@ -0,0 +1,45 @@
1
+ import { cn } from "@/lib/utils";
2
+
3
+ export const BadgeImperativePrimary = ({
4
+ className,
5
+ }: {
6
+ className?: string;
7
+ }) => {
8
+ return (
9
+ <div className={cn("size-6 flex items-center justify-center", className)}>
10
+ <svg
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ width="20"
13
+ height="22"
14
+ viewBox="0 0 20 22"
15
+ fill="none"
16
+ >
17
+ <path
18
+ d="M19.2133 7.81921C19.2133 6.38498 18.4454 5.06051 17.2008 4.3479L11.5941 1.13788C10.3629 0.432974 8.85042 0.432974 7.61921 1.13788L2.01255 4.3479C0.767878 5.06051 0 6.38498 0 7.81921V14.1808C0 15.615 0.767878 16.9395 2.01255 17.6521L7.61921 20.8621C8.85042 21.567 10.3629 21.567 11.5941 20.8621L17.2008 17.6521C18.4454 16.9395 19.2133 15.615 19.2133 14.1808V7.81921Z"
19
+ fill="#905C84"
20
+ />
21
+ <path
22
+ d="M9.68994 5.5V16.5023"
23
+ stroke="white"
24
+ stroke-width="1.5"
25
+ stroke-linecap="round"
26
+ stroke-linejoin="round"
27
+ />
28
+ <path
29
+ d="M14.4542 8.25055L4.92627 13.7517"
30
+ stroke="white"
31
+ stroke-width="1.5"
32
+ stroke-linecap="round"
33
+ stroke-linejoin="round"
34
+ />
35
+ <path
36
+ d="M4.92627 8.25055L14.4542 13.7517"
37
+ stroke="white"
38
+ stroke-width="1.5"
39
+ stroke-linecap="round"
40
+ stroke-linejoin="round"
41
+ />
42
+ </svg>
43
+ </div>
44
+ );
45
+ };
@@ -0,0 +1,53 @@
1
+ import { cn } from "@/lib/utils";
2
+
3
+ export const BadgeImperativeSecondary = ({
4
+ className,
5
+ }: {
6
+ className?: string;
7
+ }) => {
8
+ return (
9
+ <div className={cn("size-6 flex items-center justify-center", className)}>
10
+ <svg
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ width="20"
13
+ height="22"
14
+ viewBox="0 0 20 22"
15
+ fill="none"
16
+ >
17
+ <path
18
+ d="M19.2133 7.81921C19.2133 6.38498 18.4454 5.06051 17.2008 4.3479L11.5941 1.13788C10.3629 0.432974 8.85042 0.432974 7.61921 1.13788L2.01255 4.3479C0.767878 5.06051 0 6.38498 0 7.81921V14.1808C0 15.615 0.767878 16.9395 2.01255 17.6521L7.61921 20.8621C8.85042 21.567 10.3629 21.567 11.5941 20.8621L17.2008 17.6521C18.4454 16.9395 19.2133 15.615 19.2133 14.1808V7.81921Z"
19
+ fill="#128BA6"
20
+ fill-opacity="0.08"
21
+ />
22
+ <path
23
+ d="M7.86719 1.57227C8.9445 0.955469 10.2684 0.955469 11.3457 1.57227L16.9521 4.78223C18.0412 5.40577 18.7129 6.56439 18.7129 7.81934V14.1807C18.7129 15.4356 18.0412 16.5942 16.9521 17.2178L11.3457 20.4277C10.2684 21.0445 8.9445 21.0445 7.86719 20.4277L2.26074 17.2178C1.17187 16.5942 0.5 15.4355 0.5 14.1807V7.81934C0.5 6.56452 1.17187 5.40582 2.26074 4.78223L7.86719 1.57227Z"
24
+ stroke="#128BA6"
25
+ stroke-opacity="0.16"
26
+ stroke-linecap="round"
27
+ stroke-linejoin="round"
28
+ />
29
+ <path
30
+ d="M9.68994 5.5V16.5023"
31
+ stroke="#0F748A"
32
+ stroke-width="1.5"
33
+ stroke-linecap="round"
34
+ stroke-linejoin="round"
35
+ />
36
+ <path
37
+ d="M14.4542 8.25055L4.92627 13.7517"
38
+ stroke="#0F748A"
39
+ stroke-width="1.5"
40
+ stroke-linecap="round"
41
+ stroke-linejoin="round"
42
+ />
43
+ <path
44
+ d="M4.92627 8.25055L14.4542 13.7517"
45
+ stroke="#0F748A"
46
+ stroke-width="1.5"
47
+ stroke-linecap="round"
48
+ stroke-linejoin="round"
49
+ />
50
+ </svg>
51
+ </div>
52
+ );
53
+ };
@@ -0,0 +1,2 @@
1
+ export { BadgeImperativePrimary } from "./BadgeImperativePrimary";
2
+ export { BadgeImperativeSecondary } from "./BadgeImperativeSecondary";
@@ -2,10 +2,23 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
+ import { cva, type VariantProps } from "class-variance-authority";
5
6
 
6
7
  import { cn } from "@/lib/utils";
7
8
  import { UtilityClose } from "@/components/icons/UtilityClose";
8
9
 
10
+ const tooltipContentVariants = cva("tooltip-content", {
11
+ variants: {
12
+ variant: {
13
+ default: "tooltip-content--default",
14
+ simple: "tooltip-content--simple",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "default",
19
+ },
20
+ });
21
+
9
22
  type TriggerMode = "hover" | "click";
10
23
 
11
24
  // Context for passing trigger mode and close function to children
@@ -146,15 +159,17 @@ function TooltipTrigger({
146
159
 
147
160
  function TooltipContent({
148
161
  className,
162
+ variant,
149
163
  sideOffset = 0,
150
164
  side = "bottom",
151
165
  children,
152
166
  alignOffset = 0,
153
167
  hideClose = false,
154
168
  ...props
155
- }: React.ComponentProps<typeof TooltipPrimitive.Content> & {
156
- hideClose?: boolean;
157
- }) {
169
+ }: React.ComponentProps<typeof TooltipPrimitive.Content> &
170
+ VariantProps<typeof tooltipContentVariants> & {
171
+ hideClose?: boolean;
172
+ }) {
158
173
  const { trigger, close, triggerRef } = React.useContext(TooltipContext);
159
174
  const contentRef = React.useRef<HTMLDivElement>(null);
160
175
 
@@ -193,25 +208,28 @@ function TooltipContent({
193
208
  sideOffset={sideOffset}
194
209
  alignOffset={alignOffset}
195
210
  side={side}
196
- className={cn("tooltip-content", className)}
211
+ className={cn(tooltipContentVariants({ variant }), className)}
197
212
  {...props}
198
213
  >
199
- {/* Marker/Arrow */}
200
- <div className="tooltip-arrow">
201
- <svg
202
- xmlns="http://www.w3.org/2000/svg"
203
- width="10"
204
- height="5"
205
- viewBox="0 0 10 5"
206
- fill="none"
207
- >
208
- <path
209
- d="M10 -1.74846e-06L-7.36867e-07 0C-3.29906e-07 2.76142 2.23858 5 5 5C7.76142 5 10 2.76142 10 -1.74846e-06Z"
210
- fill="#39C9EA"
211
- />
212
- </svg>
213
- </div>
214
- {!hideClose && <ToggleClose className="absolute top-4 right-4" />}
214
+ {variant !== "simple" && (
215
+ <div className="tooltip-arrow">
216
+ <svg
217
+ xmlns="http://www.w3.org/2000/svg"
218
+ width="10"
219
+ height="5"
220
+ viewBox="0 0 10 5"
221
+ fill="none"
222
+ >
223
+ <path
224
+ d="M10 -1.74846e-06L-7.36867e-07 0C-3.29906e-07 2.76142 2.23858 5 5 5C7.76142 5 10 2.76142 10 -1.74846e-06Z"
225
+ fill="currentColor"
226
+ />
227
+ </svg>
228
+ </div>
229
+ )}
230
+ {variant !== "simple" && !hideClose && (
231
+ <ToggleClose className="absolute top-4 right-4" />
232
+ )}
215
233
  {children}
216
234
  </TooltipPrimitive.Content>
217
235
  </TooltipPrimitive.Portal>
@@ -236,6 +254,7 @@ export {
236
254
  Tooltip,
237
255
  TooltipTrigger,
238
256
  TooltipContent,
257
+ tooltipContentVariants,
239
258
  TooltipProvider,
240
259
  ToggleClose,
241
260
  };
package/client/global.css CHANGED
@@ -2042,7 +2042,6 @@ body {
2042
2042
  /* Tooltip Styles */
2043
2043
  .tooltip-content {
2044
2044
  position: relative;
2045
- background-color: #3e4049;
2046
2045
  z-index: 50;
2047
2046
  border-radius: 0.5rem;
2048
2047
  padding: 1.5rem;
@@ -2055,6 +2054,20 @@ body {
2055
2054
  zoom-in 0.15s ease-in-out;
2056
2055
  }
2057
2056
 
2057
+ .tooltip-content--default {
2058
+ background-color: #3e4049;
2059
+ color: #39c9ea;
2060
+ }
2061
+
2062
+ .tooltip-content--simple {
2063
+ border-radius: var(--radius-full, 9999px);
2064
+ background-color: var(--color-cyan-50, #f0f8fb);
2065
+ border: 1px solid var(--color-cyan-100, #eff5fb);
2066
+ color: inherit;
2067
+ padding: 0.75rem 1rem;
2068
+ margin-top: 0.5rem;
2069
+ }
2070
+
2058
2071
  .tooltip-content[data-state="closed"] {
2059
2072
  animation:
2060
2073
  fade-out 0.15s ease-in-out,
@@ -72,6 +72,10 @@ import {
72
72
  SealProviders,
73
73
  } from "../components/icons/provider-seals";
74
74
  import { UtilityTrash } from "@/components/icons/UtilityTrash";
75
+ import {
76
+ BadgeImperativePrimary,
77
+ BadgeImperativeSecondary,
78
+ } from "../components/icons/imperative-badges";
75
79
  import {
76
80
  BadgeCertificationBronze,
77
81
  BadgeCertificationSilver,
@@ -323,58 +327,58 @@ export const Seals: Story = {
323
327
  <h2 className="text-2xl font-bold mb-6">Seals</h2>
324
328
  <div className="grid grid-cols-1 gap-6">
325
329
  <div className="grid grid-cols-2 sm:grid-cols-6 items-start gap-6">
326
- <div className="flex flex-col items-start gap-2">
330
+ <div className="flex flex-col items-center gap-2">
327
331
  <p>IWBILogo</p>
328
332
  <div className="flex flex-col items-center gap-2">
329
- <IWBILogo className="size-48" />
333
+ <IWBILogo className="size-24" />
330
334
  </div>
331
335
  </div>
332
336
  <div className="flex flex-col items-center gap-2">
333
337
  <p>WELL Seals</p>
334
- <div className="flex flex-col gap-2">
335
- <SealWell className="size-40" />
336
- <SealWorksWithWell className="size-40" />
338
+ <div className="flex flex-col items-center gap-2">
339
+ <SealWell className="size-24" />
340
+ <SealWorksWithWell className="size-24" />
337
341
  </div>
338
342
  </div>
339
343
  <div className="flex flex-col items-center gap-2">
340
344
  <p>IWBI Seals</p>
341
- <div className="flex flex-col gap-2">
342
- <SealIwbiMember className="size-40" />
343
- <SealWellCertification className="size-40" />
344
- <SealWellCommunity className="size-40" />
345
- <SealWellResidence className="size-40" />
345
+ <div className="flex flex-col items-center gap-2">
346
+ <SealIwbiMember className="size-24" />
347
+ <SealWellCertification className="size-24" />
348
+ <SealWellCommunity className="size-24" />
349
+ <SealWellResidence className="size-24" />
346
350
  </div>
347
351
  </div>
348
352
  <div className="flex flex-col items-center gap-2">
349
353
  <p>Certification Seals</p>
350
- <div className="flex flex-col gap-2">
351
- <SealCertification className="size-40" />
352
- <SealCertificationBronze className="size-40" />
353
- <SealCertificationSilver className="size-40" />
354
- <SealCertificationGold className="size-40" />
355
- <SealCertificationPlatinum className="size-40" />
354
+ <div className="flex flex-col items-center justify-center gap-2">
355
+ <SealCertification className="size-24" />
356
+ <SealCertificationBronze className="size-24" />
357
+ <SealCertificationSilver className="size-24" />
358
+ <SealCertificationGold className="size-24" />
359
+ <SealCertificationPlatinum className="size-24" />
356
360
  </div>
357
361
  </div>
358
362
  <div className="flex flex-col items-center gap-2">
359
363
  <p>Rating Seals</p>
360
- <div className="flex flex-col gap-2">
361
- <SealRating className="size-40" />
362
- <SealRatingHealthSafety className="size-40" />
363
- <SealRatingOperations className="size-40" />
364
- <SealRatingPerformance className="size-40" />
365
- <SealRatingEquity className="size-40" />
366
- <SealRatingCoworking className="size-40" />
367
- <SealRatingWorkforce className="size-40" />
368
- <SealRatingDesign className="size-40" />
369
- <SealRatingRealEstate className="size-40" />
364
+ <div className="flex flex-col items-center justify-center gap-2">
365
+ <SealRating className="size-24" />
366
+ <SealRatingHealthSafety className="size-24" />
367
+ <SealRatingOperations className="size-24" />
368
+ <SealRatingPerformance className="size-24" />
369
+ <SealRatingEquity className="size-24" />
370
+ <SealRatingCoworking className="size-24" />
371
+ <SealRatingWorkforce className="size-24" />
372
+ <SealRatingDesign className="size-24" />
373
+ <SealRatingRealEstate className="size-24" />
370
374
  </div>
371
375
  </div>
372
376
  <div className="flex flex-col items-center gap-2">
373
377
  <p>Watermark Seals</p>
374
- <div className="flex flex-col gap-2">
375
- <WatermarkMemberOrg className="size-40" />
376
- <WaterMarkWWWProducts className="size-40" />
377
- <WaterMarkWellProjects className="size-40" />
378
+ <div className="flex flex-col items-center justify-center gap-2">
379
+ <WatermarkMemberOrg className="size-24" />
380
+ <WaterMarkWWWProducts className="size-24" />
381
+ <WaterMarkWellProjects className="size-24" />
378
382
  </div>
379
383
  </div>
380
384
  </div>
@@ -477,3 +481,21 @@ export const AchievementBadges: Story = {
477
481
  </div>
478
482
  ),
479
483
  };
484
+
485
+ export const ImperativeBadges: Story = {
486
+ render: () => (
487
+ <div className="space-y-8 p-8">
488
+ <h2 className="text-2xl font-bold mb-6">Imperative Badges</h2>
489
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-6">
490
+ <div className="flex flex-col items-center gap-2">
491
+ <BadgeImperativePrimary />
492
+ <span className="text-sm font-medium">Primary</span>
493
+ </div>
494
+ <div className="flex flex-col items-center gap-2">
495
+ <BadgeImperativeSecondary />
496
+ <span className="text-sm font-medium">Secondary</span>
497
+ </div>
498
+ </div>
499
+ </div>
500
+ ),
501
+ };
@@ -16,6 +16,8 @@ import {
16
16
  } from "../components/ui/tooltip";
17
17
  import { motion, AnimatePresence } from "motion/react";
18
18
  import { useState } from "react";
19
+ import { BadgeImperativePrimary } from "@/components/icons/imperative-badges";
20
+ import { Text } from "@/components/ui/typography";
19
21
 
20
22
  const meta = {
21
23
  title: "Review/PageHeader",
@@ -288,3 +290,83 @@ export const ThemeHeaderWithPoints: Story = {
288
290
  );
289
291
  },
290
292
  };
293
+
294
+ export const ThemeHeaderWithImperativeBadge: Story = {
295
+ render: () => {
296
+ const themeCode = "C8";
297
+ const conceptColor = {
298
+ solid: "#0f748a",
299
+ contrast: "#0f748a",
300
+ border: "#0f748a",
301
+ };
302
+ const themeData = {
303
+ name: "Occupant experience",
304
+ description:
305
+ "This theme focuses on understanding and improving the overall experience of building occupants through research and feedback mechanisms.",
306
+ };
307
+
308
+ const [isHovered, setIsHovered] = useState(false);
309
+ const [tooltipOpen, setTooltipOpen] = useState(false);
310
+ const isVisible = isHovered || tooltipOpen;
311
+
312
+ return (
313
+ <PageHeader>
314
+ <PageHeaderTopSection className="mb-4">
315
+ <PageHeaderLeftContent>
316
+ <Tag
317
+ variant="code"
318
+ style={{
319
+ backgroundColor: conceptColor.contrast || conceptColor.solid,
320
+ borderColor: conceptColor.border,
321
+ color: "white",
322
+ }}
323
+ >
324
+ {themeCode}
325
+ </Tag>
326
+ <Tooltip trigger="click">
327
+ <TooltipTrigger>
328
+ <span className="body-base text-gray-600 underline-dotted cursor-pointer">
329
+ Theme
330
+ </span>
331
+ </TooltipTrigger>
332
+ <TooltipContent className="max-w-[400px]">
333
+ <p className="body-base text-white">
334
+ Themes are groupings of related strategies that address
335
+ specific aspects of health and well-being within a concept
336
+ area.
337
+ </p>
338
+ </TooltipContent>
339
+ </Tooltip>
340
+ </PageHeaderLeftContent>
341
+
342
+ <div className="flex items-center gap-4">
343
+ <Tooltip>
344
+ <TooltipTrigger>
345
+ <BadgeImperativePrimary className="cursor-pointer" />
346
+ </TooltipTrigger>
347
+ <TooltipContent variant="simple">
348
+ <Text as="p" variant="body-small">
349
+ <span className="font-semibold">Required</span> for
350
+ certification
351
+ </Text>
352
+ </TooltipContent>
353
+ </Tooltip>
354
+ <div className="flex items-end gap-1">
355
+ <span className="text-gray-800 number-large font-semibold">
356
+ 1
357
+ </span>
358
+ <span className="text-gray-800 overline-medium">PT</span>
359
+ </div>
360
+ </div>
361
+ </PageHeaderTopSection>
362
+
363
+ <PageHeaderTitle className="heading-small mb-3">
364
+ {themeData.name}
365
+ </PageHeaderTitle>
366
+ <PageHeaderDescription className="body-large">
367
+ {themeData.description}
368
+ </PageHeaderDescription>
369
+ </PageHeader>
370
+ );
371
+ },
372
+ };
@@ -49,33 +49,20 @@ export const Default: Story = {
49
49
  ),
50
50
  };
51
51
 
52
- export const WithContent: Story = {
52
+ export const Click: Story = {
53
53
  render: () => (
54
54
  <div className="p-16">
55
55
  <Tooltip trigger="click">
56
- <TooltipTrigger>Hover with Content</TooltipTrigger>
56
+ <TooltipTrigger>Click me</TooltipTrigger>
57
57
  <TooltipContent className="w-[400px]">
58
- <div className="space-y-4">
58
+ <div className="space-y-3">
59
59
  <Text as="h1" variant="body-base" className="text-white">
60
- Header
60
+ Click Tooltip
61
61
  </Text>
62
- <div className="space-y-4">
63
- <Text as="p" variant="body-small" className="text-white/90">
64
- Body
65
- </Text>
66
- <Separator className="my-8" />
62
+ <div className="space-y-1">
67
63
  <Text as="p" variant="body-small" className="text-white/90">
68
- Body
64
+ This tooltip opens on click and closes when clicking outside.
69
65
  </Text>
70
-
71
- <div className="flex flex-row gap-4 justify-start items-start">
72
- <Button size="utility" variant="tooltip-primary">
73
- Action
74
- </Button>
75
- </div>
76
- <Button size="utility" variant="tooltip-secondary">
77
- Action
78
- </Button>
79
66
  </div>
80
67
  </div>
81
68
  </TooltipContent>
@@ -84,24 +71,45 @@ export const WithContent: Story = {
84
71
  ),
85
72
  };
86
73
 
87
- export const Click: Story = {
74
+ export const Simple: Story = {
88
75
  render: () => (
89
76
  <div className="p-16">
90
- <Tooltip trigger="click">
91
- <TooltipTrigger>Click me</TooltipTrigger>
92
- <TooltipContent className="w-[400px]">
93
- <div className="space-y-3">
77
+ <Tooltip>
78
+ <TooltipTrigger>Hover (Simple)</TooltipTrigger>
79
+ <TooltipContent variant="simple">
80
+ <Text as="p" variant="body-small">
81
+ <span className="font-semibold">Required</span> for certification
82
+ </Text>
83
+ </TooltipContent>
84
+ </Tooltip>
85
+ </div>
86
+ ),
87
+ };
88
+
89
+ export const Variants: Story = {
90
+ render: () => (
91
+ <div className="p-16 flex gap-16">
92
+ <Tooltip>
93
+ <TooltipTrigger>Default</TooltipTrigger>
94
+ <TooltipContent className="w-[300px]">
95
+ <div className="space-y-2">
94
96
  <Text as="h1" variant="body-base" className="text-white">
95
- Click Tooltip
97
+ Default Variant
98
+ </Text>
99
+ <Text as="p" variant="body-small" className="text-white/90">
100
+ Dark background tooltip.
96
101
  </Text>
97
- <div className="space-y-1">
98
- <Text as="p" variant="body-small" className="text-white/90">
99
- This tooltip opens on click and closes when clicking outside.
100
- </Text>
101
- </div>
102
102
  </div>
103
103
  </TooltipContent>
104
104
  </Tooltip>
105
+ <Tooltip>
106
+ <TooltipTrigger>Simple</TooltipTrigger>
107
+ <TooltipContent variant="simple">
108
+ <Text as="p" variant="body-base">
109
+ Required for certification
110
+ </Text>
111
+ </TooltipContent>
112
+ </Tooltip>
105
113
  </div>
106
114
  ),
107
115
  };