@syscore/ui-library 1.15.3 → 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.
- package/client/components/icons/imperative-badges/BadgeImperativePrimary.tsx +45 -0
- package/client/components/icons/imperative-badges/BadgeImperativeSecondary.tsx +53 -0
- package/client/components/icons/imperative-badges/index.tsx +2 -0
- package/client/components/ui/tooltip.tsx +39 -20
- package/client/global.css +14 -1
- package/client/ui/Icons.stories.tsx +52 -30
- package/client/ui/PageHeader.stories.tsx +82 -0
- package/client/ui/Tooltip.stories.tsx +38 -30
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.es.js +135 -4
- package/package.json +1 -1
|
@@ -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
|
+
};
|
|
@@ -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
|
-
|
|
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(
|
|
211
|
+
className={cn(tooltipContentVariants({ variant }), className)}
|
|
197
212
|
{...props}
|
|
198
213
|
>
|
|
199
|
-
{
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
336
|
-
<SealWorksWithWell className="size-
|
|
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-
|
|
343
|
-
<SealWellCertification className="size-
|
|
344
|
-
<SealWellCommunity className="size-
|
|
345
|
-
<SealWellResidence className="size-
|
|
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-
|
|
352
|
-
<SealCertificationBronze className="size-
|
|
353
|
-
<SealCertificationSilver className="size-
|
|
354
|
-
<SealCertificationGold className="size-
|
|
355
|
-
<SealCertificationPlatinum className="size-
|
|
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-
|
|
362
|
-
<SealRatingHealthSafety className="size-
|
|
363
|
-
<SealRatingOperations className="size-
|
|
364
|
-
<SealRatingPerformance className="size-
|
|
365
|
-
<SealRatingEquity className="size-
|
|
366
|
-
<SealRatingCoworking className="size-
|
|
367
|
-
<SealRatingWorkforce className="size-
|
|
368
|
-
<SealRatingDesign className="size-
|
|
369
|
-
<SealRatingRealEstate className="size-
|
|
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-
|
|
376
|
-
<WaterMarkWWWProducts className="size-
|
|
377
|
-
<WaterMarkWellProjects className="size-
|
|
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
|
|
52
|
+
export const Click: Story = {
|
|
53
53
|
render: () => (
|
|
54
54
|
<div className="p-16">
|
|
55
55
|
<Tooltip trigger="click">
|
|
56
|
-
<TooltipTrigger>
|
|
56
|
+
<TooltipTrigger>Click me</TooltipTrigger>
|
|
57
57
|
<TooltipContent className="w-[400px]">
|
|
58
|
-
<div className="space-y-
|
|
58
|
+
<div className="space-y-3">
|
|
59
59
|
<Text as="h1" variant="body-base" className="text-white">
|
|
60
|
-
|
|
60
|
+
Click Tooltip
|
|
61
61
|
</Text>
|
|
62
|
-
<div className="space-y-
|
|
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
|
-
|
|
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
|
|
74
|
+
export const Simple: Story = {
|
|
88
75
|
render: () => (
|
|
89
76
|
<div className="p-16">
|
|
90
|
-
<Tooltip
|
|
91
|
-
<TooltipTrigger>
|
|
92
|
-
<TooltipContent
|
|
93
|
-
<
|
|
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
|
-
|
|
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
|
};
|