@sofya-ds/react 0.1.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/dist/index.js ADDED
@@ -0,0 +1,4700 @@
1
+ // src/components/avatar.tsx
2
+ import * as React from "react";
3
+ import { cva } from "class-variance-authority";
4
+
5
+ // src/lib/cn.ts
6
+ import { clsx } from "clsx";
7
+ import { twMerge } from "tailwind-merge";
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+
12
+ // src/components/avatar.tsx
13
+ import { jsx } from "react/jsx-runtime";
14
+ var avatarSizeOptions = ["sm", "default", "lg"];
15
+ var avatarVariants = cva(
16
+ "relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-[color:var(--sofya-avatar-background)] font-sans font-normal tracking-normal text-[color:var(--sofya-avatar-foreground)] transition-[background-color,color] duration-sofya ease-sofya",
17
+ {
18
+ variants: {
19
+ size: {
20
+ sm: "h-8 w-8 text-[12px] leading-[normal]",
21
+ default: "h-[38px] w-[38px] text-[14px] leading-[normal]",
22
+ lg: "h-12 w-12 text-[16px] leading-[normal]"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ size: "default"
27
+ }
28
+ }
29
+ );
30
+ function getInitials(name) {
31
+ const trimmedName = name.trim();
32
+ if (!trimmedName) {
33
+ return "";
34
+ }
35
+ const nameParts = trimmedName.split(/\s+/).filter(Boolean);
36
+ const firstPart = nameParts[0];
37
+ if (nameParts.length === 1 && firstPart) {
38
+ const firstTwoCharacters = firstPart.slice(0, 2);
39
+ return firstTwoCharacters.charAt(0).toUpperCase() + firstTwoCharacters.slice(1).toLowerCase();
40
+ }
41
+ const firstLetter = firstPart?.[0] ?? "";
42
+ const lastLetter = nameParts[nameParts.length - 1]?.[0] ?? "";
43
+ return `${firstLetter}${lastLetter}`.toUpperCase();
44
+ }
45
+ var Avatar = React.forwardRef(function Avatar2({
46
+ alt,
47
+ className,
48
+ name,
49
+ size,
50
+ src,
51
+ role,
52
+ style,
53
+ "aria-label": ariaLabel,
54
+ ...props
55
+ }, ref) {
56
+ const [imageUnavailable, setImageUnavailable] = React.useState(false);
57
+ const resolvedInitials = getInitials(name);
58
+ const hasImage = Boolean(src) && !imageUnavailable;
59
+ const accessibleName = ariaLabel?.trim() || alt?.trim() || name.trim() || resolvedInitials || "Avatar";
60
+ React.useEffect(() => {
61
+ setImageUnavailable(false);
62
+ }, [src]);
63
+ return /* @__PURE__ */ jsx(
64
+ "div",
65
+ {
66
+ ref,
67
+ role: role ?? "img",
68
+ "aria-label": accessibleName,
69
+ className: cn(avatarVariants({ size }), className),
70
+ style,
71
+ ...props,
72
+ children: hasImage ? /* @__PURE__ */ jsx(
73
+ "span",
74
+ {
75
+ "aria-hidden": "true",
76
+ className: "flex h-full w-full items-center justify-center",
77
+ children: /* @__PURE__ */ jsx(
78
+ "img",
79
+ {
80
+ src,
81
+ alt: alt ?? accessibleName,
82
+ className: "max-h-full max-w-full object-contain object-center",
83
+ onError: () => setImageUnavailable(true)
84
+ }
85
+ )
86
+ }
87
+ ) : /* @__PURE__ */ jsx(
88
+ "span",
89
+ {
90
+ "aria-hidden": "true",
91
+ className: "block max-w-full overflow-hidden text-ellipsis whitespace-nowrap",
92
+ children: resolvedInitials || "?"
93
+ }
94
+ )
95
+ }
96
+ );
97
+ });
98
+ Avatar.displayName = "Avatar";
99
+
100
+ // src/components/accordion.tsx
101
+ import * as React4 from "react";
102
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
103
+
104
+ // src/components/icon.tsx
105
+ import * as React2 from "react";
106
+
107
+ // src/components/icon-data.ts
108
+ var rawIconRegistry = {
109
+ "files": { viewBox: "0 0 13.75 16.25", d: "M13.5672 3.30781L10.4422 0.182813C10.3841 0.124791 10.3152 0.0787825 10.2393 0.0474149C10.1634 0.0160474 10.0821 -6.43662e-05 10 1.93249e-07H3.75C3.41848 1.93249e-07 3.10054 0.131696 2.86612 0.366117C2.6317 0.600537 2.5 0.91848 2.5 1.25V2.5H1.25C0.918479 2.5 0.600537 2.6317 0.366116 2.86612C0.131696 3.10054 0 3.41848 0 3.75V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H10C10.3315 16.25 10.6495 16.1183 10.8839 15.8839C11.1183 15.6495 11.25 15.3315 11.25 15V13.75H12.5C12.8315 13.75 13.1495 13.6183 13.3839 13.3839C13.6183 13.1495 13.75 12.8315 13.75 12.5V3.75C13.7501 3.6679 13.734 3.58659 13.7026 3.51072C13.6712 3.43485 13.6252 3.3659 13.5672 3.30781ZM10 15H1.25V3.75H7.24141L10 6.50859V13.1125C10 13.1172 10 13.1211 10 13.125C10 13.1289 10 13.1328 10 13.1375V15ZM12.5 12.5H11.25V6.25C11.2501 6.1679 11.234 6.08659 11.2026 6.01072C11.1712 5.93485 11.1252 5.8659 11.0672 5.80781L7.94219 2.68281C7.8841 2.62479 7.81515 2.57878 7.73928 2.54741C7.66341 2.51605 7.5821 2.49994 7.5 2.5H3.75V1.25H9.74141L12.5 4.00859V12.5ZM8.125 10C8.125 10.1658 8.05915 10.3247 7.94194 10.4419C7.82473 10.5592 7.66576 10.625 7.5 10.625H3.75C3.58424 10.625 3.42527 10.5592 3.30806 10.4419C3.19085 10.3247 3.125 10.1658 3.125 10C3.125 9.83424 3.19085 9.67527 3.30806 9.55806C3.42527 9.44085 3.58424 9.375 3.75 9.375H7.5C7.66576 9.375 7.82473 9.44085 7.94194 9.55806C8.05915 9.67527 8.125 9.83424 8.125 10ZM8.125 12.5C8.125 12.6658 8.05915 12.8247 7.94194 12.9419C7.82473 13.0592 7.66576 13.125 7.5 13.125H3.75C3.58424 13.125 3.42527 13.0592 3.30806 12.9419C3.19085 12.8247 3.125 12.6658 3.125 12.5C3.125 12.3342 3.19085 12.1753 3.30806 12.0581C3.42527 11.9408 3.58424 11.875 3.75 11.875H7.5C7.66576 11.875 7.82473 11.9408 7.94194 12.0581C8.05915 12.1753 8.125 12.3342 8.125 12.5Z" },
110
+ "books": { viewBox: "0 0 14.9996 15.6243", d: "M14.9727 13.3236L12.3797 0.995429C12.3462 0.834212 12.2811 0.681209 12.1882 0.545211C12.0954 0.409213 11.9766 0.2929 11.8387 0.202954C11.7007 0.113007 11.5464 0.0512006 11.3845 0.0210839C11.2226 -0.00903273 11.0564 -0.00686564 10.8953 0.0274607L7.23828 0.813398C6.9148 0.884226 6.63238 1.07991 6.45242 1.35789C6.27247 1.63586 6.20955 1.97365 6.27734 2.29777L8.87031 14.6259C8.9281 14.9072 9.08096 15.16 9.30319 15.3418C9.52543 15.5236 9.80349 15.6234 10.0906 15.6243C10.1794 15.6242 10.2679 15.6148 10.3547 15.5962L14.0117 14.8103C14.3356 14.7393 14.6183 14.5432 14.7983 14.2648C14.9783 13.9863 15.0409 13.648 14.9727 13.3236ZM7.5 2.0423C7.5 2.03762 7.5 2.03527 7.5 2.03527L11.1563 1.25402L11.4164 2.49387L7.76016 3.28059L7.5 2.0423ZM8.01719 4.5009L11.675 3.71574L11.9359 4.95793L8.28125 5.74387L8.01719 4.5009ZM8.53594 6.9673L12.1938 6.18137L13.2328 11.122L9.575 11.9079L8.53594 6.9673ZM13.75 13.5884L10.0937 14.3696L9.83359 13.1298L13.4898 12.3431L13.75 13.5814C13.75 13.5861 13.75 13.5884 13.75 13.5884ZM5 0.624336H1.25C0.918479 0.624336 0.600537 0.756032 0.366116 0.990452C0.131696 1.22487 0 1.54282 0 1.87434V14.3743C0 14.7059 0.131696 15.0238 0.366116 15.2582C0.600537 15.4926 0.918479 15.6243 1.25 15.6243H5C5.33152 15.6243 5.64946 15.4926 5.88388 15.2582C6.1183 15.0238 6.25 14.7059 6.25 14.3743V1.87434C6.25 1.54282 6.1183 1.22487 5.88388 0.990452C5.64946 0.756032 5.33152 0.624336 5 0.624336ZM1.25 1.87434H5V3.12434H1.25V1.87434ZM1.25 4.37434H5V11.8743H1.25V4.37434ZM5 14.3743H1.25V13.1243H5V14.3743Z" },
111
+ "file-magnifying-glass": { viewBox: "0 0 13.75 16.25", d: "M13.5672 4.55781L9.19219 0.182813C9.1341 0.124791 9.06515 0.0787825 8.98928 0.0474149C8.91341 0.0160474 8.8321 -6.43662e-05 8.75 1.93249e-07H1.25C0.918479 1.93249e-07 0.600537 0.131696 0.366116 0.366117C0.131696 0.600537 0 0.91848 0 1.25V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H12.5C12.8315 16.25 13.1495 16.1183 13.3839 15.8839C13.6183 15.6495 13.75 15.3315 13.75 15V5C13.7501 4.9179 13.734 4.83659 13.7026 4.76072C13.6712 4.68485 13.6252 4.6159 13.5672 4.55781ZM9.375 2.13359L11.6164 4.375H9.375V2.13359ZM12.5 15H1.25V1.25H8.125V5C8.125 5.16576 8.19085 5.32473 8.30806 5.44194C8.42527 5.55915 8.58424 5.625 8.75 5.625H12.5V15ZM8.94219 11.1836C9.31104 10.5975 9.45102 9.896 9.33537 9.2132C9.21973 8.5304 8.85657 7.91414 8.31528 7.48217C7.77399 7.0502 7.09253 6.8328 6.40109 6.87151C5.70964 6.91022 5.0567 7.20232 4.56701 7.69201C4.07732 8.1817 3.78522 8.83464 3.74651 9.52609C3.7078 10.2175 3.9252 10.899 4.35717 11.4403C4.78914 11.9816 5.4054 12.3447 6.0882 12.4604C6.771 12.576 7.47247 12.436 8.05859 12.0672L8.93281 12.9422C8.99088 13.0003 9.05982 13.0463 9.13569 13.0777C9.21156 13.1092 9.29288 13.1253 9.375 13.1253C9.45712 13.1253 9.53844 13.1092 9.61431 13.0777C9.69018 13.0463 9.75912 13.0003 9.81719 12.9422C9.87526 12.8841 9.92132 12.8152 9.95275 12.7393C9.98417 12.6634 10.0003 12.5821 10.0003 12.5C10.0003 12.4179 9.98417 12.3366 9.95275 12.2607C9.92132 12.1848 9.87526 12.1159 9.81719 12.0578L8.94219 11.1836ZM5 9.6875C5 9.37847 5.09164 9.07637 5.26333 8.81942C5.43502 8.56247 5.67905 8.3622 5.96456 8.24394C6.25007 8.12568 6.56423 8.09473 6.86733 8.15502C7.17042 8.21531 7.44883 8.36413 7.66735 8.58265C7.88587 8.80117 8.03469 9.07958 8.09498 9.38267C8.15527 9.68577 8.12432 9.99993 8.00606 10.2854C7.8878 10.571 7.68753 10.815 7.43058 10.9867C7.17363 11.1584 6.87153 11.25 6.5625 11.25C6.1481 11.25 5.75067 11.0854 5.45765 10.7924C5.16462 10.4993 5 10.1019 5 9.6875Z" },
112
+ "minus": { viewBox: "0 0 15 1.25", d: "M15 0.625C15 0.79076 14.9342 0.949732 14.8169 1.06694C14.6997 1.18415 14.5408 1.25 14.375 1.25H0.625C0.45924 1.25 0.300269 1.18415 0.183058 1.06694C0.0658481 0.949732 0 0.79076 0 0.625C0 0.45924 0.0658481 0.300269 0.183058 0.183058C0.300269 0.0658481 0.45924 0 0.625 0H14.375C14.5408 0 14.6997 0.0658481 14.8169 0.183058C14.9342 0.300269 15 0.45924 15 0.625Z" },
113
+ "plus": { viewBox: "0 0 15 15", d: "M15 7.5C15 7.66576 14.9342 7.82473 14.8169 7.94194C14.6997 8.05915 14.5408 8.125 14.375 8.125H8.125V14.375C8.125 14.5408 8.05915 14.6997 7.94194 14.8169C7.82473 14.9342 7.66576 15 7.5 15C7.33424 15 7.17527 14.9342 7.05806 14.8169C6.94085 14.6997 6.875 14.5408 6.875 14.375V8.125H0.625C0.45924 8.125 0.300269 8.05915 0.183058 7.94194C0.0658481 7.82473 0 7.66576 0 7.5C0 7.33424 0.0658481 7.17527 0.183058 7.05806C0.300269 6.94085 0.45924 6.875 0.625 6.875H6.875V0.625C6.875 0.45924 6.94085 0.300269 7.05806 0.183058C7.17527 0.0658481 7.33424 0 7.5 0C7.66576 0 7.82473 0.0658481 7.94194 0.183058C8.05915 0.300269 8.125 0.45924 8.125 0.625V6.875H14.375C14.5408 6.875 14.6997 6.94085 14.8169 7.05806C14.9342 7.17527 15 7.33424 15 7.5Z" },
114
+ "arrows-in-simple": { viewBox: "0 0 13.7507 13.7507", d: "M13.5675 1.06753L9.63394 5.00035H11.8753C12.0411 5.00035 12.2001 5.0662 12.3173 5.18341C12.4345 5.30062 12.5003 5.45959 12.5003 5.62535C12.5003 5.79111 12.4345 5.95008 12.3173 6.06729C12.2001 6.1845 12.0411 6.25035 11.8753 6.25035H8.12535C7.95959 6.25035 7.80062 6.1845 7.68341 6.06729C7.5662 5.95008 7.50035 5.79111 7.50035 5.62535V1.87535C7.50035 1.70959 7.5662 1.55062 7.68341 1.43341C7.80062 1.3162 7.95959 1.25035 8.12535 1.25035C8.29111 1.25035 8.45008 1.3162 8.56729 1.43341C8.6845 1.55062 8.75035 1.70959 8.75035 1.87535V4.11675L12.6832 0.18316C12.8004 0.0658846 12.9595 -3.26935e-09 13.1253 0C13.2912 3.26935e-09 13.4503 0.0658846 13.5675 0.18316C13.6848 0.300435 13.7507 0.459495 13.7507 0.625347C13.7507 0.7912 13.6848 0.95026 13.5675 1.06753ZM5.62535 7.50035H1.87535C1.70959 7.50035 1.55062 7.5662 1.43341 7.68341C1.3162 7.80062 1.25035 7.95959 1.25035 8.12535C1.25035 8.29111 1.3162 8.45008 1.43341 8.56729C1.55062 8.6845 1.70959 8.75035 1.87535 8.75035H4.11675L0.18316 12.6832C0.0658846 12.8004 -3.26935e-09 12.9595 0 13.1253C3.26935e-09 13.2912 0.0658846 13.4503 0.18316 13.5675C0.300435 13.6848 0.459495 13.7507 0.625347 13.7507C0.7912 13.7507 0.95026 13.6848 1.06753 13.5675L5.00035 9.63394V11.8753C5.00035 12.0411 5.0662 12.2001 5.18341 12.3173C5.30062 12.4345 5.45959 12.5003 5.62535 12.5003C5.79111 12.5003 5.95008 12.4345 6.06729 12.3173C6.1845 12.2001 6.25035 12.0411 6.25035 11.8753V8.12535C6.25035 7.95959 6.1845 7.80062 6.06729 7.68341C5.95008 7.5662 5.79111 7.50035 5.62535 7.50035Z" },
115
+ "check": { viewBox: "0 0 15.6257 11.2508", d: "M15.4425 1.06754L5.44254 11.0675C5.38449 11.1256 5.31556 11.1717 5.23969 11.2032C5.16381 11.2347 5.08248 11.2508 5.00035 11.2508C4.91821 11.2508 4.83688 11.2347 4.76101 11.2032C4.68514 11.1717 4.61621 11.1256 4.55816 11.0675L0.18316 6.69254C0.0658846 6.57526 0 6.4162 0 6.25035C0 6.0845 0.0658846 5.92544 0.18316 5.80816C0.300435 5.69088 0.459495 5.625 0.625347 5.625C0.7912 5.625 0.95026 5.69088 1.06753 5.80816L5.00035 9.74175L14.5582 0.18316C14.6754 0.0658843 14.8345 -1.2357e-09 15.0003 0C15.1662 1.2357e-09 15.3253 0.0658843 15.4425 0.18316C15.5598 0.300435 15.6257 0.459495 15.6257 0.625347C15.6257 0.7912 15.5598 0.95026 15.4425 1.06754Z" },
116
+ "caret-down": { viewBox: "0 0 13.7507 7.50084", d: "M13.5675 1.06754L7.31754 7.31754C7.25949 7.37565 7.19056 7.42175 7.11469 7.4532C7.03881 7.48465 6.95748 7.50084 6.87535 7.50084C6.79321 7.50084 6.71188 7.48465 6.63601 7.4532C6.56014 7.42175 6.49121 7.37565 6.43316 7.31754L0.18316 1.06754C0.0658846 0.95026 0 0.7912 0 0.625347C0 0.459495 0.0658846 0.300435 0.18316 0.18316C0.300435 0.0658843 0.459495 0 0.625347 0C0.7912 0 0.95026 0.0658843 1.06753 0.18316L6.87535 5.99175L12.6832 0.18316C12.7412 0.125091 12.8102 0.0790281 12.886 0.0476015C12.9619 0.0161748 13.0432 0 13.1253 0C13.2075 0 13.2888 0.0161748 13.3647 0.0476015C13.4405 0.0790281 13.5095 0.125091 13.5675 0.18316C13.6256 0.241229 13.6717 0.310167 13.7031 0.386037C13.7345 0.461908 13.7507 0.543226 13.7507 0.625347C13.7507 0.707469 13.7345 0.788787 13.7031 0.864658C13.6717 0.940528 13.6256 1.00947 13.5675 1.06754Z" },
117
+ "lightbulb": { viewBox: "0 0 13.7501 17.502", d: "M10.6251 16.877C10.6251 17.0428 10.5593 17.2017 10.442 17.3189C10.3248 17.4361 10.1659 17.502 10.0001 17.502H3.7501C3.58434 17.502 3.42537 17.4361 3.30816 17.3189C3.19095 17.2017 3.1251 17.0428 3.1251 16.877C3.1251 16.7112 3.19095 16.5523 3.30816 16.4351C3.42537 16.3178 3.58434 16.252 3.7501 16.252H10.0001C10.1659 16.252 10.3248 16.3178 10.442 16.4351C10.5593 16.5523 10.6251 16.7112 10.6251 16.877ZM13.7501 6.877C13.7528 7.9189 13.5174 8.94766 13.0619 9.88474C12.6065 10.8218 11.9429 11.6425 11.122 12.284C10.9685 12.4017 10.8439 12.5529 10.7578 12.7261C10.6717 12.8993 10.6263 13.0898 10.6251 13.2832V13.752C10.6251 14.0835 10.4934 14.4015 10.259 14.6359C10.0246 14.8703 9.70662 15.002 9.3751 15.002H4.3751C4.04358 15.002 3.72564 14.8703 3.49122 14.6359C3.2568 14.4015 3.1251 14.0835 3.1251 13.752V13.2832C3.12497 13.0921 3.08103 12.9036 2.99666 12.7322C2.91228 12.5607 2.78972 12.4109 2.63838 12.2942C1.81948 11.6564 1.15639 10.8407 0.699304 9.9088C0.24222 8.9769 0.00312013 7.95323 0.000102226 6.91528C-0.0202103 3.19184 2.98916 0.091058 6.70948 0.00199546C7.62616 -0.0200946 8.53799 0.141412 9.39132 0.477009C10.2446 0.812607 11.0222 1.31551 11.6783 1.95613C12.3343 2.59674 12.8556 3.36213 13.2114 4.20722C13.5672 5.05232 13.7504 5.96005 13.7501 6.877ZM12.5001 6.877C12.5003 6.12673 12.3504 5.384 12.0593 4.69253C11.7682 4.00106 11.3416 3.37482 10.8048 2.85068C10.268 2.32653 9.63175 1.91507 8.93353 1.64052C8.2353 1.36596 7.48921 1.23386 6.73917 1.252C3.69229 1.32387 1.2337 3.86059 1.2501 6.90746C1.25296 7.75636 1.44885 8.59349 1.82296 9.35551C2.19706 10.1175 2.73959 10.7845 3.40948 11.3059C3.7106 11.54 3.95418 11.8399 4.12155 12.1826C4.28892 12.5253 4.37565 12.9018 4.3751 13.2832V13.752H9.3751V13.2832C9.37597 12.9007 9.46419 12.5235 9.63302 12.1803C9.80186 11.837 10.0469 11.5369 10.3493 11.3028C11.0213 10.7776 11.5644 10.1059 11.9371 9.33889C12.3099 8.57186 12.5024 7.7298 12.5001 6.877ZM11.2415 6.14731C11.0794 5.24207 10.6439 4.40822 9.99357 3.75801C9.34323 3.1078 8.50928 2.67246 7.60401 2.51059C7.52306 2.49694 7.44022 2.49938 7.36021 2.51775C7.2802 2.53612 7.2046 2.57007 7.13771 2.61766C7.07082 2.66525 7.01396 2.72555 6.97038 2.79511C6.9268 2.86467 6.89734 2.94214 6.8837 3.02309C6.87005 3.10404 6.87248 3.18688 6.89085 3.26689C6.90922 3.34689 6.94317 3.4225 6.99076 3.48939C7.03835 3.55628 7.09865 3.61313 7.16822 3.65672C7.23778 3.7003 7.31525 3.72976 7.3962 3.7434C8.69073 3.96137 9.78917 5.05981 10.0087 6.35668C10.0334 6.50225 10.1089 6.63436 10.2217 6.72959C10.3345 6.82483 10.4775 6.87705 10.6251 6.877C10.6604 6.87678 10.6957 6.87391 10.7306 6.8684C10.8939 6.84051 11.0395 6.74888 11.1354 6.61365C11.2312 6.47843 11.2694 6.31068 11.2415 6.14731Z" },
118
+ "chats": { viewBox: "0 0 16.25 15.625", d: "M15 3.75H12.5V1.25C12.5 0.918479 12.3683 0.600537 12.1339 0.366116C11.8995 0.131696 11.5815 0 11.25 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V11.25C0.000366963 11.3676 0.0338962 11.4827 0.096736 11.5821C0.159576 11.6814 0.249177 11.7611 0.355245 11.8118C0.461314 11.8626 0.579547 11.8824 0.696363 11.869C0.813178 11.8555 0.923836 11.8094 1.01562 11.7359L3.75 9.53125V11.875C3.75 12.2065 3.8817 12.5245 4.11612 12.7589C4.35054 12.9933 4.66848 13.125 5 13.125H12.3117L15.2344 15.4859C15.345 15.5754 15.4828 15.6244 15.625 15.625C15.7908 15.625 15.9497 15.5592 16.0669 15.4419C16.1842 15.3247 16.25 15.1658 16.25 15V5C16.25 4.66848 16.1183 4.35054 15.8839 4.11612C15.6495 3.8817 15.3315 3.75 15 3.75ZM3.32422 8.26406L1.25 9.94141V1.25H11.25V8.125H3.71719C3.57414 8.12502 3.43544 8.1741 3.32422 8.26406ZM15 13.6914L12.9258 12.0141C12.8152 11.9246 12.6774 11.8756 12.5352 11.875H5V9.375H11.25C11.5815 9.375 11.8995 9.2433 12.1339 9.00888C12.3683 8.77446 12.5 8.45652 12.5 8.125V5H15V13.6914Z" },
119
+ "file": { viewBox: "0 0 13.75 16.25", d: "M13.5672 4.55781L9.19219 0.182813C9.1341 0.124791 9.06515 0.0787825 8.98928 0.0474149C8.91341 0.0160474 8.8321 -6.43662e-05 8.75 1.93249e-07H1.25C0.918479 1.93249e-07 0.600537 0.131696 0.366116 0.366117C0.131696 0.600537 0 0.91848 0 1.25V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H12.5C12.8315 16.25 13.1495 16.1183 13.3839 15.8839C13.6183 15.6495 13.75 15.3315 13.75 15V5C13.7501 4.9179 13.734 4.83659 13.7026 4.76072C13.6712 4.68485 13.6252 4.6159 13.5672 4.55781ZM9.375 2.13359L11.6164 4.375H9.375V2.13359ZM12.5 15H1.25V1.25H8.125V5C8.125 5.16576 8.19085 5.32473 8.30806 5.44194C8.42527 5.55915 8.58424 5.625 8.75 5.625H12.5V15Z" },
120
+ "folders": { viewBox: "0 0 16.875 13.75", d: "M15.625 1.875H10.2086L8.04141 0.25C7.82472 0.0883244 7.56176 0.000670577 7.29141 0H3.75C3.41848 0 3.10054 0.131696 2.86612 0.366116C2.6317 0.600537 2.5 0.918479 2.5 1.25V2.5H1.25C0.918479 2.5 0.600537 2.6317 0.366116 2.86612C0.131696 3.10054 0 3.41848 0 3.75V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H13.1945C13.5075 13.7496 13.8075 13.6251 14.0288 13.4038C14.2501 13.1825 14.3746 12.8825 14.375 12.5695V11.25H15.6945C16.0075 11.2496 16.3075 11.1251 16.5288 10.9038C16.7501 10.6825 16.8746 10.3825 16.875 10.0695V3.125C16.875 2.79348 16.7433 2.47554 16.5089 2.24112C16.2745 2.0067 15.9565 1.875 15.625 1.875ZM13.125 12.5H1.25V3.75H4.79141L7.125 5.5C7.23318 5.58114 7.36477 5.625 7.5 5.625H13.125V12.5ZM15.625 10H14.375V5.625C14.375 5.29348 14.2433 4.97554 14.0089 4.74112C13.7745 4.5067 13.4565 4.375 13.125 4.375H7.70859L5.54141 2.75C5.32472 2.58832 5.06176 2.50067 4.79141 2.5H3.75V1.25H7.29141L9.625 3C9.73318 3.08114 9.86477 3.125 10 3.125H15.625V10Z" },
121
+ "sparkle": { viewBox: "0 0 18.1282 18.1282", d: "M14.1891 9.45781L10.1594 7.96875L8.67505 3.93594C8.58715 3.69713 8.42811 3.49104 8.2194 3.34546C8.01068 3.19988 7.76233 3.12182 7.50786 3.12182C7.25339 3.12182 7.00505 3.19988 6.79633 3.34546C6.58762 3.49104 6.42858 3.69713 6.34068 3.93594L4.84693 7.96875L0.814114 9.45312C0.575308 9.54103 0.369212 9.70007 0.223634 9.90878C0.0780551 10.1175 0 10.3658 0 10.6203C0 10.8748 0.0780551 11.1231 0.223634 11.3318C0.369212 11.5406 0.575308 11.6996 0.814114 11.7875L4.84693 13.2812L6.3313 17.3141C6.4192 17.5529 6.57824 17.759 6.78696 17.9045C6.99567 18.0501 7.24402 18.1282 7.49849 18.1282C7.75296 18.1282 8.00131 18.0501 8.21002 17.9045C8.41873 17.759 8.57777 17.5529 8.66568 17.3141L10.1594 13.2812L14.1922 11.7969C14.431 11.709 14.6371 11.5499 14.7827 11.3412C14.9283 11.1325 15.0064 10.8842 15.0064 10.6297C15.0064 10.3752 14.9283 10.1269 14.7827 9.91816C14.6371 9.70944 14.431 9.5504 14.1922 9.4625L14.1891 9.45781ZM9.4563 12.2047C9.37146 12.236 9.29442 12.2853 9.23049 12.3492C9.16655 12.4131 9.11725 12.4902 9.08599 12.575L7.50318 16.8633L5.92349 12.5781C5.89227 12.4924 5.84267 12.4145 5.77815 12.35C5.71364 12.2855 5.63578 12.2359 5.55005 12.2047L1.26489 10.625L5.55005 9.04531C5.63578 9.0141 5.71364 8.96449 5.77815 8.89997C5.84267 8.83546 5.89227 8.75761 5.92349 8.67188L7.50318 4.38672L9.08286 8.67188C9.11413 8.75671 9.16343 8.83375 9.22736 8.89769C9.2913 8.96162 9.36834 9.01092 9.45318 9.04219L13.7415 10.625L9.4563 12.2047ZM10.0032 2.5C10.0032 2.33424 10.069 2.17527 10.1862 2.05806C10.3034 1.94085 10.4624 1.875 10.6282 1.875H11.8782V0.625C11.8782 0.45924 11.944 0.300268 12.0612 0.183058C12.1784 0.065848 12.3374 0 12.5032 0C12.6689 0 12.8279 0.065848 12.9451 0.183058C13.0623 0.300268 13.1282 0.45924 13.1282 0.625V1.875H14.3782C14.5439 1.875 14.7029 1.94085 14.8201 2.05806C14.9373 2.17527 15.0032 2.33424 15.0032 2.5C15.0032 2.66576 14.9373 2.82473 14.8201 2.94194C14.7029 3.05915 14.5439 3.125 14.3782 3.125H13.1282V4.375C13.1282 4.54076 13.0623 4.69973 12.9451 4.81694C12.8279 4.93415 12.6689 5 12.5032 5C12.3374 5 12.1784 4.93415 12.0612 4.81694C11.944 4.69973 11.8782 4.54076 11.8782 4.375V3.125H10.6282C10.4624 3.125 10.3034 3.05915 10.1862 2.94194C10.069 2.82473 10.0032 2.66576 10.0032 2.5ZM18.1282 6.25C18.1282 6.41576 18.0623 6.57473 17.9451 6.69194C17.8279 6.80915 17.6689 6.875 17.5032 6.875H16.8782V7.5C16.8782 7.66576 16.8123 7.82473 16.6951 7.94194C16.5779 8.05915 16.4189 8.125 16.2532 8.125C16.0874 8.125 15.9284 8.05915 15.8112 7.94194C15.694 7.82473 15.6282 7.66576 15.6282 7.5V6.875H15.0032C14.8374 6.875 14.6784 6.80915 14.5612 6.69194C14.444 6.57473 14.3782 6.41576 14.3782 6.25C14.3782 6.08424 14.444 5.92527 14.5612 5.80806C14.6784 5.69085 14.8374 5.625 15.0032 5.625H15.6282V5C15.6282 4.83424 15.694 4.67527 15.8112 4.55806C15.9284 4.44085 16.0874 4.375 16.2532 4.375C16.4189 4.375 16.5779 4.44085 16.6951 4.55806C16.8123 4.67527 16.8782 4.83424 16.8782 5V5.625H17.5032C17.6689 5.625 17.8279 5.69085 17.9451 5.80806C18.0623 5.92527 18.1282 6.08424 18.1282 6.25Z" },
122
+ "microphone-stage": { viewBox: "0 0 16.8751 16.8751", d: "M11.2501 0C9.75868 0.00144786 8.32878 0.594545 7.2742 1.64912C6.21963 2.7037 5.62653 4.1336 5.62508 5.625C5.62565 5.87111 5.64209 6.11694 5.6743 6.36094L0.243831 13.7672C0.0660853 14.0076 -0.0191805 14.3039 0.00362903 14.602C0.0264385 14.9001 0.155799 15.1801 0.36805 15.3906L1.48446 16.507C1.69501 16.7193 1.97494 16.8486 2.27304 16.8715C2.57114 16.8943 2.8675 16.809 3.10789 16.6312L10.5149 11.1992C10.7586 11.2319 11.0042 11.2489 11.2501 11.25C12.7419 11.25 14.1727 10.6574 15.2276 9.60247C16.2824 8.54758 16.8751 7.11684 16.8751 5.625C16.8751 4.13316 16.2824 2.70242 15.2276 1.64752C14.1727 0.592632 12.7419 0 11.2501 0ZM15.6251 5.625C15.6262 6.56938 15.3202 7.48852 14.7532 8.24375L8.63211 2.12187C9.28234 1.63624 10.0548 1.34104 10.8632 1.26928C11.6716 1.19751 12.484 1.35201 13.2096 1.7155C13.9352 2.079 14.5454 2.63715 14.972 3.32757C15.3986 4.01798 15.6247 4.81344 15.6251 5.625ZM2.36883 15.625L1.25008 14.5062L6.10477 7.89062C6.67363 9.1749 7.70018 10.2014 8.98446 10.7703L2.36883 15.625ZM6.87508 5.625C6.87384 4.68084 7.17987 3.76192 7.74696 3.00703L13.8673 9.12734C13.2171 9.61271 12.4448 9.90772 11.6366 9.97939C10.8284 10.0511 10.0162 9.89659 9.29072 9.53322C8.56528 9.16985 7.95517 8.6119 7.52858 7.92173C7.10199 7.23156 6.87573 6.43636 6.87508 5.625ZM6.69149 10.1828C6.80861 10.3 6.8744 10.4589 6.8744 10.6246C6.8744 10.7903 6.80861 10.9492 6.69149 11.0664L6.06649 11.6914C6.00903 11.7519 5.94004 11.8003 5.8636 11.8336C5.78715 11.867 5.70479 11.8848 5.62138 11.8859C5.53796 11.8869 5.45518 11.8713 5.3779 11.8399C5.30062 11.8084 5.23042 11.7619 5.17143 11.7029C5.11245 11.6439 5.06586 11.5737 5.03443 11.4964C5.003 11.4191 4.98736 11.3363 4.98843 11.2529C4.98949 11.1695 5.00725 11.0871 5.04065 11.0107C5.07405 10.9343 5.12241 10.8653 5.18289 10.8078L5.80789 10.1828C5.8659 10.1245 5.93484 10.0783 6.01076 10.0467C6.08668 10.0151 6.16808 9.9988 6.25031 9.99872C6.33254 9.99865 6.41397 10.0148 6.48995 10.0463C6.56592 10.0777 6.63494 10.1239 6.69305 10.182L6.69149 10.1828Z" },
123
+ "battery-low": { viewBox: "0 0 19.375 11.25", d: "M15 0H1.875C1.37772 0 0.900805 0.197544 0.549175 0.549175C0.197544 0.900806 0 1.37772 0 1.875V9.375C0 9.87228 0.197544 10.3492 0.549175 10.7008C0.900805 11.0525 1.37772 11.25 1.875 11.25H15C15.4973 11.25 15.9742 11.0525 16.3258 10.7008C16.6775 10.3492 16.875 9.87228 16.875 9.375V1.875C16.875 1.37772 16.6775 0.900806 16.3258 0.549175C15.9742 0.197544 15.4973 0 15 0ZM15.625 9.375C15.625 9.54076 15.5592 9.69973 15.4419 9.81694C15.3247 9.93415 15.1658 10 15 10H1.875C1.70924 10 1.55027 9.93415 1.43306 9.81694C1.31585 9.69973 1.25 9.54076 1.25 9.375V1.875C1.25 1.70924 1.31585 1.55027 1.43306 1.43306C1.55027 1.31585 1.70924 1.25 1.875 1.25H15C15.1658 1.25 15.3247 1.31585 15.4419 1.43306C15.5592 1.55027 15.625 1.70924 15.625 1.875V9.375ZM4.375 3.125V8.125C4.375 8.29076 4.30915 8.44973 4.19194 8.56694C4.07473 8.68415 3.91576 8.75 3.75 8.75C3.58424 8.75 3.42527 8.68415 3.30806 8.56694C3.19085 8.44973 3.125 8.29076 3.125 8.125V3.125C3.125 2.95924 3.19085 2.80027 3.30806 2.68306C3.42527 2.56585 3.58424 2.5 3.75 2.5C3.91576 2.5 4.07473 2.56585 4.19194 2.68306C4.30915 2.80027 4.375 2.95924 4.375 3.125ZM19.375 3.125V8.125C19.375 8.29076 19.3092 8.44973 19.1919 8.56694C19.0747 8.68415 18.9158 8.75 18.75 8.75C18.5842 8.75 18.4253 8.68415 18.3081 8.56694C18.1908 8.44973 18.125 8.29076 18.125 8.125V3.125C18.125 2.95924 18.1908 2.80027 18.3081 2.68306C18.4253 2.56585 18.5842 2.5 18.75 2.5C18.9158 2.5 19.0747 2.56585 19.1919 2.68306C19.3092 2.80027 19.375 2.95924 19.375 3.125Z" },
124
+ "microphone": { viewBox: "0 0 12.5 18.125", d: "M6.25 12.5C7.24424 12.499 8.19747 12.1035 8.90051 11.4005C9.60355 10.6975 9.99897 9.74424 10 8.75V3.75C10 2.75544 9.60491 1.80161 8.90165 1.09835C8.19839 0.395088 7.24456 0 6.25 0C5.25544 0 4.30161 0.395088 3.59835 1.09835C2.89509 1.80161 2.5 2.75544 2.5 3.75V8.75C2.50103 9.74424 2.89645 10.6975 3.59949 11.4005C4.30253 12.1035 5.25576 12.499 6.25 12.5ZM3.75 3.75C3.75 3.08696 4.01339 2.45107 4.48223 1.98223C4.95107 1.51339 5.58696 1.25 6.25 1.25C6.91304 1.25 7.54893 1.51339 8.01777 1.98223C8.48661 2.45107 8.75 3.08696 8.75 3.75V8.75C8.75 9.41304 8.48661 10.0489 8.01777 10.5178C7.54893 10.9866 6.91304 11.25 6.25 11.25C5.58696 11.25 4.95107 10.9866 4.48223 10.5178C4.01339 10.0489 3.75 9.41304 3.75 8.75V3.75ZM6.875 14.9688V17.5C6.875 17.6658 6.80915 17.8247 6.69194 17.9419C6.57473 18.0592 6.41576 18.125 6.25 18.125C6.08424 18.125 5.92527 18.0592 5.80806 17.9419C5.69085 17.8247 5.625 17.6658 5.625 17.5V14.9688C4.08409 14.812 2.65607 14.0893 1.61707 12.9407C0.578064 11.792 0.00190321 10.2989 0 8.75C0 8.58424 0.0658481 8.42527 0.183058 8.30806C0.300269 8.19085 0.45924 8.125 0.625 8.125C0.79076 8.125 0.949731 8.19085 1.06694 8.30806C1.18415 8.42527 1.25 8.58424 1.25 8.75C1.25 10.0761 1.77678 11.3479 2.71447 12.2855C3.65215 13.2232 4.92392 13.75 6.25 13.75C7.57608 13.75 8.84785 13.2232 9.78553 12.2855C10.7232 11.3479 11.25 10.0761 11.25 8.75C11.25 8.58424 11.3158 8.42527 11.4331 8.30806C11.5503 8.19085 11.7092 8.125 11.875 8.125C12.0408 8.125 12.1997 8.19085 12.3169 8.30806C12.4342 8.42527 12.5 8.58424 12.5 8.75C12.4981 10.2989 11.9219 11.792 10.8829 12.9407C9.84393 14.0893 8.41591 14.812 6.875 14.9688Z" },
125
+ "microphone-slash": { viewBox: "0 0 13.75 18.1208", d: "M13.5825 15.8255L1.08246 2.07553C0.970401 1.95516 0.81541 1.8838 0.651091 1.87693C0.486772 1.87007 0.326369 1.92825 0.204658 2.03886C0.082947 2.14947 0.00973829 2.30359 0.000903313 2.46781C-0.00793166 2.63204 0.0483195 2.79313 0.157461 2.91616L3.11996 6.17475V8.74584C3.11981 9.3825 3.28176 10.0087 3.59054 10.5655C3.89932 11.1222 4.34476 11.5912 4.88491 11.9282C5.42505 12.2653 6.0421 12.4592 6.67792 12.4918C7.31374 12.5244 7.9474 12.3946 8.51918 12.1146L9.38637 13.0677C8.62312 13.5143 7.75425 13.7484 6.86996 13.7458C5.54432 13.7444 4.27339 13.2171 3.33603 12.2798C2.39866 11.3424 1.87141 10.0715 1.86996 8.74584C1.86996 8.58008 1.80411 8.42111 1.6869 8.3039C1.56969 8.18669 1.41072 8.12084 1.24496 8.12084C1.0792 8.12084 0.92023 8.18669 0.803019 8.3039C0.685809 8.42111 0.619961 8.58008 0.619961 8.74584C0.621864 10.2947 1.19802 11.7878 2.23703 12.9365C3.27603 14.0852 4.70406 14.8078 6.24496 14.9646V17.4958C6.24496 17.6616 6.31081 17.8206 6.42802 17.9378C6.54523 18.055 6.7042 18.1208 6.86996 18.1208C7.03572 18.1208 7.19469 18.055 7.3119 17.9378C7.42911 17.8206 7.49496 17.6616 7.49496 17.4958V14.9638C8.47367 14.8694 9.41555 14.5421 10.2418 14.0091L12.6575 16.6654C12.7123 16.7272 12.779 16.7776 12.8535 16.8135C12.928 16.8495 13.0088 16.8703 13.0914 16.8747C13.174 16.8791 13.2567 16.8672 13.3346 16.8394C13.4125 16.8117 13.4841 16.7688 13.5453 16.7131C13.6066 16.6575 13.6561 16.5903 13.6911 16.5154C13.7262 16.4405 13.746 16.3593 13.7495 16.2767C13.7529 16.1941 13.7399 16.1116 13.7113 16.034C13.6826 15.9564 13.6388 15.8853 13.5825 15.8248V15.8255ZM6.86996 11.2458C6.20692 11.2458 5.57103 10.9825 5.10219 10.5136C4.63335 10.0448 4.36996 9.40889 4.36996 8.74584V7.54975L7.62465 11.1294C7.38053 11.2067 7.126 11.2459 6.86996 11.2458ZM11.3637 10.9404C11.6989 10.2575 11.8722 9.50655 11.87 8.74584C11.87 8.58008 11.9358 8.42111 12.053 8.3039C12.1702 8.18669 12.3292 8.12084 12.495 8.12084C12.6607 8.12084 12.8197 8.18669 12.9369 8.3039C13.0541 8.42111 13.12 8.58008 13.12 8.74584C13.1226 9.69698 12.9057 10.6359 12.4864 11.4896C12.435 11.5948 12.3551 11.6835 12.2558 11.7455C12.1565 11.8075 12.0417 11.8404 11.9246 11.8404C11.8295 11.8405 11.7357 11.8186 11.6504 11.7763C11.5016 11.7035 11.3877 11.5745 11.334 11.4177C11.2802 11.261 11.2909 11.0893 11.3637 10.9404ZM3.43246 2.25131C3.77668 1.4618 4.38218 0.814831 5.1472 0.419151C5.91222 0.023471 6.79013 -0.0968052 7.63339 0.0785367C8.47664 0.253879 9.23384 0.71415 9.77772 1.382C10.3216 2.04984 10.619 2.88455 10.62 3.74584V8.74584C10.6198 8.87631 10.613 9.00669 10.5996 9.13647C10.5836 9.29075 10.5107 9.43353 10.3952 9.53706C10.2796 9.64059 10.1298 9.69746 9.97465 9.69663C9.95279 9.69776 9.93088 9.69776 9.90902 9.69663C9.74421 9.6793 9.59302 9.59722 9.48871 9.46844C9.38439 9.33967 9.3355 9.17473 9.35277 9.00991C9.36137 8.92397 9.36605 8.83491 9.36605 8.74741V3.74584C9.36441 3.17242 9.16568 2.61699 8.80319 2.17267C8.44071 1.72835 7.93649 1.42215 7.37507 1.3054C6.81366 1.18864 6.22917 1.26844 5.7196 1.53141C5.21002 1.79437 4.80633 2.22452 4.57621 2.74975C4.547 2.8299 4.50168 2.90323 4.44306 2.9652C4.38444 3.02718 4.31375 3.0765 4.23535 3.11013C4.15695 3.14375 4.07249 3.16097 3.98718 3.16072C3.90187 3.16048 3.81751 3.14277 3.73931 3.10868C3.6611 3.0746 3.5907 3.02487 3.53244 2.96255C3.47418 2.90024 3.4293 2.82665 3.40055 2.74633C3.3718 2.66601 3.3598 2.58065 3.36529 2.49552C3.37078 2.41039 3.39364 2.32728 3.43246 2.25131Z" },
126
+ "play": { viewBox: "0 0 13.7486 16.2504", d: "M13.1562 7.06992L1.9 0.183984C1.71022 0.0677751 1.49287 0.00433455 1.27037 0.000214333C1.04788 -0.00390588 0.828324 0.0514435 0.634375 0.160546C0.442273 0.267954 0.282247 0.424592 0.170753 0.614352C0.0592589 0.804111 0.000320983 1.02014 0 1.24023V15.0105C0.00144747 15.3407 0.133933 15.6567 0.368331 15.8892C0.60273 16.1217 0.919857 16.2516 1.25 16.2504C1.48043 16.2503 1.70639 16.1868 1.90313 16.0668L13.1562 9.18086C13.3371 9.07061 13.4866 8.91569 13.5904 8.73099C13.6941 8.54628 13.7486 8.33801 13.7486 8.12617C13.7486 7.91433 13.6941 7.70606 13.5904 7.52136C13.4866 7.33665 13.3371 7.18173 13.1562 7.07148V7.06992ZM1.25 14.9957V1.25039L12.4867 8.12539L1.25 14.9957Z" },
127
+ "x": { viewBox: "0 0 12.5007 12.5007", d: "M12.3175 11.4332C12.3756 11.4912 12.4217 11.5602 12.4531 11.636C12.4845 11.7119 12.5007 11.7932 12.5007 11.8753C12.5007 11.9575 12.4845 12.0388 12.4531 12.1147C12.4217 12.1905 12.3756 12.2595 12.3175 12.3175C12.2595 12.3756 12.1905 12.4217 12.1147 12.4531C12.0388 12.4845 11.9575 12.5007 11.8753 12.5007C11.7932 12.5007 11.7119 12.4845 11.636 12.4531C11.5602 12.4217 11.4912 12.3756 11.4332 12.3175L6.25035 7.13394L1.06753 12.3175C0.95026 12.4348 0.7912 12.5007 0.625347 12.5007C0.459495 12.5007 0.300435 12.4348 0.18316 12.3175C0.0658846 12.2003 3.26935e-09 12.0412 0 11.8753C-3.26935e-09 11.7095 0.0658846 11.5504 0.18316 11.4332L5.36675 6.25035L0.18316 1.06753C0.0658846 0.95026 0 0.7912 0 0.625347C0 0.459495 0.0658846 0.300435 0.18316 0.18316C0.300435 0.0658846 0.459495 0 0.625347 0C0.7912 0 0.95026 0.0658846 1.06753 0.18316L6.25035 5.36675L11.4332 0.18316C11.5504 0.0658846 11.7095 -3.26935e-09 11.8753 0C12.0412 3.26935e-09 12.2003 0.0658846 12.3175 0.18316C12.4348 0.300435 12.5007 0.459495 12.5007 0.625347C12.5007 0.7912 12.4348 0.95026 12.3175 1.06753L7.13394 6.25035L12.3175 11.4332Z" },
128
+ "Mail": { viewBox: "0 0 16.25 12.5", d: "M15.625 0H0.625C0.45924 0 0.300268 0.0658481 0.183058 0.183058C0.065848 0.300269 0 0.45924 0 0.625V11.25C0 11.5815 0.131696 11.8995 0.366116 12.1339C0.600537 12.3683 0.918479 12.5 1.25 12.5H15C15.3315 12.5 15.6495 12.3683 15.8839 12.1339C16.1183 11.8995 16.25 11.5815 16.25 11.25V0.625C16.25 0.45924 16.1842 0.300269 16.0669 0.183058C15.9497 0.0658481 15.7908 0 15.625 0ZM8.125 6.65234L2.23203 1.25H14.018L8.125 6.65234ZM5.83672 6.25L1.25 10.4539V2.04609L5.83672 6.25ZM6.76172 7.09766L7.69922 7.96094C7.81453 8.06679 7.96535 8.12552 8.12187 8.12552C8.2784 8.12552 8.42922 8.06679 8.54453 7.96094L9.48203 7.09766L14.0133 11.25H2.23203L6.76172 7.09766ZM10.4133 6.25L15 2.04531V10.4547L10.4133 6.25Z" },
129
+ "pause": { viewBox: "0 0 13.75 15", d: "M12.5 0H9.375C9.04348 0 8.72554 0.131696 8.49112 0.366116C8.2567 0.600537 8.125 0.918479 8.125 1.25V13.75C8.125 14.0815 8.2567 14.3995 8.49112 14.6339C8.72554 14.8683 9.04348 15 9.375 15H12.5C12.8315 15 13.1495 14.8683 13.3839 14.6339C13.6183 14.3995 13.75 14.0815 13.75 13.75V1.25C13.75 0.918479 13.6183 0.600537 13.3839 0.366116C13.1495 0.131696 12.8315 0 12.5 0ZM12.5 13.75H9.375V1.25H12.5V13.75ZM4.375 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V13.75C0 14.0815 0.131696 14.3995 0.366116 14.6339C0.600537 14.8683 0.918479 15 1.25 15H4.375C4.70652 15 5.02446 14.8683 5.25888 14.6339C5.4933 14.3995 5.625 14.0815 5.625 13.75V1.25C5.625 0.918479 5.4933 0.600537 5.25888 0.366116C5.02446 0.131696 4.70652 0 4.375 0ZM4.375 13.75H1.25V1.25H4.375V13.75Z" },
130
+ "broadcast": { viewBox: "0 0 18.7551 13.5211", d: "M9.38008 3.63557C8.76201 3.63557 8.15782 3.81885 7.64392 4.16223C7.13002 4.50561 6.72948 4.99366 6.49295 5.56468C6.25643 6.1357 6.19454 6.76404 6.31512 7.37023C6.4357 7.97642 6.73333 8.53324 7.17037 8.97028C7.60741 9.40732 8.16423 9.70494 8.77042 9.82552C9.37661 9.9461 10.0049 9.88422 10.576 9.64769C11.147 9.41117 11.635 9.01063 11.9784 8.49672C12.3218 7.98282 12.5051 7.37863 12.5051 6.76057C12.5051 5.93177 12.1758 5.13691 11.5898 4.55086C11.0037 3.96481 10.2089 3.63557 9.38008 3.63557ZM9.38008 8.63557C9.00924 8.63557 8.64673 8.5256 8.33838 8.31957C8.03004 8.11355 7.78972 7.82071 7.6478 7.4781C7.50589 7.13549 7.46876 6.75849 7.5411 6.39477C7.61345 6.03106 7.79203 5.69697 8.05425 5.43474C8.31648 5.17252 8.65057 4.99394 9.01428 4.9216C9.378 4.84925 9.755 4.88638 10.0976 5.02829C10.4402 5.17021 10.7331 5.41053 10.9391 5.71887C11.1451 6.02722 11.2551 6.38973 11.2551 6.76057C11.2551 7.25785 11.0575 7.73476 10.7059 8.08639C10.3543 8.43802 9.87736 8.63557 9.38008 8.63557ZM15.1387 9.19338C14.8702 9.82821 14.4985 10.4142 14.0387 10.9278C13.9273 11.0482 13.7731 11.1201 13.6092 11.1279C13.4454 11.1356 13.285 11.0786 13.1628 10.9692C13.0406 10.8598 12.9663 10.7068 12.9559 10.543C12.9456 10.3793 13 10.2181 13.1074 10.0942C13.9281 9.17787 14.3819 7.99103 14.3819 6.76096C14.3819 5.53089 13.9281 4.34405 13.1074 3.42776C13.0511 3.36686 13.0076 3.29539 12.9792 3.21748C12.9508 3.13958 12.9382 3.05681 12.9421 2.97399C12.946 2.89117 12.9664 2.80996 13.002 2.73508C13.0376 2.66021 13.0878 2.59317 13.1496 2.53787C13.2113 2.48257 13.2835 2.44012 13.3619 2.41298C13.4402 2.38584 13.5232 2.37457 13.6059 2.3798C13.6887 2.38504 13.7695 2.40669 13.8438 2.4435C13.9181 2.4803 13.9844 2.53151 14.0387 2.59416C14.8278 3.47724 15.3502 4.56618 15.5449 5.73438C15.7396 6.90259 15.5987 8.10207 15.1387 9.19338ZM4.7707 4.81447C4.40194 5.68742 4.28884 6.64719 4.44458 7.58194C4.60033 8.51669 5.01851 9.38794 5.65039 10.0942C5.75784 10.2181 5.81225 10.3793 5.80189 10.543C5.79152 10.7068 5.71721 10.8598 5.59499 10.9692C5.47276 11.0786 5.31242 11.1356 5.14857 11.1279C4.98471 11.1201 4.83048 11.0482 4.71914 10.9278C3.69304 9.78241 3.12563 8.29872 3.12563 6.76096C3.12563 5.2232 3.69304 3.73951 4.71914 2.59416C4.82968 2.47036 4.98488 2.39554 5.15058 2.38616C5.31629 2.37679 5.47893 2.43362 5.60273 2.54416C5.72654 2.6547 5.80135 2.8099 5.81073 2.9756C5.82011 3.14131 5.76327 3.30395 5.65273 3.42776C5.28398 3.83798 4.98592 4.30659 4.7707 4.81447ZM18.7551 6.76057C18.7589 9.21505 17.7966 11.5724 16.0762 13.3231C16.0193 13.3839 15.9507 13.4328 15.8747 13.4668C15.7986 13.5008 15.7165 13.5192 15.6332 13.521C15.5499 13.5228 15.4671 13.5079 15.3896 13.4772C15.3121 13.4466 15.2416 13.4007 15.1821 13.3424C15.1226 13.284 15.0754 13.2144 15.0432 13.1375C15.011 13.0607 14.9945 12.9781 14.9947 12.8948C14.9949 12.8115 15.0117 12.729 15.0442 12.6523C15.0767 12.5756 15.1242 12.5062 15.184 12.4481C16.6736 10.9304 17.5082 8.88872 17.5082 6.76213C17.5082 4.63554 16.6736 2.59388 15.184 1.07619C15.0675 0.957882 15.0029 0.798158 15.0042 0.632159C15.0055 0.46616 15.0727 0.307484 15.191 0.191037C15.3093 0.0745904 15.4691 0.00991204 15.635 0.0112307C15.801 0.0125493 15.9597 0.0797568 16.0762 0.198068C17.7966 1.94872 18.7589 4.30609 18.7551 6.76057ZM3.57617 12.4465C3.63373 12.5051 3.67918 12.5744 3.70994 12.6506C3.74069 12.7267 3.75615 12.8082 3.75542 12.8903C3.7547 12.9724 3.73781 13.0536 3.70571 13.1292C3.67361 13.2048 3.62694 13.2733 3.56836 13.3309C3.50978 13.3884 3.44043 13.4339 3.36428 13.4646C3.28814 13.4954 3.20668 13.5109 3.12455 13.5101C3.04243 13.5094 2.96126 13.4925 2.88566 13.4604C2.81007 13.4283 2.74154 13.3817 2.68398 13.3231C0.963815 11.5719 0 9.21529 0 6.76057C0 4.30585 0.963815 1.94926 2.68398 0.198068C2.7409 0.137215 2.80941 0.0883576 2.88548 0.0543677C2.96156 0.0203779 3.04366 0.0019424 3.12696 0.000145384C3.21027 -0.00165163 3.29309 0.013226 3.37056 0.0439035C3.44802 0.0745811 3.51858 0.120439 3.57806 0.178781C3.63755 0.237123 3.68477 0.30677 3.71695 0.383628C3.74913 0.460486 3.76562 0.543002 3.76544 0.626323C3.76526 0.709645 3.74843 0.792091 3.71593 0.868811C3.68342 0.945532 3.63591 1.01498 3.57617 1.07307C2.08653 2.59075 1.25198 4.63242 1.25198 6.75901C1.25198 8.8856 2.08653 10.9273 3.57617 12.4449V12.4465Z" },
131
+ "sidebar-simple": { viewBox: "0 0 16.25 13.75", d: "M15 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H15C15.3315 13.75 15.6495 13.6183 15.8839 13.3839C16.1183 13.1495 16.25 12.8315 16.25 12.5V1.25C16.25 0.918479 16.1183 0.600537 15.8839 0.366116C15.6495 0.131696 15.3315 0 15 0ZM1.25 1.25H4.375V12.5H1.25V1.25ZM15 12.5H5.625V1.25H15V12.5Z" },
132
+ "pencil-simple-line": { viewBox: "0 0 15.6256 15.6248", d: "M15.2594 3.85684L11.768 0.366217C11.6519 0.250114 11.5141 0.158014 11.3624 0.0951779C11.2107 0.0323417 11.0482 0 10.884 0C10.7198 0 10.5572 0.0323417 10.4056 0.0951779C10.2539 0.158014 10.1161 0.250114 10 0.366217L0.366412 9.99981C0.249834 10.1155 0.157407 10.2531 0.0945056 10.4048C0.0316038 10.5565 -0.000518312 10.7192 6.32418e-06 10.8834V14.3748C6.32418e-06 14.7063 0.131702 15.0243 0.366123 15.2587C0.600543 15.4931 0.918486 15.6248 1.25001 15.6248H14.375C14.5408 15.6248 14.6997 15.559 14.8169 15.4418C14.9342 15.3245 15 15.1656 15 14.9998C15 14.8341 14.9342 14.6751 14.8169 14.5579C14.6997 14.4407 14.5408 14.3748 14.375 14.3748H6.50938L15.2594 5.62481C15.3755 5.50873 15.4676 5.37092 15.5304 5.21925C15.5933 5.06757 15.6256 4.905 15.6256 4.74083C15.6256 4.57665 15.5933 4.41408 15.5304 4.26241C15.4676 4.11073 15.3755 3.97292 15.2594 3.85684ZM4.74141 14.3748H1.25001V10.8834L8.12501 4.0084L11.6164 7.49981L4.74141 14.3748ZM12.5 6.61622L9.00938 3.12481L10.8844 1.24981L14.375 4.74122L12.5 6.61622Z" },
133
+ "search": { viewBox: "0 0 16.2676 16.2676", d: "M16.0845 15.2001L12.1727 11.2891C13.3065 9.92798 13.8719 8.1821 13.7512 6.41472C13.6305 4.64733 12.8331 2.9945 11.5249 1.80006C10.2166 0.605618 8.49824 -0.038471 6.72719 0.00177892C4.95615 0.0420288 3.2688 0.763519 2.01616 2.01616C0.763519 3.2688 0.0420288 4.95615 0.00177892 6.72719C-0.038471 8.49824 0.605618 10.2166 1.80006 11.5249C2.9945 12.8331 4.64733 13.6305 6.41472 13.7512C8.1821 13.8719 9.92798 13.3065 11.2891 12.1727L15.2001 16.0845C15.2581 16.1425 15.3271 16.1886 15.403 16.22C15.4788 16.2514 15.5601 16.2676 15.6423 16.2676C15.7244 16.2676 15.8057 16.2514 15.8816 16.22C15.9574 16.1886 16.0264 16.1425 16.0845 16.0845C16.1425 16.0264 16.1886 15.9574 16.22 15.8816C16.2514 15.8057 16.2676 15.7244 16.2676 15.6423C16.2676 15.5601 16.2514 15.4788 16.22 15.403C16.1886 15.3271 16.1425 15.2581 16.0845 15.2001ZM1.26727 6.89227C1.26727 5.77975 1.59717 4.69221 2.21525 3.76719C2.83333 2.84216 3.71184 2.12119 4.73967 1.69545C5.76751 1.2697 6.89851 1.15831 7.98965 1.37535C9.08079 1.59239 10.0831 2.12812 10.8697 2.91479C11.6564 3.70146 12.1921 4.70374 12.4092 5.79489C12.6262 6.88603 12.5148 8.01703 12.0891 9.04486C11.6633 10.0727 10.9424 10.9512 10.0174 11.5693C9.09232 12.1874 8.00479 12.5173 6.89227 12.5173C5.40093 12.5156 3.97115 11.9225 2.91662 10.8679C1.86209 9.81338 1.26892 8.3836 1.26727 6.89227Z" },
134
+ "list-dashes": { viewBox: "0 0 15 11.25", d: "M4.375 0.625C4.375 0.45924 4.44085 0.300269 4.55806 0.183058C4.67527 0.0658481 4.83424 0 5 0H14.375C14.5408 0 14.6997 0.0658481 14.8169 0.183058C14.9342 0.300269 15 0.45924 15 0.625C15 0.79076 14.9342 0.949731 14.8169 1.06694C14.6997 1.18415 14.5408 1.25 14.375 1.25H5C4.83424 1.25 4.67527 1.18415 4.55806 1.06694C4.44085 0.949731 4.375 0.79076 4.375 0.625ZM14.375 5H5C4.83424 5 4.67527 5.06585 4.55806 5.18306C4.44085 5.30027 4.375 5.45924 4.375 5.625C4.375 5.79076 4.44085 5.94973 4.55806 6.06694C4.67527 6.18415 4.83424 6.25 5 6.25H14.375C14.5408 6.25 14.6997 6.18415 14.8169 6.06694C14.9342 5.94973 15 5.79076 15 5.625C15 5.45924 14.9342 5.30027 14.8169 5.18306C14.6997 5.06585 14.5408 5 14.375 5ZM14.375 10H5C4.83424 10 4.67527 10.0658 4.55806 10.1831C4.44085 10.3003 4.375 10.4592 4.375 10.625C4.375 10.7908 4.44085 10.9497 4.55806 11.0669C4.67527 11.1842 4.83424 11.25 5 11.25H14.375C14.5408 11.25 14.6997 11.1842 14.8169 11.0669C14.9342 10.9497 15 10.7908 15 10.625C15 10.4592 14.9342 10.3003 14.8169 10.1831C14.6997 10.0658 14.5408 10 14.375 10ZM1.875 0H0.625C0.45924 0 0.300269 0.0658481 0.183058 0.183058C0.0658481 0.300269 0 0.45924 0 0.625C0 0.79076 0.0658481 0.949731 0.183058 1.06694C0.300269 1.18415 0.45924 1.25 0.625 1.25H1.875C2.04076 1.25 2.19973 1.18415 2.31694 1.06694C2.43415 0.949731 2.5 0.79076 2.5 0.625C2.5 0.45924 2.43415 0.300269 2.31694 0.183058C2.19973 0.0658481 2.04076 0 1.875 0ZM1.875 5H0.625C0.45924 5 0.300269 5.06585 0.183058 5.18306C0.0658481 5.30027 0 5.45924 0 5.625C0 5.79076 0.0658481 5.94973 0.183058 6.06694C0.300269 6.18415 0.45924 6.25 0.625 6.25H1.875C2.04076 6.25 2.19973 6.18415 2.31694 6.06694C2.43415 5.94973 2.5 5.79076 2.5 5.625C2.5 5.45924 2.43415 5.30027 2.31694 5.18306C2.19973 5.06585 2.04076 5 1.875 5ZM1.875 10H0.625C0.45924 10 0.300269 10.0658 0.183058 10.1831C0.0658481 10.3003 0 10.4592 0 10.625C0 10.7908 0.0658481 10.9497 0.183058 11.0669C0.300269 11.1842 0.45924 11.25 0.625 11.25H1.875C2.04076 11.25 2.19973 11.1842 2.31694 11.0669C2.43415 10.9497 2.5 10.7908 2.5 10.625C2.5 10.4592 2.43415 10.3003 2.31694 10.1831C2.19973 10.0658 2.04076 10 1.875 10Z" },
135
+ "brain": { viewBox: "0 0 18.7506 15.6183", d: "M18.7506 7.80914C18.7498 6.98128 18.5145 6.17057 18.0721 5.47084C17.6297 4.77111 16.9981 4.21096 16.2506 3.85524V3.74664C16.2499 2.94135 15.9899 2.15767 15.5092 1.51158C15.0285 0.86548 14.3526 0.391288 13.5815 0.159164C12.8104 -0.0729602 11.985 -0.0506851 11.2276 0.222693C10.4701 0.496072 9.82073 1.00603 9.37559 1.67711C8.93044 1.00603 8.28109 0.496072 7.52361 0.222693C6.76614 -0.0506851 5.94078 -0.0729602 5.16966 0.159164C4.39854 0.391288 3.72263 0.86548 3.24194 1.51158C2.76125 2.15767 2.50131 2.94135 2.50059 3.74664V3.85524C1.75241 4.20999 1.12027 4.76978 0.677624 5.46955C0.234977 6.16932 0 6.98034 0 7.80836C0 8.63638 0.234977 9.4474 0.677624 10.1472C1.12027 10.8469 1.75241 11.4067 2.50059 11.7615V11.8716C2.50131 12.6769 2.76125 13.4606 3.24194 14.1067C3.72263 14.7528 4.39854 15.227 5.16966 15.4591C5.94078 15.6912 6.76614 15.669 7.52361 15.3956C8.28109 15.1222 8.93044 14.6123 9.37559 13.9412C9.82073 14.6123 10.4701 15.1222 11.2276 15.3956C11.985 15.669 12.8104 15.6912 13.5815 15.4591C14.3526 15.227 15.0285 14.7528 15.5092 14.1067C15.9899 13.4606 16.2499 12.6769 16.2506 11.8716V11.7615C16.998 11.406 17.6295 10.8462 18.0719 10.1467C18.5144 9.44724 18.7497 8.63679 18.7506 7.80914ZM6.25059 14.3716C5.63414 14.3716 5.03946 14.1437 4.58076 13.7319C4.12207 13.3201 3.8317 12.7533 3.76543 12.1404C3.96754 12.1692 4.17143 12.1838 4.37559 12.1841H5.00059C5.16635 12.1841 5.32532 12.1183 5.44253 12.0011C5.55974 11.8839 5.62559 11.7249 5.62559 11.5591C5.62559 11.3934 5.55974 11.2344 5.44253 11.1172C5.32532 11 5.16635 10.9341 5.00059 10.9341H4.37559C3.63774 10.935 2.92339 10.6748 2.35901 10.1995C1.79462 9.72422 1.41661 9.06457 1.2919 8.33734C1.16718 7.61012 1.30381 6.86221 1.6776 6.22605C2.05138 5.58989 2.63821 5.10651 3.33418 4.86149C3.45595 4.81837 3.56138 4.73858 3.63595 4.6331C3.71052 4.52761 3.75057 4.40161 3.75059 4.27242V3.74664C3.75059 3.0836 4.01398 2.44772 4.48282 1.97888C4.95166 1.51004 5.58755 1.24664 6.25059 1.24664C6.91363 1.24664 7.54951 1.51004 8.01835 1.97888C8.48719 2.44772 8.75059 3.0836 8.75059 3.74664V9.07946C8.06427 8.46218 7.17366 8.12096 6.25059 8.12164C6.08483 8.12164 5.92586 8.18749 5.80864 8.3047C5.69143 8.42191 5.62559 8.58088 5.62559 8.74664C5.62559 8.9124 5.69143 9.07138 5.80864 9.18859C5.92586 9.3058 6.08483 9.37164 6.25059 9.37164C6.91363 9.37164 7.54951 9.63504 8.01835 10.1039C8.48719 10.5727 8.75059 11.2086 8.75059 11.8716C8.75059 12.5347 8.48719 13.1706 8.01835 13.6394C7.54951 14.1083 6.91363 14.3716 6.25059 14.3716ZM14.3756 10.9341H13.7506C13.5848 10.9341 13.4259 11 13.3086 11.1172C13.1914 11.2344 13.1256 11.3934 13.1256 11.5591C13.1256 11.7249 13.1914 11.8839 13.3086 12.0011C13.4259 12.1183 13.5848 12.1841 13.7506 12.1841H14.3756C14.5797 12.1838 14.7836 12.1692 14.9857 12.1404C14.9338 12.6206 14.7439 13.0755 14.4389 13.4501C14.134 13.8246 13.7271 14.1028 13.2674 14.251C12.8077 14.3992 12.3149 14.4111 11.8485 14.2852C11.3822 14.1593 10.9624 13.901 10.6398 13.5416C10.3171 13.1821 10.1055 12.7369 10.0305 12.2597C9.95556 11.7826 10.0204 11.2939 10.2172 10.8529C10.4141 10.4118 10.7345 10.0372 11.1397 9.77429C11.5449 9.51143 12.0176 9.37157 12.5006 9.37164C12.6663 9.37164 12.8253 9.3058 12.9425 9.18859C13.0597 9.07138 13.1256 8.9124 13.1256 8.74664C13.1256 8.58088 13.0597 8.42191 12.9425 8.3047C12.8253 8.18749 12.6663 8.12164 12.5006 8.12164C11.5775 8.12096 10.6869 8.46218 10.0006 9.07946V3.74664C10.0006 3.0836 10.264 2.44772 10.7328 1.97888C11.2017 1.51004 11.8375 1.24664 12.5006 1.24664C13.1636 1.24664 13.7995 1.51004 14.2684 1.97888C14.7372 2.44772 15.0006 3.0836 15.0006 3.74664V4.27242C15.0006 4.40161 15.0407 4.52761 15.1152 4.6331C15.1898 4.73858 15.2952 4.81837 15.417 4.86149C16.113 5.10651 16.6998 5.58989 17.0736 6.22605C17.4474 6.86221 17.584 7.61012 17.4593 8.33734C17.3346 9.06457 16.9566 9.72422 16.3922 10.1995C15.8278 10.6748 15.1134 10.935 14.3756 10.9341ZM15.6256 6.87164C15.6256 7.0374 15.5597 7.19637 15.4425 7.31358C15.3253 7.43079 15.1663 7.49664 15.0006 7.49664H14.6881C13.9422 7.49664 13.2268 7.20033 12.6994 6.67288C12.1719 6.14543 11.8756 5.43006 11.8756 4.68414V4.37164C11.8756 4.20588 11.9414 4.04691 12.0586 3.9297C12.1759 3.81249 12.3348 3.74664 12.5006 3.74664C12.6663 3.74664 12.8253 3.81249 12.9425 3.9297C13.0597 4.04691 13.1256 4.20588 13.1256 4.37164V4.68414C13.1256 5.09854 13.2902 5.49597 13.5832 5.789C13.8763 6.08202 14.2737 6.24664 14.6881 6.24664H15.0006C15.1663 6.24664 15.3253 6.31249 15.4425 6.4297C15.5597 6.54691 15.6256 6.70588 15.6256 6.87164ZM4.06309 7.49664H3.75059C3.58483 7.49664 3.42585 7.43079 3.30864 7.31358C3.19143 7.19637 3.12559 7.0374 3.12559 6.87164C3.12559 6.70588 3.19143 6.54691 3.30864 6.4297C3.42585 6.31249 3.58483 6.24664 3.75059 6.24664H4.06309C4.47749 6.24664 4.87492 6.08202 5.16794 5.789C5.46097 5.49597 5.62559 5.09854 5.62559 4.68414V4.37164C5.62559 4.20588 5.69143 4.04691 5.80864 3.9297C5.92586 3.81249 6.08483 3.74664 6.25059 3.74664C6.41635 3.74664 6.57532 3.81249 6.69253 3.9297C6.80974 4.04691 6.87559 4.20588 6.87559 4.37164V4.68414C6.87559 5.43006 6.57927 6.14543 6.05182 6.67288C5.52438 7.20033 4.80901 7.49664 4.06309 7.49664Z" },
136
+ "eye": { viewBox: "0 0 18.75 12.5", d: "M18.6961 5.99688C18.6687 5.93516 18.007 4.46719 16.5359 2.99609C14.5758 1.03594 12.1 0 9.37499 0C6.64999 0 4.17421 1.03594 2.21405 2.99609C0.742961 4.46719 0.0781175 5.9375 0.0538988 5.99688C0.0183622 6.07681 0 6.16331 0 6.25078C0 6.33826 0.0183622 6.42476 0.0538988 6.50469C0.0812425 6.56641 0.742961 8.03359 2.21405 9.50469C4.17421 11.4641 6.64999 12.5 9.37499 12.5C12.1 12.5 14.5758 11.4641 16.5359 9.50469C18.007 8.03359 18.6687 6.56641 18.6961 6.50469C18.7316 6.42476 18.75 6.33826 18.75 6.25078C18.75 6.16331 18.7316 6.07681 18.6961 5.99688ZM9.37499 11.25C6.9703 11.25 4.86952 10.3758 3.13046 8.65234C2.4169 7.94273 1.80983 7.13356 1.32812 6.25C1.8097 5.36636 2.41679 4.55717 3.13046 3.84766C4.86952 2.12422 6.9703 1.25 9.37499 1.25C11.7797 1.25 13.8805 2.12422 15.6195 3.84766C16.3345 4.557 16.9429 5.36619 17.4258 6.25C16.8625 7.30156 14.4086 11.25 9.37499 11.25ZM9.37499 2.5C8.63331 2.5 7.90829 2.71993 7.2916 3.13199C6.67492 3.54404 6.19427 4.12971 5.91044 4.81494C5.62662 5.50016 5.55235 6.25416 5.69705 6.98159C5.84174 7.70902 6.19889 8.3772 6.72334 8.90165C7.24779 9.4261 7.91597 9.78325 8.6434 9.92795C9.37083 10.0726 10.1248 9.99838 10.8101 9.71455C11.4953 9.43072 12.0809 8.95007 12.493 8.33339C12.9051 7.7167 13.125 6.99168 13.125 6.25C13.124 5.25576 12.7285 4.30253 12.0255 3.59949C11.3225 2.89645 10.3692 2.50103 9.37499 2.5ZM9.37499 8.75C8.88054 8.75 8.39719 8.60338 7.98607 8.32867C7.57494 8.05397 7.25451 7.66352 7.06529 7.20671C6.87607 6.74989 6.82657 6.24723 6.92303 5.76227C7.01949 5.27732 7.25759 4.83186 7.60722 4.48223C7.95686 4.1326 8.40231 3.8945 8.88727 3.79804C9.37222 3.70157 9.87488 3.75108 10.3317 3.9403C10.7885 4.12952 11.179 4.44995 11.4537 4.86107C11.7284 5.2722 11.875 5.75555 11.875 6.25C11.875 6.91304 11.6116 7.54893 11.1428 8.01777C10.6739 8.48661 10.038 8.75 9.37499 8.75Z" },
137
+ "Frame": { viewBox: "0 0 16.7501 12.5", d: "M1.25 0.625V11.875C1.25 12.0408 1.18415 12.1997 1.06694 12.3169C0.949731 12.4342 0.79076 12.5 0.625 12.5C0.45924 12.5 0.300269 12.4342 0.183058 12.3169C0.0658481 12.1997 0 12.0408 0 11.875V0.625C0 0.45924 0.0658481 0.300269 0.183058 0.183058C0.300269 0.0658481 0.45924 0 0.625 0C0.79076 0 0.949731 0.0658481 1.06694 0.183058C1.18415 0.300269 1.25 0.45924 1.25 0.625ZM8.4375 4.88281L6.875 5.39062V3.75C6.875 3.58424 6.80915 3.42527 6.69194 3.30806C6.57473 3.19085 6.41576 3.125 6.25 3.125C6.08424 3.125 5.92527 3.19085 5.80806 3.30806C5.69085 3.42527 5.625 3.58424 5.625 3.75V5.39062L4.0625 4.88281C3.90482 4.83101 3.73302 4.84397 3.5849 4.91884C3.43677 4.99371 3.32446 5.12435 3.27266 5.28203C3.22086 5.43971 3.23382 5.61151 3.30868 5.75963C3.38355 5.90776 3.5142 6.02007 3.67188 6.07188L5.23438 6.57891L4.27031 7.90703C4.21937 7.97323 4.1822 8.04897 4.16103 8.12977C4.13985 8.21058 4.13508 8.29481 4.14701 8.37748C4.15894 8.46016 4.18733 8.53961 4.23048 8.61113C4.27364 8.68265 4.3307 8.74479 4.39828 8.79389C4.46586 8.84298 4.5426 8.87803 4.62396 8.89696C4.70532 8.91589 4.78965 8.91832 4.87196 8.90411C4.95428 8.88989 5.03291 8.85932 5.10321 8.8142C5.17351 8.76908 5.23405 8.71032 5.28125 8.64141L6.24531 7.31328L7.20937 8.64141C7.25658 8.71032 7.31712 8.76908 7.38742 8.8142C7.45772 8.85932 7.53635 8.88989 7.61866 8.90411C7.70098 8.91832 7.7853 8.91589 7.86666 8.89696C7.94802 8.87803 8.02476 8.84298 8.09235 8.79389C8.15993 8.74479 8.21699 8.68265 8.26014 8.61113C8.3033 8.53961 8.33168 8.46016 8.34361 8.37748C8.35554 8.29481 8.35078 8.21058 8.3296 8.12977C8.30842 8.04897 8.27126 7.97323 8.22031 7.90703L7.25625 6.57891L8.81875 6.07188C8.96947 6.01582 9.09277 5.90382 9.16304 5.75918C9.2333 5.61454 9.24511 5.44839 9.19602 5.29526C9.14692 5.14213 9.04069 5.01382 8.89942 4.93701C8.75815 4.86019 8.59271 4.84078 8.4375 4.88281ZM16.7188 5.28437C16.6675 5.12813 16.5568 4.99837 16.4106 4.9232C16.2643 4.84804 16.0944 4.83353 15.9375 4.88281L14.375 5.39062V3.75C14.375 3.58424 14.3092 3.42527 14.1919 3.30806C14.0747 3.19085 13.9158 3.125 13.75 3.125C13.5842 3.125 13.4253 3.19085 13.3081 3.30806C13.1908 3.42527 13.125 3.58424 13.125 3.75V5.39062L11.5625 4.88359C11.4048 4.83231 11.2332 4.84577 11.0855 4.921C10.9377 4.99624 10.8259 5.12709 10.7746 5.28477C10.7233 5.44244 10.7368 5.61404 10.812 5.7618C10.8873 5.90955 11.0181 6.02137 11.1758 6.07266L12.7383 6.57969L11.7742 7.90781C11.7233 7.97401 11.6861 8.04975 11.6649 8.13055C11.6438 8.21136 11.639 8.29559 11.6509 8.37826C11.6628 8.46094 11.6912 8.54039 11.7344 8.61191C11.7775 8.68343 11.8346 8.74557 11.9022 8.79467C11.9698 8.84376 12.0465 8.87881 12.1279 8.89774C12.2092 8.91667 12.2936 8.9191 12.3759 8.90489C12.4582 8.89067 12.5368 8.8601 12.6071 8.81498C12.6774 8.76986 12.738 8.7111 12.7852 8.64219L13.7492 7.31406L14.7133 8.64219C14.7605 8.7111 14.821 8.76986 14.8913 8.81498C14.9616 8.8601 15.0403 8.89067 15.1226 8.90489C15.2049 8.9191 15.2892 8.91667 15.3706 8.89774C15.4519 8.87881 15.5287 8.84376 15.5963 8.79467C15.6638 8.74557 15.7209 8.68343 15.764 8.61191C15.8072 8.54039 15.8356 8.46094 15.8475 8.37826C15.8594 8.29559 15.8547 8.21136 15.8335 8.13055C15.8123 8.04975 15.7752 7.97401 15.7242 7.90781L14.7602 6.57969L16.3227 6.07266C16.4795 6.02038 16.6093 5.90807 16.6835 5.76033C16.7578 5.61258 16.7704 5.44144 16.7188 5.28437Z" },
138
+ "arrow-up": { viewBox: "0 0 12.5008 15.0005", d: "M12.3175 6.69268C12.2595 6.75079 12.1906 6.79689 12.1147 6.82834C12.0388 6.85979 11.9575 6.87598 11.8753 6.87598C11.7932 6.87598 11.7119 6.85979 11.636 6.82834C11.5601 6.79689 11.4912 6.75079 11.4332 6.69268L6.87535 2.13409V14.3755C6.87535 14.5413 6.8095 14.7002 6.69229 14.8174C6.57508 14.9346 6.41611 15.0005 6.25035 15.0005C6.08459 15.0005 5.92562 14.9346 5.80841 14.8174C5.6912 14.7002 5.62535 14.5413 5.62535 14.3755V2.13409L1.06753 6.69268C0.95026 6.80995 0.7912 6.87584 0.625347 6.87584C0.459495 6.87584 0.300435 6.80995 0.18316 6.69268C0.0658846 6.5754 1.2357e-09 6.41634 0 6.25049C-1.2357e-09 6.08464 0.0658846 5.92558 0.18316 5.8083L5.80816 0.183304C5.86621 0.125194 5.93514 0.0790945 6.01101 0.0476418C6.08688 0.0161892 6.16821 0 6.25035 0C6.33248 0 6.41381 0.0161892 6.48969 0.0476418C6.56556 0.0790945 6.63449 0.125194 6.69254 0.183304L12.3175 5.8083C12.3756 5.86635 12.4217 5.93528 12.4532 6.01115C12.4847 6.08703 12.5008 6.16836 12.5008 6.25049C12.5008 6.33263 12.4847 6.41396 12.4532 6.48983C12.4217 6.5657 12.3756 6.63463 12.3175 6.69268Z" },
139
+ "question": { viewBox: "0 0 16.25 16.25", d: "M9.0625 12.1875C9.0625 12.3729 9.00752 12.5542 8.90451 12.7083C8.80149 12.8625 8.65507 12.9827 8.48377 13.0536C8.31246 13.1246 8.12396 13.1432 7.94211 13.107C7.76025 13.0708 7.5932 12.9815 7.46209 12.8504C7.33098 12.7193 7.24169 12.5523 7.20552 12.3704C7.16934 12.1885 7.18791 12 7.25887 11.8287C7.32982 11.6574 7.44999 11.511 7.60416 11.408C7.75833 11.305 7.93958 11.25 8.125 11.25C8.37364 11.25 8.6121 11.3488 8.78792 11.5246C8.96373 11.7004 9.0625 11.9389 9.0625 12.1875ZM8.125 3.75C6.40157 3.75 5 5.01172 5 6.5625V6.875C5 7.04076 5.06585 7.19973 5.18306 7.31694C5.30027 7.43415 5.45924 7.5 5.625 7.5C5.79076 7.5 5.94973 7.43415 6.06695 7.31694C6.18416 7.19973 6.25 7.04076 6.25 6.875V6.5625C6.25 5.70312 7.09141 5 8.125 5C9.1586 5 10 5.70312 10 6.5625C10 7.42188 9.1586 8.125 8.125 8.125C7.95924 8.125 7.80027 8.19085 7.68306 8.30806C7.56585 8.42527 7.5 8.58424 7.5 8.75V9.375C7.5 9.54076 7.56585 9.69973 7.68306 9.81694C7.80027 9.93415 7.95924 10 8.125 10C8.29076 10 8.44974 9.93415 8.56695 9.81694C8.68416 9.69973 8.75 9.54076 8.75 9.375V9.31875C10.175 9.05703 11.25 7.92031 11.25 6.5625C11.25 5.01172 9.84844 3.75 8.125 3.75ZM16.25 8.125C16.25 9.73197 15.7735 11.3029 14.8807 12.639C13.9879 13.9752 12.719 15.0166 11.2343 15.6315C9.74966 16.2465 8.11599 16.4074 6.53989 16.0939C4.9638 15.7804 3.51606 15.0065 2.37976 13.8702C1.24346 12.7339 0.469628 11.2862 0.156123 9.71011C-0.157382 8.13401 0.00352043 6.50035 0.618482 5.0157C1.23344 3.53105 2.27485 2.2621 3.611 1.36931C4.94714 0.476523 6.51803 0 8.125 0C10.2792 0.00227486 12.3445 0.85903 13.8677 2.38227C15.391 3.90551 16.2477 5.97081 16.25 8.125ZM15 8.125C15 6.76525 14.5968 5.43604 13.8414 4.30545C13.0859 3.17487 12.0122 2.29368 10.756 1.77333C9.49971 1.25298 8.11738 1.11683 6.78376 1.3821C5.45014 1.64737 4.22513 2.30215 3.26364 3.26364C2.30216 4.22513 1.64738 5.45013 1.3821 6.78375C1.11683 8.11737 1.25298 9.49971 1.77333 10.7559C2.29368 12.0122 3.17487 13.0859 4.30546 13.8414C5.43605 14.5968 6.76526 15 8.125 15C9.94773 14.9979 11.6952 14.2729 12.9841 12.9841C14.2729 11.6952 14.9979 9.94773 15 8.125Z" },
140
+ "caret-up": { viewBox: "0 0 13.7508 7.50098", d: "M13.5675 7.31768C13.5095 7.37579 13.4406 7.42189 13.3647 7.45334C13.2888 7.48479 13.2075 7.50098 13.1253 7.50098C13.0432 7.50098 12.9619 7.48479 12.886 7.45334C12.8101 7.42189 12.7412 7.37579 12.6832 7.31768L6.87535 1.50909L1.06753 7.31768C0.95026 7.43495 0.7912 7.50084 0.625347 7.50084C0.459495 7.50084 0.300435 7.43495 0.18316 7.31768C0.0658846 7.2004 3.26935e-09 7.04134 0 6.87549C-3.26935e-09 6.70964 0.0658846 6.55058 0.18316 6.4333L6.43316 0.183304C6.49121 0.125194 6.56014 0.0790947 6.63601 0.047642C6.71188 0.0161893 6.79321 0 6.87535 0C6.95748 0 7.03881 0.0161893 7.11469 0.047642C7.19056 0.0790947 7.25949 0.125194 7.31754 0.183304L13.5675 6.4333C13.6256 6.49135 13.6717 6.56028 13.7032 6.63615C13.7347 6.71203 13.7508 6.79336 13.7508 6.87549C13.7508 6.95763 13.7347 7.03896 13.7032 7.11483C13.6717 7.1907 13.6256 7.25963 13.5675 7.31768Z" },
141
+ "stop 1": { viewBox: "0 0 13.75 13.75", d: "M12.5 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H12.5C12.8315 13.75 13.1495 13.6183 13.3839 13.3839C13.6183 13.1495 13.75 12.8315 13.75 12.5V1.25C13.75 0.918479 13.6183 0.600537 13.3839 0.366116C13.1495 0.131696 12.8315 0 12.5 0ZM12.5 12.5H1.25V1.25H12.5V12.5Z" },
142
+ "pause 1": { viewBox: "0 0 13.75 13.75", d: "M13.75 0.625V3.75C13.75 3.91576 13.6842 4.07473 13.5669 4.19194C13.4497 4.30915 13.2908 4.375 13.125 4.375C12.9592 4.375 12.8003 4.30915 12.6831 4.19194C12.5658 4.07473 12.5 3.91576 12.5 3.75V1.25H10C9.83424 1.25 9.67527 1.18415 9.55806 1.06694C9.44085 0.949731 9.375 0.79076 9.375 0.625C9.375 0.45924 9.44085 0.300269 9.55806 0.183058C9.67527 0.0658481 9.83424 0 10 0H13.125C13.2908 0 13.4497 0.0658481 13.5669 0.183058C13.6842 0.300269 13.75 0.45924 13.75 0.625ZM3.75 12.5H1.25V10C1.25 9.83424 1.18415 9.67527 1.06694 9.55806C0.949731 9.44085 0.79076 9.375 0.625 9.375C0.45924 9.375 0.300269 9.44085 0.183058 9.55806C0.0658481 9.67527 0 9.83424 0 10V13.125C0 13.2908 0.0658481 13.4497 0.183058 13.5669C0.300269 13.6842 0.45924 13.75 0.625 13.75H3.75C3.91576 13.75 4.07473 13.6842 4.19194 13.5669C4.30915 13.4497 4.375 13.2908 4.375 13.125C4.375 12.9592 4.30915 12.8003 4.19194 12.6831C4.07473 12.5658 3.91576 12.5 3.75 12.5ZM13.125 9.375C12.9592 9.375 12.8003 9.44085 12.6831 9.55806C12.5658 9.67527 12.5 9.83424 12.5 10V12.5H10C9.83424 12.5 9.67527 12.5658 9.55806 12.6831C9.44085 12.8003 9.375 12.9592 9.375 13.125C9.375 13.2908 9.44085 13.4497 9.55806 13.5669C9.67527 13.6842 9.83424 13.75 10 13.75H13.125C13.2908 13.75 13.4497 13.6842 13.5669 13.5669C13.6842 13.4497 13.75 13.2908 13.75 13.125V10C13.75 9.83424 13.6842 9.67527 13.5669 9.55806C13.4497 9.44085 13.2908 9.375 13.125 9.375ZM3.75 0H0.625C0.45924 0 0.300269 0.0658481 0.183058 0.183058C0.0658481 0.300269 0 0.45924 0 0.625V3.75C0 3.91576 0.0658481 4.07473 0.183058 4.19194C0.300269 4.30915 0.45924 4.375 0.625 4.375C0.79076 4.375 0.949731 4.30915 1.06694 4.19194C1.18415 4.07473 1.25 3.91576 1.25 3.75V1.25H3.75C3.91576 1.25 4.07473 1.18415 4.19194 1.06694C4.30915 0.949731 4.375 0.79076 4.375 0.625C4.375 0.45924 4.30915 0.300269 4.19194 0.183058C4.07473 0.0658481 3.91576 0 3.75 0Z" },
143
+ "play 1": { viewBox: "0 0 13.75 13.75", d: "M8.75 4.375V0.625C8.75 0.45924 8.81585 0.300269 8.93306 0.183058C9.05027 0.0658481 9.20924 0 9.375 0C9.54076 0 9.69973 0.0658481 9.81694 0.183058C9.93415 0.300269 10 0.45924 10 0.625V3.75H13.125C13.2908 3.75 13.4497 3.81585 13.5669 3.93306C13.6842 4.05027 13.75 4.20924 13.75 4.375C13.75 4.54076 13.6842 4.69973 13.5669 4.81694C13.4497 4.93415 13.2908 5 13.125 5H9.375C9.20924 5 9.05027 4.93415 8.93306 4.81694C8.81585 4.69973 8.75 4.54076 8.75 4.375ZM4.375 8.75H0.625C0.45924 8.75 0.300269 8.81585 0.183058 8.93306C0.0658481 9.05027 0 9.20924 0 9.375C0 9.54076 0.0658481 9.69973 0.183058 9.81694C0.300269 9.93415 0.45924 10 0.625 10H3.75V13.125C3.75 13.2908 3.81585 13.4497 3.93306 13.5669C4.05027 13.6842 4.20924 13.75 4.375 13.75C4.54076 13.75 4.69973 13.6842 4.81694 13.5669C4.93415 13.4497 5 13.2908 5 13.125V9.375C5 9.20924 4.93415 9.05027 4.81694 8.93306C4.69973 8.81585 4.54076 8.75 4.375 8.75ZM13.125 8.75H9.375C9.20924 8.75 9.05027 8.81585 8.93306 8.93306C8.81585 9.05027 8.75 9.20924 8.75 9.375V13.125C8.75 13.2908 8.81585 13.4497 8.93306 13.5669C9.05027 13.6842 9.20924 13.75 9.375 13.75C9.54076 13.75 9.69973 13.6842 9.81694 13.5669C9.93415 13.4497 10 13.2908 10 13.125V10H13.125C13.2908 10 13.4497 9.93415 13.5669 9.81694C13.6842 9.69973 13.75 9.54076 13.75 9.375C13.75 9.20924 13.6842 9.05027 13.5669 8.93306C13.4497 8.81585 13.2908 8.75 13.125 8.75ZM4.375 0C4.20924 0 4.05027 0.0658481 3.93306 0.183058C3.81585 0.300269 3.75 0.45924 3.75 0.625V3.75H0.625C0.45924 3.75 0.300269 3.81585 0.183058 3.93306C0.0658481 4.05027 0 4.20924 0 4.375C0 4.54076 0.0658481 4.69973 0.183058 4.81694C0.300269 4.93415 0.45924 5 0.625 5H4.375C4.54076 5 4.69973 4.93415 4.81694 4.81694C4.93415 4.69973 5 4.54076 5 4.375V0.625C5 0.45924 4.93415 0.300269 4.81694 0.183058C4.69973 0.0658481 4.54076 0 4.375 0Z" },
144
+ "corners-out 1": { viewBox: "0 0 16 16", strokes: [
145
+ { d: "M1 5V1H5", strokeWidth: 1.75, strokeLinecap: "round" },
146
+ { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
147
+ { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
148
+ { d: "M5 15H1V11", strokeWidth: 1.75, strokeLinecap: "round" }
149
+ ] },
150
+ "corners-in 1": { viewBox: "0 0 16 16", strokes: [
151
+ { d: "M1 1H5V5", strokeWidth: 1.75, strokeLinecap: "round" },
152
+ { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
153
+ { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
154
+ { d: "M1 11H5V15", strokeWidth: 1.75, strokeLinecap: "round" }
155
+ ] },
156
+ "Volume": { viewBox: "0 0 12 14", strokes: [
157
+ { d: "M1 13L1 7", strokeWidth: 2, strokeLinecap: "round" },
158
+ { d: "M6 13L6 4", strokeWidth: 2, strokeLinecap: "round" },
159
+ { d: "M11 13L11 1", strokeWidth: 2, strokeLinecap: "round" }
160
+ ] }
161
+ };
162
+ var iconNameMap = {
163
+ "files": "files",
164
+ "books": "books",
165
+ "file-magnifying-glass": "file-magnifying-glass",
166
+ "minus": "minus",
167
+ "plus": "plus",
168
+ "arrows-in-simple": "arrows-in-simple",
169
+ "check": "check",
170
+ "caret-down": "caret-down",
171
+ "lightbulb": "lightbulb",
172
+ "chats": "chats",
173
+ "file": "file",
174
+ "folders": "folders",
175
+ "sparkle": "sparkle",
176
+ "microphone-stage": "microphone-stage",
177
+ "battery-low": "battery-low",
178
+ "microphone": "microphone",
179
+ "microphone-slash": "microphone-slash",
180
+ "play": "play",
181
+ "x": "x",
182
+ "mail": "Mail",
183
+ "pause": "pause",
184
+ "broadcast": "broadcast",
185
+ "sidebar-simple": "sidebar-simple",
186
+ "pencil-simple-line": "pencil-simple-line",
187
+ "search": "search",
188
+ "list-dashes": "list-dashes",
189
+ "brain": "brain",
190
+ "eye": "eye",
191
+ "frame": "Frame",
192
+ "arrow-up": "arrow-up",
193
+ "question": "question",
194
+ "caret-up": "caret-up",
195
+ "stop-1": "stop 1",
196
+ "pause-1": "pause 1",
197
+ "play-1": "play 1",
198
+ "corners-out-1": "corners-out 1",
199
+ "corners-in-1": "corners-in 1",
200
+ "volume": "Volume"
201
+ };
202
+ var iconRegistry = Object.fromEntries(
203
+ Object.entries(iconNameMap).map(([canonicalName, rawName]) => [
204
+ canonicalName,
205
+ rawIconRegistry[rawName]
206
+ ])
207
+ );
208
+ var iconNames = Object.keys(iconNameMap);
209
+
210
+ // src/components/icon.tsx
211
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
212
+ var iconSizeOptions = ["xs", "sm", "md", "lg", "xl"];
213
+ var iconColorOptions = [
214
+ "current",
215
+ "foreground",
216
+ "muted-foreground",
217
+ "primary",
218
+ "primary-foreground",
219
+ "secondary-foreground",
220
+ "accent",
221
+ "accent-foreground",
222
+ "destructive",
223
+ "destructive-foreground",
224
+ "success",
225
+ "success-foreground",
226
+ "warning",
227
+ "warning-foreground",
228
+ "neutral-50",
229
+ "neutral-100",
230
+ "neutral-200",
231
+ "neutral-600",
232
+ "neutral-700",
233
+ "neutral-800",
234
+ "neutral-900",
235
+ "tag-navy",
236
+ "tag-blue",
237
+ "tag-violet",
238
+ "tag-magenta",
239
+ "tag-red",
240
+ "tag-brick",
241
+ "tag-sand",
242
+ "tag-green",
243
+ "agent-pink",
244
+ "agent-sky",
245
+ "agent-lavender",
246
+ "agent-mint",
247
+ "agent-green"
248
+ ];
249
+ var iconSizeScale = {
250
+ xs: 12,
251
+ sm: 16,
252
+ md: 20,
253
+ lg: 24,
254
+ xl: 32
255
+ };
256
+ var iconColorScale = {
257
+ foreground: "hsl(var(--sofya-foreground))",
258
+ "muted-foreground": "hsl(var(--sofya-muted-foreground))",
259
+ primary: "hsl(var(--sofya-primary))",
260
+ "primary-foreground": "hsl(var(--sofya-primary-foreground))",
261
+ "secondary-foreground": "hsl(var(--sofya-secondary-foreground))",
262
+ accent: "hsl(var(--sofya-accent))",
263
+ "accent-foreground": "hsl(var(--sofya-accent-foreground))",
264
+ destructive: "hsl(var(--sofya-destructive))",
265
+ "destructive-foreground": "hsl(var(--sofya-destructive-foreground))",
266
+ success: "hsl(var(--sofya-success))",
267
+ "success-foreground": "hsl(var(--sofya-success-foreground))",
268
+ warning: "hsl(var(--sofya-warning))",
269
+ "warning-foreground": "hsl(var(--sofya-warning-foreground))",
270
+ "neutral-50": "var(--sofya-neutral-50)",
271
+ "neutral-100": "var(--sofya-neutral-100)",
272
+ "neutral-200": "var(--sofya-neutral-200)",
273
+ "neutral-600": "var(--sofya-neutral-600)",
274
+ "neutral-700": "var(--sofya-neutral-700)",
275
+ "neutral-800": "var(--sofya-neutral-800)",
276
+ "neutral-900": "var(--sofya-neutral-900)",
277
+ "tag-navy": "var(--sofya-tag-navy)",
278
+ "tag-blue": "var(--sofya-tag-blue)",
279
+ "tag-violet": "var(--sofya-tag-violet)",
280
+ "tag-magenta": "var(--sofya-tag-magenta)",
281
+ "tag-red": "var(--sofya-tag-red)",
282
+ "tag-brick": "var(--sofya-tag-brick)",
283
+ "tag-sand": "var(--sofya-tag-sand)",
284
+ "tag-green": "var(--sofya-tag-green)",
285
+ "agent-pink": "var(--sofya-agent-pink)",
286
+ "agent-sky": "var(--sofya-agent-sky)",
287
+ "agent-lavender": "var(--sofya-agent-lavender)",
288
+ "agent-mint": "var(--sofya-agent-mint)",
289
+ "agent-green": "var(--sofya-agent-green)"
290
+ };
291
+ function resolveIconSize(size) {
292
+ return typeof size === "number" ? size : iconSizeScale[size];
293
+ }
294
+ function resolveIconColor(color) {
295
+ if (!color || color === "current") {
296
+ return void 0;
297
+ }
298
+ return iconColorScale[color];
299
+ }
300
+ var Icon = React2.forwardRef(function Icon2({
301
+ name,
302
+ size = "md",
303
+ color = "current",
304
+ title,
305
+ strokeWidth = 2,
306
+ className,
307
+ style,
308
+ ...props
309
+ }, ref) {
310
+ const icon = iconRegistry[name];
311
+ const titleId = React2.useId();
312
+ const dimension = resolveIconSize(size);
313
+ const resolvedColor = resolveIconColor(color);
314
+ const resolvedStyle = resolvedColor ? { ...style, color: resolvedColor } : style;
315
+ const fillPath = "d" in icon ? icon.d : void 0;
316
+ const strokePaths = "strokes" in icon ? icon.strokes : void 0;
317
+ return /* @__PURE__ */ jsxs(
318
+ "svg",
319
+ {
320
+ ref,
321
+ xmlns: "http://www.w3.org/2000/svg",
322
+ viewBox: icon.viewBox,
323
+ className: cn("inline-block shrink-0 align-middle", className),
324
+ fill: "none",
325
+ role: title ? "img" : void 0,
326
+ "aria-hidden": title ? void 0 : true,
327
+ "aria-labelledby": title ? titleId : void 0,
328
+ focusable: "false",
329
+ ...props,
330
+ width: dimension,
331
+ height: dimension,
332
+ style: resolvedStyle,
333
+ children: [
334
+ title ? /* @__PURE__ */ jsx2("title", { id: titleId, children: title }) : null,
335
+ fillPath ? /* @__PURE__ */ jsx2("path", { d: fillPath, fill: "currentColor" }) : null,
336
+ strokePaths?.map((path, index) => /* @__PURE__ */ jsx2(
337
+ "path",
338
+ {
339
+ d: path.d,
340
+ fill: "none",
341
+ stroke: "currentColor",
342
+ strokeWidth: path.strokeWidth ?? strokeWidth,
343
+ strokeLinecap: path.strokeLinecap ?? "round",
344
+ strokeLinejoin: "round"
345
+ },
346
+ `${name}-${index}`
347
+ ))
348
+ ]
349
+ }
350
+ );
351
+ });
352
+ Icon.displayName = "Icon";
353
+
354
+ // src/components/text.tsx
355
+ import * as React3 from "react";
356
+ import { jsx as jsx3 } from "react/jsx-runtime";
357
+ var textSizeOptions = ["h1", "h2", "h3", "h4", "body", "tiny"];
358
+ var textVariantOptions = ["default", "gradient", "shiny", "split"];
359
+ var textSplitTypeOptions = ["chars", "words", "words, chars"];
360
+ var defaultElements = {
361
+ h1: "h1",
362
+ h2: "h2",
363
+ h3: "h3",
364
+ h4: "h4",
365
+ body: "p",
366
+ tiny: "span"
367
+ };
368
+ var textSizeStyles = Object.fromEntries(
369
+ textSizeOptions.map((size) => [
370
+ size,
371
+ {
372
+ fontFamily: `var(--sofya-text-${size}-font-family)`,
373
+ fontSize: `var(--sofya-text-${size}-font-size)`,
374
+ fontWeight: `var(--sofya-text-${size}-font-weight)`,
375
+ lineHeight: `var(--sofya-text-${size}-line-height)`,
376
+ letterSpacing: `var(--sofya-text-${size}-letter-spacing)`
377
+ }
378
+ ])
379
+ );
380
+ var textVariantStyles = {
381
+ default: {},
382
+ gradient: {
383
+ backgroundImage: "linear-gradient(90deg, hsl(var(--sofya-button-gradient-from)) 0%, hsl(var(--sofya-button-gradient-to)) 100%)",
384
+ backgroundClip: "text",
385
+ WebkitBackgroundClip: "text",
386
+ color: "transparent",
387
+ WebkitTextFillColor: "transparent"
388
+ },
389
+ shiny: {},
390
+ split: {}
391
+ };
392
+ var textVariantClassNames = {
393
+ default: void 0,
394
+ gradient: "sofya-gradient-motion inline-block",
395
+ shiny: "sofya-shiny-text",
396
+ split: "whitespace-normal break-words"
397
+ };
398
+ var graphemeSegmenter = typeof Intl !== "undefined" && "Segmenter" in Intl ? new Intl.Segmenter(void 0, { granularity: "grapheme" }) : null;
399
+ function splitIntoGraphemes(value) {
400
+ if (graphemeSegmenter) {
401
+ return Array.from(graphemeSegmenter.segment(value), (segment) => segment.segment);
402
+ }
403
+ return Array.from(value);
404
+ }
405
+ function splitIntoWords(value) {
406
+ return value.split(/(\s+)/).filter(Boolean);
407
+ }
408
+ function isWhitespace(value) {
409
+ return /^\s+$/.test(value);
410
+ }
411
+ function assignForwardedRef(ref, node) {
412
+ if (typeof ref === "function") {
413
+ ref(node);
414
+ return;
415
+ }
416
+ if (ref) {
417
+ ref.current = node;
418
+ }
419
+ }
420
+ function isTextContent(children) {
421
+ return typeof children === "string" || typeof children === "number";
422
+ }
423
+ var Text = React3.forwardRef(function Text2({
424
+ as,
425
+ children,
426
+ className,
427
+ onSplitAnimationComplete,
428
+ size = "body",
429
+ splitDelay = 50,
430
+ splitRootMargin = "-100px",
431
+ splitThreshold = 0.1,
432
+ splitType = "chars",
433
+ style,
434
+ variant = "default",
435
+ ...props
436
+ }, ref) {
437
+ const Component = as ?? defaultElements[size];
438
+ const internalRef = React3.useRef(null);
439
+ const splitText = typeof children === "string" || typeof children === "number" ? String(children) : null;
440
+ const shouldSplit = variant === "split" && Boolean(splitText);
441
+ const [isSplitVisible, setIsSplitVisible] = React3.useState(false);
442
+ const hasAnimatedSplitRef = React3.useRef(false);
443
+ React3.useEffect(() => {
444
+ if (!shouldSplit) {
445
+ setIsSplitVisible(false);
446
+ hasAnimatedSplitRef.current = false;
447
+ return;
448
+ }
449
+ setIsSplitVisible(false);
450
+ hasAnimatedSplitRef.current = false;
451
+ }, [shouldSplit, splitText, splitDelay, splitRootMargin, splitThreshold, splitType]);
452
+ React3.useEffect(() => {
453
+ if (!shouldSplit || !internalRef.current) {
454
+ return;
455
+ }
456
+ if (typeof IntersectionObserver === "undefined") {
457
+ hasAnimatedSplitRef.current = true;
458
+ setIsSplitVisible(true);
459
+ return;
460
+ }
461
+ const element = internalRef.current;
462
+ const observer = new IntersectionObserver(
463
+ (entries) => {
464
+ const [entry] = entries;
465
+ if (!entry?.isIntersecting || hasAnimatedSplitRef.current) {
466
+ return;
467
+ }
468
+ hasAnimatedSplitRef.current = true;
469
+ setIsSplitVisible(true);
470
+ observer.disconnect();
471
+ },
472
+ {
473
+ rootMargin: splitRootMargin,
474
+ threshold: splitThreshold
475
+ }
476
+ );
477
+ observer.observe(element);
478
+ return () => observer.disconnect();
479
+ }, [shouldSplit, splitRootMargin, splitThreshold]);
480
+ React3.useEffect(() => {
481
+ if (!shouldSplit || !isSplitVisible || !onSplitAnimationComplete || !splitText) {
482
+ return;
483
+ }
484
+ const tokenCount = splitType === "words" ? splitIntoWords(splitText).filter((token) => !isWhitespace(token)).length : splitIntoGraphemes(splitText).filter((token) => !isWhitespace(token)).length;
485
+ const totalDuration = 250 + Math.max(tokenCount - 1, 0) * splitDelay;
486
+ const timeoutId = window.setTimeout(() => {
487
+ onSplitAnimationComplete();
488
+ }, totalDuration);
489
+ return () => window.clearTimeout(timeoutId);
490
+ }, [isSplitVisible, onSplitAnimationComplete, shouldSplit, splitDelay, splitText, splitType]);
491
+ const setRefs = (node) => {
492
+ internalRef.current = node;
493
+ assignForwardedRef(ref, node);
494
+ };
495
+ let splitAnimationIndex = 0;
496
+ const renderSplitSegment = (token, key) => {
497
+ if (isWhitespace(token)) {
498
+ return /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "whitespace-pre", children: token }, key);
499
+ }
500
+ const currentIndex = splitAnimationIndex;
501
+ splitAnimationIndex += 1;
502
+ return /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "inline-block overflow-hidden align-baseline", children: /* @__PURE__ */ jsx3(
503
+ "span",
504
+ {
505
+ className: "inline-block will-change-transform",
506
+ style: {
507
+ opacity: isSplitVisible ? 1 : 0,
508
+ transform: isSplitVisible ? "translate3d(0, 0, 0)" : "translate3d(0, 40px, 0)",
509
+ transitionDelay: `${currentIndex * splitDelay}ms`,
510
+ transitionDuration: "var(--sofya-motion-duration)",
511
+ transitionProperty: "opacity, transform",
512
+ transitionTimingFunction: "var(--sofya-motion-easing)"
513
+ },
514
+ children: token
515
+ }
516
+ ) }, key);
517
+ };
518
+ const renderSplitChildren = () => {
519
+ if (!splitText) {
520
+ return children;
521
+ }
522
+ if (splitType === "words") {
523
+ return splitIntoWords(splitText).map(
524
+ (token, index) => renderSplitSegment(token, `split-word-${index}`)
525
+ );
526
+ }
527
+ if (splitType === "words, chars") {
528
+ return splitIntoWords(splitText).map((token, wordIndex) => {
529
+ if (isWhitespace(token)) {
530
+ return /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "whitespace-pre", children: token }, `split-space-${wordIndex}`);
531
+ }
532
+ return /* @__PURE__ */ jsx3(
533
+ "span",
534
+ {
535
+ "aria-hidden": "true",
536
+ className: "inline-block whitespace-pre",
537
+ children: splitIntoGraphemes(token).map(
538
+ (character, charIndex) => renderSplitSegment(character, `split-char-${wordIndex}-${charIndex}`)
539
+ )
540
+ },
541
+ `split-word-${wordIndex}`
542
+ );
543
+ });
544
+ }
545
+ return splitIntoGraphemes(splitText).map(
546
+ (token, index) => renderSplitSegment(token, `split-char-${index}`)
547
+ );
548
+ };
549
+ return /* @__PURE__ */ jsx3(
550
+ Component,
551
+ {
552
+ ref: setRefs,
553
+ "data-text-size": size,
554
+ "data-text-variant": variant,
555
+ "aria-label": shouldSplit ? props["aria-label"] ?? splitText ?? void 0 : props["aria-label"],
556
+ className: cn("m-0 text-foreground", textVariantClassNames[variant], className),
557
+ style: { ...textSizeStyles[size], ...textVariantStyles[variant], ...style },
558
+ ...props,
559
+ children: shouldSplit ? renderSplitChildren() : children
560
+ }
561
+ );
562
+ });
563
+ function renderTextContent(children, { as, className, size = "body", style, variant = "default" } = {}) {
564
+ return isTextContent(children) ? /* @__PURE__ */ jsx3(Text, { as, className, size, style, variant, children }) : children;
565
+ }
566
+
567
+ // src/components/accordion.tsx
568
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
569
+ var Accordion = AccordionPrimitive.Root;
570
+ var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
571
+ AccordionPrimitive.Item,
572
+ {
573
+ ref,
574
+ className: cn(
575
+ "group/accordion-item border-b border-border bg-transparent text-foreground",
576
+ className
577
+ ),
578
+ ...props
579
+ }
580
+ ));
581
+ AccordionItem.displayName = AccordionPrimitive.Item.displayName;
582
+ var AccordionTrigger = React4.forwardRef(({ className, children, indicator, ...props }, ref) => /* @__PURE__ */ jsx4(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs2(
583
+ AccordionPrimitive.Trigger,
584
+ {
585
+ ref,
586
+ className: cn(
587
+ "sofya-accordion-trigger flex flex-1 items-center justify-between gap-4 py-4 text-left text-[14px] font-medium leading-6 text-foreground transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
588
+ className
589
+ ),
590
+ ...props,
591
+ children: [
592
+ /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1", children: renderTextContent(children, {
593
+ as: "span",
594
+ className: "block text-foreground",
595
+ size: "body",
596
+ style: {
597
+ fontWeight: 500,
598
+ lineHeight: "24px"
599
+ }
600
+ }) }),
601
+ /* @__PURE__ */ jsx4(
602
+ "span",
603
+ {
604
+ "aria-hidden": "true",
605
+ className: cn(
606
+ "sofya-accordion-indicator flex h-5 w-5 shrink-0 items-center justify-center text-muted-foreground transition-transform duration-sofya ease-sofya"
607
+ ),
608
+ children: indicator ?? /* @__PURE__ */ jsx4(Icon, { name: "caret-down", size: 12 })
609
+ }
610
+ )
611
+ ]
612
+ }
613
+ ) }));
614
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
615
+ var AccordionContent = React4.forwardRef(({ className, children, contentClassName, ...props }, ref) => /* @__PURE__ */ jsx4(
616
+ AccordionPrimitive.Content,
617
+ {
618
+ ref,
619
+ className: cn("sofya-accordion-content overflow-hidden text-sm text-muted-foreground", className),
620
+ ...props,
621
+ children: /* @__PURE__ */ jsx4("div", { className: cn("pb-4 pr-10", contentClassName), children: renderTextContent(children, {
622
+ className: "text-muted-foreground"
623
+ }) })
624
+ }
625
+ ));
626
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
627
+
628
+ // src/components/alert.tsx
629
+ import * as React5 from "react";
630
+ import { cva as cva2 } from "class-variance-authority";
631
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
632
+ var alertToneOptions = [
633
+ "default",
634
+ "info",
635
+ "success",
636
+ "warning",
637
+ "destructive"
638
+ ];
639
+ var alertSizeOptions = ["sm", "default", "lg"];
640
+ var alertVariants = cva2("flex w-full items-start border", {
641
+ variants: {
642
+ size: {
643
+ sm: "gap-2 rounded-[14px] px-4 py-2",
644
+ default: "gap-4 rounded-[16px] px-4 py-4",
645
+ lg: "gap-4 rounded-[18px] px-6 py-4"
646
+ },
647
+ tone: {
648
+ default: "border-[#D9E2FA] bg-[#F8FAFF] text-[var(--sofya-tag-navy)]",
649
+ info: "border-[#D6E6FF] bg-[#F4F8FF] text-[var(--sofya-tag-blue)]",
650
+ success: "border-[#CDEFD8] bg-[#F1FBF5] text-[var(--sofya-tag-green)]",
651
+ warning: "border-[#F0E2C4] bg-[#FCF8F0] text-[var(--sofya-tag-sand)]",
652
+ destructive: "border-[#F0D5D9] bg-[#FFF5F6] text-[var(--sofya-tag-red)]"
653
+ }
654
+ },
655
+ defaultVariants: {
656
+ size: "default",
657
+ tone: "default"
658
+ }
659
+ });
660
+ var toneIconMap = {
661
+ info: "lightbulb",
662
+ success: "check",
663
+ warning: "question",
664
+ destructive: "x"
665
+ };
666
+ var Alert = React5.forwardRef(function Alert2({
667
+ children,
668
+ className,
669
+ icon,
670
+ role,
671
+ showToneIcon = true,
672
+ size,
673
+ tone,
674
+ ...props
675
+ }, ref) {
676
+ const resolvedSize = size ?? "default";
677
+ const resolvedTone = tone ?? "default";
678
+ const resolvedRole = role ?? (resolvedTone === "warning" || resolvedTone === "destructive" ? "alert" : "status");
679
+ const toneIconName = resolvedTone !== "default" ? toneIconMap[resolvedTone] : void 0;
680
+ const resolvedIcon = icon ?? (showToneIcon && toneIconName ? /* @__PURE__ */ jsx5(Icon, { name: toneIconName, size: 16, "aria-hidden": "true" }) : null);
681
+ return /* @__PURE__ */ jsxs3(
682
+ "div",
683
+ {
684
+ ref,
685
+ "data-size": resolvedSize,
686
+ "data-slot": "alert",
687
+ "data-tone": resolvedTone,
688
+ role: resolvedRole,
689
+ className: cn(alertVariants({ size: resolvedSize, tone: resolvedTone }), className),
690
+ ...props,
691
+ children: [
692
+ resolvedIcon ? /* @__PURE__ */ jsx5(
693
+ "span",
694
+ {
695
+ "data-slot": "alert-icon",
696
+ className: "mt-0 inline-flex h-4 w-4 shrink-0 items-center justify-center text-current [&>svg]:h-4 [&>svg]:w-4",
697
+ children: resolvedIcon
698
+ }
699
+ ) : null,
700
+ /* @__PURE__ */ jsx5("div", { "data-slot": "alert-content", className: "flex min-w-0 flex-1 flex-col", children })
701
+ ]
702
+ }
703
+ );
704
+ });
705
+ var AlertTitle = React5.forwardRef(
706
+ function AlertTitle2({ children, className, ...props }, ref) {
707
+ return /* @__PURE__ */ jsx5(
708
+ "div",
709
+ {
710
+ ref,
711
+ "data-slot": "alert-title",
712
+ className: cn("text-current", className),
713
+ ...props,
714
+ children: renderTextContent(children, {
715
+ as: "span",
716
+ className: "block text-current",
717
+ size: "h4",
718
+ style: {
719
+ fontWeight: 500,
720
+ lineHeight: "22px",
721
+ letterSpacing: "-0.02em"
722
+ }
723
+ })
724
+ }
725
+ );
726
+ }
727
+ );
728
+ var AlertDescription = React5.forwardRef(function AlertDescription2({ children, className, ...props }, ref) {
729
+ return /* @__PURE__ */ jsx5(
730
+ "div",
731
+ {
732
+ ref,
733
+ "data-slot": "alert-description",
734
+ className: cn("[&:not(:first-child)]:mt-2 text-current/80", className),
735
+ ...props,
736
+ children: renderTextContent(children, {
737
+ as: "span",
738
+ className: "block text-current/80",
739
+ size: "body",
740
+ style: {
741
+ lineHeight: "24px"
742
+ }
743
+ })
744
+ }
745
+ );
746
+ });
747
+ Alert.displayName = "Alert";
748
+ AlertTitle.displayName = "AlertTitle";
749
+ AlertDescription.displayName = "AlertDescription";
750
+
751
+ // src/components/badge.tsx
752
+ import { cva as cva3 } from "class-variance-authority";
753
+ import { jsx as jsx6 } from "react/jsx-runtime";
754
+ var badgeVariantOptions = [
755
+ "default",
756
+ "secondary",
757
+ "outline",
758
+ "success",
759
+ "warning",
760
+ "destructive",
761
+ "pill"
762
+ ];
763
+ var badgeAlertOptions = ["default", "medium", "high"];
764
+ var badgePillToneOptions = ["neutral", "danger"];
765
+ var badgeVariants = cva3(
766
+ "inline-flex min-h-[34px] items-center justify-center whitespace-nowrap rounded-[5px] px-4 py-2 text-[14px] font-semibold uppercase leading-none tracking-[0.08em] transition-colors duration-sofya ease-sofya",
767
+ {
768
+ variants: {
769
+ variant: {
770
+ default: "border-transparent bg-[rgba(123,93,193,0.1)] text-[color:var(--sofya-tag-violet)]",
771
+ secondary: "border-transparent bg-secondary text-secondary-foreground",
772
+ outline: "border border-border bg-background text-foreground",
773
+ success: "border-transparent bg-success/10 text-success",
774
+ warning: "border-transparent bg-warning/10 text-warning",
775
+ destructive: "border-transparent bg-destructive/10 text-destructive",
776
+ pill: ""
777
+ }
778
+ },
779
+ defaultVariants: {
780
+ variant: "default"
781
+ }
782
+ }
783
+ );
784
+ var badgeAlertVariants = cva3(
785
+ "inline-flex min-h-[34px] items-center justify-center whitespace-nowrap rounded-[5px] px-4 py-2 text-[14px] font-semibold uppercase leading-none tracking-[0.08em] transition-colors duration-sofya ease-sofya",
786
+ {
787
+ variants: {
788
+ alert: {
789
+ default: "border-transparent bg-[rgba(123,93,193,0.1)] text-[color:var(--sofya-tag-violet)]",
790
+ medium: "border-transparent bg-[#F2F1CE] text-[color:var(--sofya-tag-sand)]",
791
+ high: "border-transparent bg-[#F2CED5] text-[color:var(--sofya-tag-red)]"
792
+ }
793
+ },
794
+ defaultVariants: {
795
+ alert: "default"
796
+ }
797
+ }
798
+ );
799
+ var badgePillVariants = cva3(
800
+ "inline-flex h-[30px] items-center justify-center whitespace-nowrap rounded-full border px-4 py-2 text-[12px] font-semibold leading-none tracking-normal transition-colors duration-sofya ease-sofya",
801
+ {
802
+ variants: {
803
+ tone: {
804
+ neutral: "border-[rgba(226,232,240,0.5)] bg-[#F8FAFC] text-[#202021]",
805
+ danger: "border-[rgba(254,226,226,0.5)] bg-[#FFE7E3] text-[#D74F36]"
806
+ }
807
+ },
808
+ defaultVariants: {
809
+ tone: "neutral"
810
+ }
811
+ }
812
+ );
813
+ function Badge({ className, variant, alert, pillTone, ...props }) {
814
+ const badgeClassName = variant === "pill" ? badgePillVariants({ tone: pillTone }) : alert ? badgeAlertVariants({ alert }) : badgeVariants({ variant });
815
+ return /* @__PURE__ */ jsx6("div", { className: cn(badgeClassName, className), ...props });
816
+ }
817
+
818
+ // src/components/button.tsx
819
+ import * as React6 from "react";
820
+ import { Slot } from "@radix-ui/react-slot";
821
+ import { cva as cva4 } from "class-variance-authority";
822
+ import { motion, useReducedMotion } from "motion/react";
823
+
824
+ // src/components/button-language-flags.ts
825
+ function createFlagDataUri(svg) {
826
+ return `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;
827
+ }
828
+ var buttonLanguageLocaleOptions = ["pt-BR", "en-US", "es-ES"];
829
+ var buttonLanguageLabels = {
830
+ "pt-BR": "Portugu\xEAs (Brasil)",
831
+ "en-US": "English (United States)",
832
+ "es-ES": "Espa\xF1ol (Espa\xF1a)"
833
+ };
834
+ var buttonLanguageFlagSrc = {
835
+ "en-US": createFlagDataUri(`
836
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
837
+ <defs>
838
+ <clipPath id="circle">
839
+ <circle cx="50" cy="50" r="50" />
840
+ </clipPath>
841
+ <pattern id="stars" width="20" height="20" patternUnits="userSpaceOnUse">
842
+ <rect width="20" height="20" fill="#1F4A87" />
843
+ <g fill="#FFFFFF">
844
+ <circle cx="5" cy="5" r="1.6" />
845
+ <circle cx="15" cy="5" r="1.6" />
846
+ <circle cx="10" cy="12" r="1.6" />
847
+ <circle cx="5" cy="19" r="1.6" />
848
+ <circle cx="15" cy="19" r="1.6" />
849
+ </g>
850
+ </pattern>
851
+ </defs>
852
+ <g clip-path="url(#circle)">
853
+ <rect width="100" height="100" fill="#FFFFFF" />
854
+ <g fill="#B22234">
855
+ <rect y="0" width="100" height="8" />
856
+ <rect y="15" width="100" height="8" />
857
+ <rect y="30" width="100" height="8" />
858
+ <rect y="45" width="100" height="8" />
859
+ <rect y="60" width="100" height="8" />
860
+ <rect y="75" width="100" height="8" />
861
+ <rect y="90" width="100" height="10" />
862
+ </g>
863
+ <rect width="52" height="52" fill="url(#stars)" />
864
+ </g>
865
+ </svg>
866
+ `),
867
+ "pt-BR": createFlagDataUri(`
868
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
869
+ <defs>
870
+ <clipPath id="circle">
871
+ <circle cx="50" cy="50" r="50" />
872
+ </clipPath>
873
+ </defs>
874
+ <g clip-path="url(#circle)">
875
+ <rect width="100" height="100" fill="#229E45" />
876
+ <polygon points="50,16 84,50 50,84 16,50" fill="#F7D046" />
877
+ <circle cx="50" cy="50" r="18" fill="#244C9A" />
878
+ <path d="M30 47C41 41 59 41 70 47" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" />
879
+ </g>
880
+ </svg>
881
+ `),
882
+ "es-ES": createFlagDataUri(`
883
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
884
+ <defs>
885
+ <clipPath id="circle">
886
+ <circle cx="50" cy="50" r="50" />
887
+ </clipPath>
888
+ </defs>
889
+ <g clip-path="url(#circle)">
890
+ <rect width="100" height="100" fill="#AA151B" />
891
+ <rect y="25" width="100" height="50" fill="#F1BF00" />
892
+ <rect x="26" y="38" width="10" height="24" rx="2" fill="#AA151B" />
893
+ <rect x="24" y="36" width="14" height="4" rx="2" fill="#AA151B" />
894
+ <rect x="24" y="60" width="14" height="4" rx="2" fill="#AA151B" />
895
+ </g>
896
+ </svg>
897
+ `)
898
+ };
899
+ var dropdownLanguageFlagSrc = {
900
+ "en-US": createFlagDataUri(`
901
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12">
902
+ <rect width="16" height="12" fill="#FFFFFF" />
903
+ <rect width="16" height="1" y="0" fill="#FF3131" />
904
+ <rect width="16" height="1" y="2" fill="#FF3131" />
905
+ <rect width="16" height="1" y="4" fill="#FF3131" />
906
+ <rect width="16" height="1" y="6" fill="#FF3131" />
907
+ <rect width="16" height="1" y="8" fill="#FF3131" />
908
+ <rect width="16" height="1" y="10" fill="#FF3131" />
909
+ <rect width="7" height="5" fill="#3C5AA6" />
910
+ <g fill="#FFFFFF">
911
+ <circle cx="1.2" cy="1.1" r="0.32" />
912
+ <circle cx="3" cy="1.1" r="0.32" />
913
+ <circle cx="4.8" cy="1.1" r="0.32" />
914
+ <circle cx="6.2" cy="1.1" r="0.32" />
915
+ <circle cx="2.1" cy="2.5" r="0.32" />
916
+ <circle cx="3.9" cy="2.5" r="0.32" />
917
+ <circle cx="5.7" cy="2.5" r="0.32" />
918
+ <circle cx="1.2" cy="3.9" r="0.32" />
919
+ <circle cx="3" cy="3.9" r="0.32" />
920
+ <circle cx="4.8" cy="3.9" r="0.32" />
921
+ <circle cx="6.2" cy="3.9" r="0.32" />
922
+ </g>
923
+ </svg>
924
+ `),
925
+ "pt-BR": createFlagDataUri(`
926
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12">
927
+ <rect width="16" height="12" fill="#009933" />
928
+ <polygon points="8,1.4 13.3,6 8,10.6 2.7,6" fill="#FFD221" />
929
+ <circle cx="8" cy="6" r="2.25" fill="#2E42A5" />
930
+ <path d="M5.7 5.65C7.05 4.9 8.95 4.9 10.3 5.65" fill="none" stroke="#F7FCFF" stroke-width="0.6" stroke-linecap="round" />
931
+ </svg>
932
+ `),
933
+ "es-ES": createFlagDataUri(`
934
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12">
935
+ <rect width="16" height="12" fill="#C51918" />
936
+ <rect y="2.3" width="16" height="7.4" fill="#FFC034" />
937
+ <rect x="3" y="4" width="1.2" height="3.6" rx="0.2" fill="#AD1619" />
938
+ <rect x="2.7" y="3.6" width="1.8" height="0.6" rx="0.2" fill="#C88A02" />
939
+ <rect x="2.7" y="7.4" width="1.8" height="0.6" rx="0.2" fill="#C88A02" />
940
+ <circle cx="3.6" cy="5.8" r="0.4" fill="#005BBF" />
941
+ <circle cx="3.6" cy="5.8" r="0.18" fill="#F1F9FF" />
942
+ </svg>
943
+ `)
944
+ };
945
+
946
+ // src/components/button.tsx
947
+ import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
948
+ var buttonVariantOptions = [
949
+ "default",
950
+ "gradient",
951
+ "dropdown",
952
+ "icon",
953
+ "language",
954
+ "secondary",
955
+ "outline",
956
+ "ghost",
957
+ "destructive"
958
+ ];
959
+ var buttonSizeOptions = ["default", "sm", "lg", "icon"];
960
+ var buttonRippleVariantClasses = {
961
+ default: "bg-white/82 mix-blend-screen",
962
+ gradient: "bg-white/80 mix-blend-screen",
963
+ dropdown: "bg-[#3A63E0]/36",
964
+ icon: "bg-primary/34",
965
+ language: "bg-white/76 mix-blend-screen",
966
+ secondary: "bg-primary/30",
967
+ outline: "bg-primary/32",
968
+ ghost: "bg-primary/28",
969
+ destructive: "bg-white/78 mix-blend-screen"
970
+ };
971
+ var buttonVariants = cva4(
972
+ "relative isolate inline-flex items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-full text-[14px] font-medium leading-5 tracking-[0.025em] transform-gpu transition-[width,transform,filter,background-color,border-color,color,box-shadow] duration-sofya ease-sofya motion-safe:active:scale-[0.985] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
973
+ {
974
+ variants: {
975
+ variant: {
976
+ default: "bg-primary text-primary-foreground hover:brightness-[1.04]",
977
+ gradient: "sofya-gradient-motion [--sofya-gradient-motion-duration:4s] bg-[linear-gradient(90deg,hsl(var(--sofya-button-gradient-from))_0%,hsl(var(--sofya-button-gradient-to))_100%)] text-primary-foreground hover:brightness-[1.05]",
978
+ dropdown: "justify-between border border-[#E3EAFF] bg-white font-normal tracking-normal text-[#6B86D6] shadow-none hover:bg-white hover:border-[#E3EAFF]",
979
+ icon: "border-0 bg-primary/10 text-primary shadow-sofya-sm hover:bg-primary/15",
980
+ language: "border-0 bg-muted bg-cover bg-center bg-no-repeat text-primary-foreground shadow-none hover:brightness-[1.03]",
981
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/85",
982
+ outline: "border border-primary/15 !bg-transparent text-foreground hover:border-primary/30 hover:!bg-transparent active:!bg-transparent",
983
+ ghost: "text-foreground hover:bg-muted",
984
+ destructive: "bg-destructive text-destructive-foreground hover:brightness-[1.04]"
985
+ },
986
+ size: {
987
+ default: "h-11 px-10",
988
+ sm: "h-10 px-6 text-[13px]",
989
+ lg: "h-12 px-12 text-[15px]",
990
+ icon: "h-11 w-11"
991
+ }
992
+ },
993
+ defaultVariants: {
994
+ variant: "default",
995
+ size: "default"
996
+ }
997
+ }
998
+ );
999
+ var BUTTON_SEQUENCE_MS = 250;
1000
+ var loadingSpinnerSizeClasses = {
1001
+ default: "h-4 w-4",
1002
+ sm: "h-3.5 w-3.5",
1003
+ lg: "h-[18px] w-[18px]",
1004
+ icon: "h-4 w-4"
1005
+ };
1006
+ var languageButtonSizeClasses = {
1007
+ default: "h-11 w-11 rounded-full p-0",
1008
+ sm: "h-10 w-10 rounded-full p-0",
1009
+ lg: "h-12 w-12 rounded-full p-0",
1010
+ icon: "h-11 w-11 rounded-full p-0"
1011
+ };
1012
+ var buttonRippleBaseSize = {
1013
+ default: 20,
1014
+ sm: 18,
1015
+ lg: 22,
1016
+ icon: 18
1017
+ };
1018
+ function ButtonSpinner({ size }) {
1019
+ return /* @__PURE__ */ jsxs4(
1020
+ "svg",
1021
+ {
1022
+ "aria-hidden": "true",
1023
+ className: cn("animate-spin text-current", loadingSpinnerSizeClasses[size]),
1024
+ viewBox: "0 0 24 24",
1025
+ fill: "none",
1026
+ xmlns: "http://www.w3.org/2000/svg",
1027
+ children: [
1028
+ /* @__PURE__ */ jsx7(
1029
+ "circle",
1030
+ {
1031
+ cx: "12",
1032
+ cy: "12",
1033
+ r: "9",
1034
+ className: "opacity-20",
1035
+ stroke: "currentColor",
1036
+ strokeWidth: "3"
1037
+ }
1038
+ ),
1039
+ /* @__PURE__ */ jsx7(
1040
+ "path",
1041
+ {
1042
+ d: "M21 12A9 9 0 0 0 12 3",
1043
+ stroke: "currentColor",
1044
+ strokeWidth: "3",
1045
+ strokeLinecap: "round"
1046
+ }
1047
+ )
1048
+ ]
1049
+ }
1050
+ );
1051
+ }
1052
+ var Button = React6.forwardRef(
1053
+ ({
1054
+ active = false,
1055
+ disabled,
1056
+ className,
1057
+ languageLocale,
1058
+ variant,
1059
+ size,
1060
+ asChild = false,
1061
+ leftIcon,
1062
+ loading = false,
1063
+ onClick,
1064
+ onPointerDown,
1065
+ rightIcon,
1066
+ children,
1067
+ onTransitionEnd,
1068
+ style,
1069
+ ...props
1070
+ }, ref) => {
1071
+ const buttonRef = React6.useRef(null);
1072
+ const expandedWidthRef = React6.useRef(void 0);
1073
+ const previousLoadingRef = React6.useRef(loading);
1074
+ const timeoutsRef = React6.useRef([]);
1075
+ const frameRef = React6.useRef(null);
1076
+ const [animatedWidth, setAnimatedWidth] = React6.useState(void 0);
1077
+ const [loadingPhase, setLoadingPhase] = React6.useState(
1078
+ loading ? "loading" : "idle"
1079
+ );
1080
+ const [ripples, setRipples] = React6.useState([]);
1081
+ const rippleIdRef = React6.useRef(0);
1082
+ const Component = asChild ? Slot : "button";
1083
+ const prefersReducedMotion = useReducedMotion();
1084
+ const hasChildren = React6.Children.count(children) > 0;
1085
+ const isIconOnly = !hasChildren && Boolean(leftIcon || rightIcon);
1086
+ const isIconOnlyAction = variant === "icon" && isIconOnly;
1087
+ const resolvedSize = size ?? (isIconOnly ? "icon" : "default");
1088
+ const resolvedVariant = variant ?? "default";
1089
+ const isLanguageButton = variant === "language";
1090
+ const resolvedLanguageLocale = isLanguageButton ? languageLocale ?? "en-US" : void 0;
1091
+ const resolvedLanguageFlagSrc = resolvedLanguageLocale ? buttonLanguageFlagSrc[resolvedLanguageLocale] : void 0;
1092
+ const resolvedLanguageLabel = resolvedLanguageLocale ? buttonLanguageLabels[resolvedLanguageLocale] : void 0;
1093
+ const iconSlotClassName = "inline-flex shrink-0 items-center justify-center [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0";
1094
+ const iconOnlyNode = leftIcon ?? rightIcon;
1095
+ const isDisabled = disabled || loadingPhase !== "idle";
1096
+ const resolvedWidthStyle = animatedWidth === void 0 ? style?.width : `${animatedWidth}px`;
1097
+ const isCompactPhase = loadingPhase === "collapsing" || loadingPhase === "loading" || loadingPhase === "hiding-spinner";
1098
+ const hideContent = loadingPhase === "hiding-content" || loadingPhase === "collapsing" || loadingPhase === "loading" || loadingPhase === "hiding-spinner" || loadingPhase === "expanding";
1099
+ const showSpinner = loadingPhase === "loading";
1100
+ const iconOnlyActionClassName = isIconOnlyAction ? cn(
1101
+ "h-10 w-10 rounded-[10px] border-0 p-2 text-[#6B86D6] shadow-none",
1102
+ active ? "bg-[#E3EAFF] hover:bg-[#E3EAFF]" : "bg-transparent hover:bg-transparent"
1103
+ ) : void 0;
1104
+ const languageButtonClassName = isLanguageButton ? cn(
1105
+ "min-w-0 overflow-hidden border-0 text-white shadow-none",
1106
+ languageButtonSizeClasses[resolvedSize]
1107
+ ) : void 0;
1108
+ const resolvedButtonStyle = {
1109
+ ...style,
1110
+ ...isLanguageButton && resolvedLanguageFlagSrc ? {
1111
+ backgroundImage: `url("${resolvedLanguageFlagSrc}")`,
1112
+ backgroundPosition: "center",
1113
+ backgroundRepeat: "no-repeat",
1114
+ backgroundSize: "cover"
1115
+ } : void 0
1116
+ };
1117
+ const resolvedRippleClassName = buttonRippleVariantClasses[resolvedVariant];
1118
+ const handleRippleComplete = React6.useCallback((rippleId) => {
1119
+ setRipples(
1120
+ (currentRipples) => currentRipples.filter((currentRipple) => currentRipple.id !== rippleId)
1121
+ );
1122
+ }, []);
1123
+ const createRipple = React6.useCallback(
1124
+ (currentTarget, clientX, clientY) => {
1125
+ const rect = currentTarget.getBoundingClientRect();
1126
+ const hasPointerPosition = clientX !== void 0 && clientY !== void 0;
1127
+ const x = hasPointerPosition ? clientX - rect.left : rect.width / 2;
1128
+ const y = hasPointerPosition ? clientY - rect.top : rect.height / 2;
1129
+ const radius = Math.max(
1130
+ Math.hypot(x, y),
1131
+ Math.hypot(rect.width - x, y),
1132
+ Math.hypot(x, rect.height - y),
1133
+ Math.hypot(rect.width - x, rect.height - y)
1134
+ );
1135
+ const baseSize = buttonRippleBaseSize[resolvedSize];
1136
+ const finalDiameter = Math.max(radius * 2 + 24, Math.max(rect.width, rect.height) + 18);
1137
+ setRipples((currentRipples) => [
1138
+ ...currentRipples,
1139
+ {
1140
+ id: rippleIdRef.current++,
1141
+ scale: finalDiameter / baseSize,
1142
+ size: baseSize,
1143
+ x: x - baseSize / 2,
1144
+ y: y - baseSize / 2
1145
+ }
1146
+ ]);
1147
+ },
1148
+ [resolvedSize]
1149
+ );
1150
+ const handlePointerDown = React6.useCallback(
1151
+ (event) => {
1152
+ onPointerDown?.(event);
1153
+ if (event.defaultPrevented || isDisabled) {
1154
+ return;
1155
+ }
1156
+ if (event.button === 0) {
1157
+ createRipple(event.currentTarget, event.clientX, event.clientY);
1158
+ }
1159
+ },
1160
+ [createRipple, isDisabled, onPointerDown]
1161
+ );
1162
+ const handleClick = React6.useCallback(
1163
+ (event) => {
1164
+ if (!isDisabled && event.detail === 0) {
1165
+ createRipple(event.currentTarget);
1166
+ }
1167
+ onClick?.(event);
1168
+ },
1169
+ [createRipple, isDisabled, onClick]
1170
+ );
1171
+ const clearAnimationTimers = React6.useCallback(() => {
1172
+ for (const timeoutId of timeoutsRef.current) {
1173
+ window.clearTimeout(timeoutId);
1174
+ }
1175
+ timeoutsRef.current = [];
1176
+ if (frameRef.current !== null) {
1177
+ window.cancelAnimationFrame(frameRef.current);
1178
+ frameRef.current = null;
1179
+ }
1180
+ }, []);
1181
+ React6.useImperativeHandle(ref, () => buttonRef.current);
1182
+ React6.useLayoutEffect(() => {
1183
+ const element = buttonRef.current;
1184
+ if (element && loadingPhase === "idle" && !loading) {
1185
+ expandedWidthRef.current = element.offsetWidth;
1186
+ }
1187
+ if (element && loadingPhase === "loading" && animatedWidth === void 0) {
1188
+ setAnimatedWidth(element.offsetHeight);
1189
+ }
1190
+ }, [animatedWidth, loading, loadingPhase, children, leftIcon, rightIcon]);
1191
+ React6.useEffect(() => {
1192
+ return () => {
1193
+ clearAnimationTimers();
1194
+ };
1195
+ }, [clearAnimationTimers]);
1196
+ React6.useEffect(() => {
1197
+ const element = buttonRef.current;
1198
+ if (!element) {
1199
+ return;
1200
+ }
1201
+ const previousLoading = previousLoadingRef.current;
1202
+ previousLoadingRef.current = loading;
1203
+ if (previousLoading === loading) {
1204
+ return;
1205
+ }
1206
+ clearAnimationTimers();
1207
+ if (loading) {
1208
+ const currentWidth2 = element.offsetWidth;
1209
+ const collapsedWidth = element.offsetHeight;
1210
+ expandedWidthRef.current = currentWidth2;
1211
+ setAnimatedWidth(currentWidth2);
1212
+ setLoadingPhase("hiding-content");
1213
+ timeoutsRef.current.push(
1214
+ window.setTimeout(() => {
1215
+ setLoadingPhase("collapsing");
1216
+ setAnimatedWidth(collapsedWidth);
1217
+ }, BUTTON_SEQUENCE_MS)
1218
+ );
1219
+ timeoutsRef.current.push(
1220
+ window.setTimeout(() => {
1221
+ setLoadingPhase("loading");
1222
+ }, BUTTON_SEQUENCE_MS * 2)
1223
+ );
1224
+ return;
1225
+ }
1226
+ const currentWidth = element.offsetWidth;
1227
+ const expandedWidth = expandedWidthRef.current ?? Math.max(element.scrollWidth, currentWidth);
1228
+ setAnimatedWidth(currentWidth);
1229
+ setLoadingPhase("hiding-spinner");
1230
+ timeoutsRef.current.push(
1231
+ window.setTimeout(() => {
1232
+ setLoadingPhase("expanding");
1233
+ frameRef.current = window.requestAnimationFrame(() => {
1234
+ frameRef.current = window.requestAnimationFrame(() => {
1235
+ setAnimatedWidth(expandedWidth);
1236
+ });
1237
+ });
1238
+ }, BUTTON_SEQUENCE_MS)
1239
+ );
1240
+ timeoutsRef.current.push(
1241
+ window.setTimeout(() => {
1242
+ setLoadingPhase("revealing-content");
1243
+ }, BUTTON_SEQUENCE_MS * 2)
1244
+ );
1245
+ timeoutsRef.current.push(
1246
+ window.setTimeout(() => {
1247
+ setLoadingPhase("idle");
1248
+ setAnimatedWidth(void 0);
1249
+ }, BUTTON_SEQUENCE_MS * 3)
1250
+ );
1251
+ }, [children, clearAnimationTimers, leftIcon, loading, rightIcon]);
1252
+ const buttonContent = isLanguageButton ? null : isIconOnly ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: iconOnlyNode }) : /* @__PURE__ */ jsxs4(Fragment, { children: [
1253
+ leftIcon ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: leftIcon }) : null,
1254
+ hasChildren ? /* @__PURE__ */ jsx7("span", { className: "inline-flex items-center", children }) : null,
1255
+ rightIcon ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: rightIcon }) : null
1256
+ ] });
1257
+ return /* @__PURE__ */ jsxs4(
1258
+ Component,
1259
+ {
1260
+ className: cn(
1261
+ buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
1262
+ iconOnlyActionClassName,
1263
+ languageButtonClassName,
1264
+ isCompactPhase && "gap-0 px-0",
1265
+ className
1266
+ ),
1267
+ "aria-label": props["aria-label"] ?? (isLanguageButton ? resolvedLanguageLabel : void 0),
1268
+ "aria-pressed": isIconOnlyAction ? active : props["aria-pressed"],
1269
+ "aria-busy": loading,
1270
+ disabled: asChild ? void 0 : isDisabled,
1271
+ onClick: handleClick,
1272
+ onPointerDown: handlePointerDown,
1273
+ onTransitionEnd,
1274
+ ref: buttonRef,
1275
+ style: { ...resolvedButtonStyle, width: resolvedWidthStyle },
1276
+ ...props,
1277
+ children: [
1278
+ /* @__PURE__ */ jsx7(
1279
+ "span",
1280
+ {
1281
+ "aria-hidden": "true",
1282
+ className: "pointer-events-none absolute inset-0 z-[1] overflow-hidden rounded-[inherit]",
1283
+ children: ripples.map((ripple) => /* @__PURE__ */ jsx7(
1284
+ motion.span,
1285
+ {
1286
+ className: cn(
1287
+ "absolute rounded-full will-change-transform transform-gpu",
1288
+ resolvedRippleClassName
1289
+ ),
1290
+ initial: prefersReducedMotion ? { opacity: 0.32, scale: 0.72 } : { opacity: 0.56, scale: 0 },
1291
+ animate: prefersReducedMotion ? { opacity: 0, scale: 1.02 } : { opacity: [0.56, 0.26, 0], scale: ripple.scale },
1292
+ transition: prefersReducedMotion ? { duration: 0.2, ease: "linear" } : { duration: 0.62, times: [0, 0.35, 1], ease: [0.16, 1, 0.3, 1] },
1293
+ style: {
1294
+ height: ripple.size,
1295
+ left: ripple.x,
1296
+ top: ripple.y,
1297
+ transformOrigin: "center center",
1298
+ width: ripple.size
1299
+ },
1300
+ onAnimationComplete: () => {
1301
+ handleRippleComplete(ripple.id);
1302
+ }
1303
+ },
1304
+ ripple.id
1305
+ ))
1306
+ }
1307
+ ),
1308
+ /* @__PURE__ */ jsx7(
1309
+ "span",
1310
+ {
1311
+ className: cn(
1312
+ "relative z-[2] inline-flex items-center justify-center gap-2 transition-opacity duration-sofya ease-sofya",
1313
+ hideContent && "opacity-0"
1314
+ ),
1315
+ children: buttonContent
1316
+ }
1317
+ ),
1318
+ /* @__PURE__ */ jsx7(
1319
+ "span",
1320
+ {
1321
+ "aria-hidden": "true",
1322
+ className: cn(
1323
+ "pointer-events-none absolute inset-0 z-[2] flex items-center justify-center transition-opacity duration-sofya ease-sofya",
1324
+ showSpinner ? "opacity-100" : "opacity-0"
1325
+ ),
1326
+ children: /* @__PURE__ */ jsx7(ButtonSpinner, { size: resolvedSize })
1327
+ }
1328
+ )
1329
+ ]
1330
+ }
1331
+ );
1332
+ }
1333
+ );
1334
+ Button.displayName = "Button";
1335
+
1336
+ // src/components/surface.tsx
1337
+ import * as React7 from "react";
1338
+ import { Slot as Slot2 } from "@radix-ui/react-slot";
1339
+ import { jsx as jsx8 } from "react/jsx-runtime";
1340
+ var surfaceStyles = {
1341
+ card: {
1342
+ backgroundColor: "hsl(var(--sofya-surface-card-background))",
1343
+ borderColor: "hsl(var(--sofya-surface-card-border-color))",
1344
+ borderWidth: "var(--sofya-surface-card-border-width)",
1345
+ borderStyle: "solid",
1346
+ borderRadius: "var(--sofya-surface-card-radius)",
1347
+ "--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
1348
+ boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1349
+ },
1350
+ panel: {
1351
+ backgroundColor: "hsl(var(--sofya-surface-panel-background))",
1352
+ borderColor: "hsl(var(--sofya-surface-panel-border-color))",
1353
+ borderWidth: "var(--sofya-surface-panel-border-width)",
1354
+ borderStyle: "solid",
1355
+ borderRadius: "var(--sofya-surface-panel-radius)",
1356
+ "--sofya-surface-shadow-base": "var(--sofya-surface-panel-shadow)",
1357
+ boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1358
+ },
1359
+ focus: {
1360
+ backgroundColor: "hsl(var(--sofya-surface-focus-background))",
1361
+ borderColor: "hsl(var(--sofya-surface-focus-border-color))",
1362
+ borderWidth: "var(--sofya-surface-focus-border-width)",
1363
+ borderStyle: "solid",
1364
+ borderRadius: "var(--sofya-surface-focus-radius)",
1365
+ "--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
1366
+ boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1367
+ }
1368
+ };
1369
+ function SurfaceComponent({ as, asChild = false, variant = "card", className, style, ...props }, ref) {
1370
+ const Component = asChild ? Slot2 : as ?? "div";
1371
+ return /* @__PURE__ */ jsx8(
1372
+ Component,
1373
+ {
1374
+ ref,
1375
+ "data-surface-variant": variant,
1376
+ className: cn("relative text-foreground", className),
1377
+ style: { ...surfaceStyles[variant], ...style },
1378
+ ...props
1379
+ }
1380
+ );
1381
+ }
1382
+ var SurfaceBase = React7.forwardRef(SurfaceComponent);
1383
+ SurfaceBase.displayName = "Surface";
1384
+ var Surface = SurfaceBase;
1385
+
1386
+ // src/components/card.tsx
1387
+ import { jsx as jsx9 } from "react/jsx-runtime";
1388
+ var cardVariants = ["card", "panel", "focus"];
1389
+ function Card({ className, variant = "card", ...props }) {
1390
+ const hasHoverShadow = variant === "card" || variant === "panel";
1391
+ return /* @__PURE__ */ jsx9(
1392
+ Surface,
1393
+ {
1394
+ variant,
1395
+ className: cn(
1396
+ "w-full text-card-foreground",
1397
+ hasHoverShadow && "transition-shadow duration-sofya ease-sofya hover:[--sofya-surface-shadow-override:var(--sofya-shadow-md)]",
1398
+ className
1399
+ ),
1400
+ ...props
1401
+ }
1402
+ );
1403
+ }
1404
+ function CardHeader({ className, ...props }) {
1405
+ return /* @__PURE__ */ jsx9("div", { className: cn("flex flex-col gap-2 p-6", className), ...props });
1406
+ }
1407
+ function CardTitle({ children, className, ...props }) {
1408
+ return /* @__PURE__ */ jsx9(
1409
+ "h3",
1410
+ {
1411
+ className: cn("text-card-foreground", className),
1412
+ ...props,
1413
+ children: renderTextContent(children, {
1414
+ as: "span",
1415
+ className: "block text-card-foreground",
1416
+ size: "h4",
1417
+ style: {
1418
+ fontSize: "1.25rem",
1419
+ fontWeight: 600,
1420
+ lineHeight: "1.75rem",
1421
+ letterSpacing: "-0.025em"
1422
+ }
1423
+ })
1424
+ }
1425
+ );
1426
+ }
1427
+ function CardDescription({
1428
+ children,
1429
+ className,
1430
+ ...props
1431
+ }) {
1432
+ return /* @__PURE__ */ jsx9("p", { className: cn("text-muted-foreground", className), ...props, children: renderTextContent(children, {
1433
+ as: "span",
1434
+ className: "block text-muted-foreground",
1435
+ size: "body",
1436
+ style: {
1437
+ lineHeight: "20px"
1438
+ }
1439
+ }) });
1440
+ }
1441
+ function CardContent({ children, className, ...props }) {
1442
+ return /* @__PURE__ */ jsx9("div", { className: cn("p-6 pt-0", className), ...props, children: renderTextContent(children, {
1443
+ as: "span"
1444
+ }) });
1445
+ }
1446
+ function CardFooter({ children, className, ...props }) {
1447
+ return /* @__PURE__ */ jsx9("div", { className: cn("flex items-center gap-4 p-6 pt-0", className), ...props, children: renderTextContent(children, {
1448
+ as: "span"
1449
+ }) });
1450
+ }
1451
+
1452
+ // src/components/checkbox.tsx
1453
+ import * as React8 from "react";
1454
+ import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
1455
+ var Checkbox = React8.forwardRef(function Checkbox2({
1456
+ checked,
1457
+ className,
1458
+ defaultChecked,
1459
+ description,
1460
+ descriptionClassName,
1461
+ disabled,
1462
+ id,
1463
+ label,
1464
+ labelClassName,
1465
+ ...props
1466
+ }, ref) {
1467
+ const generatedId = React8.useId();
1468
+ const resolvedId = id ?? generatedId;
1469
+ const descriptionId = description ? `${resolvedId}-description` : void 0;
1470
+ const alignClassName = description ? "items-start" : "items-center";
1471
+ const indicatorOffsetClassName = "";
1472
+ return /* @__PURE__ */ jsxs5(
1473
+ "label",
1474
+ {
1475
+ htmlFor: resolvedId,
1476
+ className: cn(
1477
+ "flex w-fit gap-4",
1478
+ alignClassName,
1479
+ disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1480
+ className
1481
+ ),
1482
+ children: [
1483
+ /* @__PURE__ */ jsx10(
1484
+ "input",
1485
+ {
1486
+ ref,
1487
+ id: resolvedId,
1488
+ type: "checkbox",
1489
+ className: "peer sr-only",
1490
+ checked,
1491
+ defaultChecked,
1492
+ disabled,
1493
+ "aria-describedby": descriptionId,
1494
+ ...props
1495
+ }
1496
+ ),
1497
+ /* @__PURE__ */ jsx10(
1498
+ "span",
1499
+ {
1500
+ "aria-hidden": "true",
1501
+ className: cn(
1502
+ "inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[8px] border border-[#D9E2FA] bg-card text-transparent transition-[background-color,border-color,box-shadow,color] duration-sofya ease-sofya peer-checked:border-primary peer-checked:bg-primary peer-checked:text-primary-foreground peer-focus-visible:ring-2 peer-focus-visible:ring-[#D9E2FA]/60 peer-focus-visible:ring-offset-0",
1503
+ indicatorOffsetClassName
1504
+ ),
1505
+ children: /* @__PURE__ */ jsx10(
1506
+ "svg",
1507
+ {
1508
+ viewBox: "0 0 16 16",
1509
+ fill: "none",
1510
+ xmlns: "http://www.w3.org/2000/svg",
1511
+ className: "h-4 w-4 shrink-0",
1512
+ children: /* @__PURE__ */ jsx10(
1513
+ "path",
1514
+ {
1515
+ d: "M2.75 8.25L6.4 11.9L13.35 4.95",
1516
+ stroke: "currentColor",
1517
+ strokeWidth: "2.4",
1518
+ strokeLinecap: "round",
1519
+ strokeLinejoin: "round"
1520
+ }
1521
+ )
1522
+ }
1523
+ )
1524
+ }
1525
+ ),
1526
+ label || description ? /* @__PURE__ */ jsxs5("span", { className: "grid gap-2", children: [
1527
+ label ? /* @__PURE__ */ jsx10(
1528
+ "span",
1529
+ {
1530
+ className: cn(
1531
+ "text-[var(--sofya-tag-navy)] [&_a]:text-primary [&_a]:underline [&_a]:underline-offset-[3px]",
1532
+ labelClassName
1533
+ ),
1534
+ children: renderTextContent(label, {
1535
+ as: "span",
1536
+ className: "text-[var(--sofya-tag-navy)]",
1537
+ size: "h4",
1538
+ style: {
1539
+ fontWeight: 400,
1540
+ lineHeight: "22px",
1541
+ letterSpacing: "-0.02em"
1542
+ }
1543
+ })
1544
+ }
1545
+ ) : null,
1546
+ description ? /* @__PURE__ */ jsx10(
1547
+ "span",
1548
+ {
1549
+ id: descriptionId,
1550
+ className: cn(
1551
+ "text-muted-foreground",
1552
+ descriptionClassName
1553
+ ),
1554
+ children: renderTextContent(description, {
1555
+ as: "span",
1556
+ className: "text-muted-foreground",
1557
+ size: "body",
1558
+ style: {
1559
+ lineHeight: "20px"
1560
+ }
1561
+ })
1562
+ }
1563
+ ) : null
1564
+ ] }) : null
1565
+ ]
1566
+ }
1567
+ );
1568
+ });
1569
+ Checkbox.displayName = "Checkbox";
1570
+
1571
+ // src/components/dropdown.tsx
1572
+ import * as React9 from "react";
1573
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1574
+ import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
1575
+ var dropdownVariantOptions = ["card", "panel", "language", "selected"];
1576
+ var dropdownLanguageItems = [
1577
+ { value: "en-US", label: "English", languageLocale: "en-US" },
1578
+ { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1579
+ { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1580
+ ];
1581
+ var dropdownTriggerClasses = {
1582
+ card: "h-12 rounded-[20px] px-6 py-2 text-[#6B86D6]",
1583
+ panel: "h-12 rounded-[10px] px-6 py-2 text-foreground",
1584
+ language: "",
1585
+ selected: "h-10 w-full rounded-[10px] border-[#D9E2FA] px-4 py-2 text-[14px] font-normal leading-[22px] tracking-[-0.02em]"
1586
+ };
1587
+ var dropdownContentClasses = {
1588
+ card: "rounded-[20px] border-[#E3EAFF] text-foreground shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)]",
1589
+ panel: "rounded-[10px] border-[#E3EAFF] text-foreground shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)]",
1590
+ language: "w-[224px] min-w-[224px] rounded-[10px] border-[#E3EAFF] text-foreground shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)]",
1591
+ selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)] rounded-[10px] border-[#D9E2FA] text-foreground shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)]"
1592
+ };
1593
+ var dropdownItemClasses = {
1594
+ card: "text-foreground",
1595
+ panel: "text-foreground",
1596
+ language: "text-foreground",
1597
+ selected: "text-foreground"
1598
+ };
1599
+ function isButtonLanguageLocale(value) {
1600
+ return buttonLanguageLocaleOptions.includes(value);
1601
+ }
1602
+ function resolveItemLanguageLocale(item) {
1603
+ if (!item) {
1604
+ return void 0;
1605
+ }
1606
+ if (item.languageLocale) {
1607
+ return item.languageLocale;
1608
+ }
1609
+ return isButtonLanguageLocale(item.value) ? item.value : void 0;
1610
+ }
1611
+ function DefaultDropdownTriggerIcon({ variant }) {
1612
+ if (variant === "selected") {
1613
+ return /* @__PURE__ */ jsx11(Icon, { name: "caret-down", className: "h-[6px] w-[11px] text-[#7D87A8]" });
1614
+ }
1615
+ return /* @__PURE__ */ jsx11("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px]", children: /* @__PURE__ */ jsx11(Icon, { name: "caret-down", className: "!h-4 !w-4" }) });
1616
+ }
1617
+ function DefaultDropdownItemIndicator() {
1618
+ return /* @__PURE__ */ jsx11(Icon, { name: "check", size: 16 });
1619
+ }
1620
+ function DefaultDropdownInlineCheck() {
1621
+ return /* @__PURE__ */ jsx11(Icon, { name: "check", size: 14 });
1622
+ }
1623
+ function LanguageFlagIcon({ locale }) {
1624
+ return /* @__PURE__ */ jsx11(
1625
+ "img",
1626
+ {
1627
+ alt: "",
1628
+ "aria-hidden": "true",
1629
+ src: dropdownLanguageFlagSrc[locale],
1630
+ className: "h-[12px] w-[16px] shrink-0 object-cover"
1631
+ }
1632
+ );
1633
+ }
1634
+ function Dropdown({
1635
+ align = "start",
1636
+ contentClassName,
1637
+ defaultOpen,
1638
+ defaultValue,
1639
+ disabled = false,
1640
+ items,
1641
+ itemClassName,
1642
+ modal,
1643
+ onOpenChange,
1644
+ onValueChange,
1645
+ open,
1646
+ placeholder = "Select",
1647
+ sideOffset = 8,
1648
+ triggerClassName,
1649
+ triggerIcon,
1650
+ value,
1651
+ variant = "card"
1652
+ }) {
1653
+ const isLanguageVariant = variant === "language";
1654
+ const isSelectedVariant = variant === "selected";
1655
+ const usesDefaultListStyle = !isLanguageVariant;
1656
+ const resolvedItems = React9.useMemo(
1657
+ () => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
1658
+ [isLanguageVariant, items]
1659
+ );
1660
+ const defaultUncontrolledValue = defaultValue ?? (isLanguageVariant ? resolvedItems[0]?.value : void 0);
1661
+ const [internalValue, setInternalValue] = React9.useState(defaultUncontrolledValue);
1662
+ const selectedValue = value ?? internalValue;
1663
+ const radioValue = selectedValue ?? "";
1664
+ const selectedItem = resolvedItems.find((item) => item.value === selectedValue);
1665
+ const hasSelectedItem = selectedItem !== void 0;
1666
+ const selectedLanguageLocale = resolveItemLanguageLocale(selectedItem);
1667
+ React9.useEffect(() => {
1668
+ if (value !== void 0) {
1669
+ return;
1670
+ }
1671
+ const currentValueIsAvailable = internalValue !== void 0 && resolvedItems.some((item) => item.value === internalValue);
1672
+ if (!currentValueIsAvailable && defaultUncontrolledValue !== void 0) {
1673
+ setInternalValue(defaultUncontrolledValue);
1674
+ }
1675
+ }, [defaultUncontrolledValue, internalValue, resolvedItems, value]);
1676
+ const resolvedTriggerIcon = isLanguageVariant ? void 0 : triggerIcon === void 0 ? /* @__PURE__ */ jsx11(DefaultDropdownTriggerIcon, { variant }) : triggerIcon;
1677
+ const triggerLabel = selectedItem?.triggerLabel ?? selectedItem?.label ?? placeholder;
1678
+ const selectedTriggerToneClassName = isSelectedVariant ? hasSelectedItem ? "text-foreground" : "text-[#7D87A8]" : void 0;
1679
+ function handleValueChange(nextValue) {
1680
+ if (value === void 0) {
1681
+ setInternalValue(nextValue);
1682
+ }
1683
+ onValueChange?.(nextValue);
1684
+ }
1685
+ return /* @__PURE__ */ jsxs6(
1686
+ DropdownMenuPrimitive.Root,
1687
+ {
1688
+ defaultOpen,
1689
+ modal,
1690
+ onOpenChange,
1691
+ open,
1692
+ children: [
1693
+ /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx11(
1694
+ Button,
1695
+ {
1696
+ type: "button",
1697
+ variant: isLanguageVariant ? "language" : "dropdown",
1698
+ languageLocale: selectedLanguageLocale,
1699
+ className: cn(
1700
+ "min-w-0",
1701
+ isLanguageVariant ? "h-[38px] w-[38px] rounded-[10px] p-0" : dropdownTriggerClasses[variant],
1702
+ selectedTriggerToneClassName,
1703
+ triggerClassName
1704
+ ),
1705
+ rightIcon: resolvedTriggerIcon,
1706
+ children: isLanguageVariant ? null : /* @__PURE__ */ jsx11("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
1707
+ as: "span",
1708
+ className: "block min-w-0 truncate text-inherit",
1709
+ size: "body",
1710
+ style: {
1711
+ fontWeight: 400,
1712
+ lineHeight: "22px",
1713
+ letterSpacing: isSelectedVariant ? "-0.02em" : 0
1714
+ }
1715
+ }) })
1716
+ }
1717
+ ) }),
1718
+ /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
1719
+ DropdownMenuPrimitive.Content,
1720
+ {
1721
+ align,
1722
+ sideOffset,
1723
+ className: cn(
1724
+ "sofya-dropdown-content z-50 w-auto min-w-[var(--radix-dropdown-menu-trigger-width)] border bg-white p-2 outline-none",
1725
+ dropdownContentClasses[variant],
1726
+ contentClassName
1727
+ ),
1728
+ children: /* @__PURE__ */ jsx11(
1729
+ DropdownMenuPrimitive.RadioGroup,
1730
+ {
1731
+ value: radioValue,
1732
+ onValueChange: handleValueChange,
1733
+ className: "grid gap-2",
1734
+ children: resolvedItems.map((item) => {
1735
+ const isSelected = item.value === selectedValue;
1736
+ const itemLanguageLocale = resolveItemLanguageLocale(item);
1737
+ const indicator = item.indicator ?? /* @__PURE__ */ jsx11(DefaultDropdownItemIndicator, {});
1738
+ const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ jsx11(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
1739
+ return /* @__PURE__ */ jsx11(
1740
+ DropdownMenuPrimitive.RadioItem,
1741
+ {
1742
+ value: item.value,
1743
+ disabled: item.disabled,
1744
+ className: cn(
1745
+ "flex w-full cursor-pointer items-center rounded-[4px] text-[14px] font-normal leading-[normal] outline-none transition-colors duration-sofya ease-sofya data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
1746
+ usesDefaultListStyle ? "px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[#F5F4FA]" : "px-2 py-2 data-[highlighted]:bg-[#F5F8FF]",
1747
+ dropdownItemClasses[variant],
1748
+ itemClassName
1749
+ ),
1750
+ children: usesDefaultListStyle ? /* @__PURE__ */ jsxs6(
1751
+ "span",
1752
+ {
1753
+ "data-dropdown-item-body": true,
1754
+ className: cn(
1755
+ "inline-flex min-w-0 items-center gap-2 rounded-full px-4 py-2 transition-colors duration-sofya ease-sofya",
1756
+ isSelected ? "bg-[#F5F4FA]" : "bg-transparent"
1757
+ ),
1758
+ children: [
1759
+ itemIcon ? /* @__PURE__ */ jsx11("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1760
+ /* @__PURE__ */ jsx11("span", { className: "truncate", children: renderTextContent(item.label, {
1761
+ as: "span",
1762
+ className: "block truncate text-inherit",
1763
+ size: "body",
1764
+ style: {
1765
+ fontWeight: 400,
1766
+ lineHeight: "22px"
1767
+ }
1768
+ }) }),
1769
+ isSelected ? /* @__PURE__ */ jsx11(
1770
+ "span",
1771
+ {
1772
+ "aria-hidden": "true",
1773
+ className: "flex h-[14px] w-[14px] shrink-0 items-center justify-center",
1774
+ children: /* @__PURE__ */ jsx11(DefaultDropdownInlineCheck, {})
1775
+ }
1776
+ ) : null
1777
+ ]
1778
+ }
1779
+ ) : /* @__PURE__ */ jsxs6(Fragment2, { children: [
1780
+ /* @__PURE__ */ jsxs6("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1781
+ itemIcon ? /* @__PURE__ */ jsx11("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1782
+ /* @__PURE__ */ jsx11("span", { className: "truncate", children: renderTextContent(item.label, {
1783
+ as: "span",
1784
+ className: "block truncate text-inherit",
1785
+ size: "body",
1786
+ style: {
1787
+ fontWeight: 400,
1788
+ lineHeight: "22px"
1789
+ }
1790
+ }) })
1791
+ ] }),
1792
+ /* @__PURE__ */ jsx11(
1793
+ "span",
1794
+ {
1795
+ "aria-hidden": "true",
1796
+ className: cn(
1797
+ "flex h-4 w-4 shrink-0 items-center justify-center transition-opacity duration-sofya ease-sofya",
1798
+ variant === "language" && "text-[#6B86D6]",
1799
+ isSelected ? "opacity-100" : "opacity-0"
1800
+ ),
1801
+ children: indicator
1802
+ }
1803
+ )
1804
+ ] })
1805
+ },
1806
+ item.value
1807
+ );
1808
+ })
1809
+ }
1810
+ )
1811
+ }
1812
+ ) })
1813
+ ]
1814
+ }
1815
+ );
1816
+ }
1817
+
1818
+ // src/components/dialog.tsx
1819
+ import * as React10 from "react";
1820
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
1821
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1822
+ var Dialog = DialogPrimitive.Root;
1823
+ var DialogTrigger = DialogPrimitive.Trigger;
1824
+ var DialogPortal = DialogPrimitive.Portal;
1825
+ var DialogClose = DialogPrimitive.Close;
1826
+ var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
1827
+ DialogPrimitive.Overlay,
1828
+ {
1829
+ ref,
1830
+ className: cn(
1831
+ "sofya-dialog-overlay fixed inset-0 z-50 bg-foreground/24 backdrop-blur-[6px]",
1832
+ className
1833
+ ),
1834
+ ...props
1835
+ }
1836
+ ));
1837
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
1838
+ var DialogContent = React10.forwardRef(
1839
+ ({
1840
+ className,
1841
+ children,
1842
+ cardClassName,
1843
+ cardVariant = "panel",
1844
+ overlayClassName,
1845
+ showCloseButton = true,
1846
+ ...props
1847
+ }, ref) => {
1848
+ const dialogCardStyle = {
1849
+ "--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
1850
+ };
1851
+ return /* @__PURE__ */ jsxs7(DialogPortal, { children: [
1852
+ /* @__PURE__ */ jsx12(DialogOverlay, { className: overlayClassName }),
1853
+ /* @__PURE__ */ jsx12(
1854
+ DialogPrimitive.Content,
1855
+ {
1856
+ ref,
1857
+ className: cn(
1858
+ "sofya-dialog-content fixed left-1/2 top-1/2 z-50 w-[calc(100%-2rem)] max-w-[min(680px,calc(100%-2rem))] -translate-x-1/2 -translate-y-1/2 outline-none",
1859
+ className
1860
+ ),
1861
+ ...props,
1862
+ children: /* @__PURE__ */ jsxs7(
1863
+ Card,
1864
+ {
1865
+ variant: cardVariant,
1866
+ className: cn("relative w-full overflow-hidden border-border bg-card", cardClassName),
1867
+ style: dialogCardStyle,
1868
+ children: [
1869
+ children,
1870
+ showCloseButton ? /* @__PURE__ */ jsx12(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsxs7(
1871
+ Button,
1872
+ {
1873
+ type: "button",
1874
+ variant: "ghost",
1875
+ size: "icon",
1876
+ className: "absolute right-4 top-4 z-10 h-10 w-10 rounded-[10px] text-muted-foreground hover:bg-muted",
1877
+ children: [
1878
+ /* @__PURE__ */ jsx12(Icon, { name: "x", size: 18 }),
1879
+ /* @__PURE__ */ jsx12("span", { className: "sr-only", children: "Close" })
1880
+ ]
1881
+ }
1882
+ ) }) : null
1883
+ ]
1884
+ }
1885
+ )
1886
+ }
1887
+ )
1888
+ ] });
1889
+ }
1890
+ );
1891
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
1892
+ function DialogHeader({ className, ...props }) {
1893
+ return /* @__PURE__ */ jsx12("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
1894
+ }
1895
+ function DialogFooter({ className, ...props }) {
1896
+ return /* @__PURE__ */ jsx12(
1897
+ "div",
1898
+ {
1899
+ className: cn(
1900
+ "flex flex-col-reverse gap-4 px-6 pb-6 pt-4 sm:flex-row sm:justify-end",
1901
+ className
1902
+ ),
1903
+ ...props
1904
+ }
1905
+ );
1906
+ }
1907
+ var DialogTitle = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx12(
1908
+ DialogPrimitive.Title,
1909
+ {
1910
+ ref,
1911
+ className: cn("text-card-foreground", className),
1912
+ ...props,
1913
+ children: renderTextContent(children, {
1914
+ as: "span",
1915
+ className: "block text-card-foreground",
1916
+ size: "h4",
1917
+ style: {
1918
+ fontSize: "1.25rem",
1919
+ fontWeight: 600,
1920
+ lineHeight: "1.75rem",
1921
+ letterSpacing: "-0.025em"
1922
+ }
1923
+ })
1924
+ }
1925
+ ));
1926
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
1927
+ var DialogDescription = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx12(
1928
+ DialogPrimitive.Description,
1929
+ {
1930
+ ref,
1931
+ className: cn("text-muted-foreground", className),
1932
+ ...props,
1933
+ children: renderTextContent(children, {
1934
+ as: "span",
1935
+ className: "block text-muted-foreground",
1936
+ size: "body",
1937
+ style: {
1938
+ lineHeight: "24px"
1939
+ }
1940
+ })
1941
+ }
1942
+ ));
1943
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
1944
+
1945
+ // src/components/empty.tsx
1946
+ import * as React11 from "react";
1947
+ import { cva as cva5 } from "class-variance-authority";
1948
+ import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1949
+ var emptyMediaVariantOptions = ["default", "icon"];
1950
+ var emptyMediaVariants = cva5(
1951
+ "inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
1952
+ {
1953
+ variants: {
1954
+ variant: {
1955
+ default: "[&_img]:max-w-full [&_svg]:shrink-0 [&_svg]:text-primary",
1956
+ icon: "h-16 w-16 rounded-full border border-primary/10 bg-primary/10 text-primary [&_svg]:h-7 [&_svg]:w-7 [&_svg]:shrink-0"
1957
+ }
1958
+ },
1959
+ defaultVariants: {
1960
+ variant: "default"
1961
+ }
1962
+ }
1963
+ );
1964
+ var EmptyMedia = React11.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
1965
+ return /* @__PURE__ */ jsx13("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
1966
+ });
1967
+ function EmptyHeader({ className, ...props }) {
1968
+ return /* @__PURE__ */ jsx13(
1969
+ "div",
1970
+ {
1971
+ className: cn("flex max-w-[34rem] flex-col items-center gap-4 text-center", className),
1972
+ ...props
1973
+ }
1974
+ );
1975
+ }
1976
+ function EmptyTitle({ children, className, ...props }) {
1977
+ return /* @__PURE__ */ jsx13(
1978
+ "h2",
1979
+ {
1980
+ className: cn("text-foreground", className),
1981
+ ...props,
1982
+ children: renderTextContent(children, {
1983
+ as: "span",
1984
+ className: "block text-foreground",
1985
+ size: "h2",
1986
+ style: {
1987
+ letterSpacing: "-0.02em"
1988
+ }
1989
+ })
1990
+ }
1991
+ );
1992
+ }
1993
+ function EmptyDescription({
1994
+ children,
1995
+ className,
1996
+ ...props
1997
+ }) {
1998
+ return /* @__PURE__ */ jsx13(
1999
+ "p",
2000
+ {
2001
+ className: cn("max-w-full text-muted-foreground whitespace-nowrap", className),
2002
+ ...props,
2003
+ children: renderTextContent(children, {
2004
+ as: "span",
2005
+ className: "inline-block whitespace-nowrap text-muted-foreground",
2006
+ size: "body",
2007
+ style: {
2008
+ lineHeight: "24px"
2009
+ }
2010
+ })
2011
+ }
2012
+ );
2013
+ }
2014
+ function EmptyContent({ children, className, ...props }) {
2015
+ return /* @__PURE__ */ jsx13(
2016
+ "div",
2017
+ {
2018
+ className: cn("flex flex-wrap items-center justify-center gap-4 text-center", className),
2019
+ ...props,
2020
+ children: renderTextContent(children, {
2021
+ as: "span"
2022
+ })
2023
+ }
2024
+ );
2025
+ }
2026
+ var Empty = React11.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
2027
+ const hasCustomChildren = React11.Children.count(children) > 0;
2028
+ return /* @__PURE__ */ jsx13(
2029
+ "div",
2030
+ {
2031
+ ref,
2032
+ className: cn(
2033
+ "flex min-h-[280px] w-full flex-col items-center justify-center gap-6 rounded-[28px] bg-gradient-to-b from-card via-card to-muted/45 px-6 py-10 text-center",
2034
+ className
2035
+ ),
2036
+ ...props,
2037
+ children: hasCustomChildren ? children : /* @__PURE__ */ jsxs8(Fragment3, { children: [
2038
+ /* @__PURE__ */ jsxs8(EmptyHeader, { children: [
2039
+ media ?? /* @__PURE__ */ jsx13(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx13(Icon, { name: "folders", size: 28 }) }),
2040
+ /* @__PURE__ */ jsx13(EmptyTitle, { children: title ?? "Nada por aqui" }),
2041
+ /* @__PURE__ */ jsx13(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
2042
+ ] }),
2043
+ content !== void 0 && content !== null ? /* @__PURE__ */ jsx13(EmptyContent, { children: content }) : null
2044
+ ] })
2045
+ }
2046
+ );
2047
+ });
2048
+ Empty.displayName = "Empty";
2049
+ EmptyMedia.displayName = "EmptyMedia";
2050
+ EmptyHeader.displayName = "EmptyHeader";
2051
+ EmptyTitle.displayName = "EmptyTitle";
2052
+ EmptyDescription.displayName = "EmptyDescription";
2053
+ EmptyContent.displayName = "EmptyContent";
2054
+
2055
+ // src/components/input.tsx
2056
+ import * as React13 from "react";
2057
+ import { REGEXP_ONLY_DIGITS as REGEXP_ONLY_DIGITS2 } from "input-otp";
2058
+ import { AnimatePresence, motion as motion2, useReducedMotion as useReducedMotion2 } from "motion/react";
2059
+
2060
+ // src/components/input-otp.tsx
2061
+ import * as React12 from "react";
2062
+ import {
2063
+ OTPInput,
2064
+ OTPInputContext,
2065
+ REGEXP_ONLY_DIGITS
2066
+ } from "input-otp";
2067
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
2068
+ var InputOTP = React12.forwardRef(({ className, containerClassName, ...props }, ref) => {
2069
+ return /* @__PURE__ */ jsx14(
2070
+ OTPInput,
2071
+ {
2072
+ ref,
2073
+ containerClassName: cn("flex items-center gap-4 has-[:disabled]:opacity-50", containerClassName),
2074
+ className: cn("disabled:cursor-not-allowed", className),
2075
+ ...props
2076
+ }
2077
+ );
2078
+ });
2079
+ InputOTP.displayName = "InputOTP";
2080
+ var InputOTPGroup = React12.forwardRef(
2081
+ ({ className, ...props }, ref) => {
2082
+ return /* @__PURE__ */ jsx14(
2083
+ "div",
2084
+ {
2085
+ ref,
2086
+ className: cn("flex overflow-hidden rounded-[12px] border border-[#C9D5FF] bg-card", className),
2087
+ ...props
2088
+ }
2089
+ );
2090
+ }
2091
+ );
2092
+ InputOTPGroup.displayName = "InputOTPGroup";
2093
+ var InputOTPSlot = React12.forwardRef(
2094
+ ({ className, index, ...props }, ref) => {
2095
+ const otpContext = React12.useContext(OTPInputContext);
2096
+ const slot = otpContext.slots[index];
2097
+ if (!slot) {
2098
+ return /* @__PURE__ */ jsx14(
2099
+ "div",
2100
+ {
2101
+ ref,
2102
+ className: cn(
2103
+ "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[#D9E2FA] bg-card last:border-r-0",
2104
+ className
2105
+ ),
2106
+ ...props
2107
+ }
2108
+ );
2109
+ }
2110
+ return /* @__PURE__ */ jsxs9(
2111
+ "div",
2112
+ {
2113
+ ref,
2114
+ className: cn(
2115
+ "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[#D9E2FA] bg-card text-[40px] font-medium leading-none tracking-[-0.04em] text-[var(--sofya-tag-navy)] transition-[background-color,box-shadow,border-color,color] duration-sofya ease-sofya last:border-r-0",
2116
+ slot.isActive && "z-10 border-transparent bg-[#F7FAFF] text-[#274FC6] shadow-[inset_0_0_0_1px_rgba(201,213,255,0.95),0_16px_32px_-24px_rgba(93,129,236,0.55)] ring-2 ring-inset ring-[#D9E2FA]/95",
2117
+ className
2118
+ ),
2119
+ ...props,
2120
+ children: [
2121
+ slot.char ?? null,
2122
+ slot.hasFakeCaret ? /* @__PURE__ */ jsx14("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx14("div", { className: "h-10 w-[2px] animate-pulse rounded-full bg-[#356FD4] shadow-[0_0_14px_rgba(53,111,212,0.32)]" }) }) : null
2123
+ ]
2124
+ }
2125
+ );
2126
+ }
2127
+ );
2128
+ InputOTPSlot.displayName = "InputOTPSlot";
2129
+ var InputOTPSeparator = React12.forwardRef(
2130
+ ({ className, ...props }, ref) => {
2131
+ return /* @__PURE__ */ jsx14(
2132
+ "div",
2133
+ {
2134
+ ref,
2135
+ role: "separator",
2136
+ className: cn("flex items-center justify-center px-2 text-[28px] leading-none text-[#4B5576]", className),
2137
+ ...props,
2138
+ children: /* @__PURE__ */ jsx14("span", { "aria-hidden": "true", children: "." })
2139
+ }
2140
+ );
2141
+ }
2142
+ );
2143
+ InputOTPSeparator.displayName = "InputOTPSeparator";
2144
+
2145
+ // src/components/input.tsx
2146
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
2147
+ var inputVariantOptions = ["default", "search", "otp", "upload"];
2148
+ var uploadKindOptions = ["document", "image", "video"];
2149
+ var uploadAcceptByKind = {
2150
+ document: ".pdf,.doc,.docx,.txt,.rtf,.odt,.jpg,.jpeg,.png,.webp,.gif",
2151
+ image: ".jpg,.jpeg,.png,.webp,.gif",
2152
+ video: ".mp4,.mov,.avi,.webm,.m4v"
2153
+ };
2154
+ var uploadDescriptionByKind = {
2155
+ document: "pdf, documento ou imagem (jpg, png, webp)",
2156
+ image: "imagem (jpg, png, webp)",
2157
+ video: "video (mp4, mov, webm)"
2158
+ };
2159
+ var uploadAriaLabelByKind = {
2160
+ document: "Upload de documento ou imagem",
2161
+ image: "Upload de imagem",
2162
+ video: "Upload de video"
2163
+ };
2164
+ var uploadDocumentExtensions = /* @__PURE__ */ new Set(["pdf", "doc", "docx", "txt", "rtf", "odt"]);
2165
+ var uploadImageExtensions = /* @__PURE__ */ new Set(["jpg", "jpeg", "png", "webp", "gif"]);
2166
+ var uploadVideoExtensions = /* @__PURE__ */ new Set(["mp4", "mov", "avi", "webm", "m4v"]);
2167
+ function resolveUploadFileExtension(file) {
2168
+ return file.name.split(".").pop()?.trim().toLowerCase();
2169
+ }
2170
+ function resolveUploadFileSignature(file) {
2171
+ return `${file.name}-${file.size}-${file.lastModified}-${file.type}`;
2172
+ }
2173
+ function mergeUploadFiles(currentFiles, nextFiles, multiple) {
2174
+ if (!multiple) {
2175
+ return nextFiles.slice(0, 1);
2176
+ }
2177
+ const filesBySignature = /* @__PURE__ */ new Map();
2178
+ currentFiles.forEach((file) => {
2179
+ filesBySignature.set(resolveUploadFileSignature(file), file);
2180
+ });
2181
+ nextFiles.forEach((file) => {
2182
+ filesBySignature.set(resolveUploadFileSignature(file), file);
2183
+ });
2184
+ return Array.from(filesBySignature.values());
2185
+ }
2186
+ var uploadListItemTransition = {
2187
+ duration: 0.2,
2188
+ ease: [0.22, 1, 0.36, 1]
2189
+ };
2190
+ function formatUploadFileSize(bytes) {
2191
+ if (bytes < 1024) {
2192
+ return `${bytes} B`;
2193
+ }
2194
+ if (bytes < 1024 * 1024) {
2195
+ const kilobytes = bytes / 1024;
2196
+ return `${kilobytes >= 10 ? Math.round(kilobytes) : kilobytes.toFixed(1)} KB`;
2197
+ }
2198
+ const megabytes = bytes / (1024 * 1024);
2199
+ return `${megabytes >= 10 ? Math.round(megabytes) : megabytes.toFixed(1)} MB`;
2200
+ }
2201
+ function resolveUploadFileBadge(file) {
2202
+ const extension = resolveUploadFileExtension(file);
2203
+ if (extension) {
2204
+ return extension.toUpperCase();
2205
+ }
2206
+ if (file.type.startsWith("image/")) {
2207
+ return "IMG";
2208
+ }
2209
+ if (file.type.startsWith("video/")) {
2210
+ return "VIDEO";
2211
+ }
2212
+ return "FILE";
2213
+ }
2214
+ function resolveUploadFileVisualKind(file, fallbackKind) {
2215
+ const extension = resolveUploadFileExtension(file);
2216
+ if (file.type.startsWith("image/") || extension && uploadImageExtensions.has(extension)) {
2217
+ return "image";
2218
+ }
2219
+ if (file.type.startsWith("video/") || extension && uploadVideoExtensions.has(extension)) {
2220
+ return "video";
2221
+ }
2222
+ if (extension && uploadDocumentExtensions.has(extension)) {
2223
+ return "document";
2224
+ }
2225
+ if (fallbackKind === "image") {
2226
+ return "image";
2227
+ }
2228
+ if (fallbackKind === "video") {
2229
+ return "video";
2230
+ }
2231
+ return "document";
2232
+ }
2233
+ function InputShell({
2234
+ containerClassName,
2235
+ control,
2236
+ label,
2237
+ labelClassName,
2238
+ resolvedId
2239
+ }) {
2240
+ if (!label && !containerClassName) {
2241
+ return control;
2242
+ }
2243
+ return /* @__PURE__ */ jsxs10("div", { className: cn("grid w-full gap-4", containerClassName), children: [
2244
+ label ? /* @__PURE__ */ jsx15(
2245
+ "label",
2246
+ {
2247
+ className: cn("text-[var(--sofya-tag-navy)]", labelClassName),
2248
+ htmlFor: resolvedId,
2249
+ children: renderTextContent(label, {
2250
+ as: "span",
2251
+ className: "block text-[var(--sofya-tag-navy)]",
2252
+ size: "h4",
2253
+ style: {
2254
+ fontWeight: 500,
2255
+ lineHeight: "22px",
2256
+ letterSpacing: "-0.02em"
2257
+ }
2258
+ })
2259
+ }
2260
+ ) : null,
2261
+ control
2262
+ ] });
2263
+ }
2264
+ function UploadInputShell({
2265
+ containerClassName,
2266
+ control,
2267
+ label,
2268
+ labelClassName,
2269
+ optionalLabel
2270
+ }) {
2271
+ if (!label && !optionalLabel && !containerClassName) {
2272
+ return control;
2273
+ }
2274
+ return /* @__PURE__ */ jsxs10("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2275
+ label || optionalLabel ? /* @__PURE__ */ jsxs10(
2276
+ "div",
2277
+ {
2278
+ className: cn("text-[#5B6C92]", labelClassName),
2279
+ children: [
2280
+ renderTextContent(label, {
2281
+ as: "span",
2282
+ className: "text-[#5B6C92]",
2283
+ size: "body",
2284
+ style: {
2285
+ fontWeight: 700,
2286
+ lineHeight: "normal",
2287
+ letterSpacing: "-0.02em"
2288
+ }
2289
+ }),
2290
+ optionalLabel ? /* @__PURE__ */ jsx15("span", { className: "ml-2 text-[#8C99B7]", children: renderTextContent(optionalLabel, {
2291
+ as: "span",
2292
+ className: "text-[#8C99B7]",
2293
+ size: "tiny",
2294
+ style: {
2295
+ fontWeight: 400,
2296
+ lineHeight: "normal"
2297
+ }
2298
+ }) }) : null
2299
+ ]
2300
+ }
2301
+ ) : null,
2302
+ control
2303
+ ] });
2304
+ }
2305
+ function UploadGlyph({ className }) {
2306
+ return /* @__PURE__ */ jsx15(
2307
+ "svg",
2308
+ {
2309
+ "aria-hidden": "true",
2310
+ className: cn("inline-block shrink-0 align-middle", className),
2311
+ fill: "none",
2312
+ focusable: "false",
2313
+ viewBox: "0 0 20 20",
2314
+ xmlns: "http://www.w3.org/2000/svg",
2315
+ children: /* @__PURE__ */ jsx15(
2316
+ "path",
2317
+ {
2318
+ d: "M10 12.5V3.75M6.66667 7.08333L10 3.75L13.3333 7.08333M5 11.6667V14.1667C5 14.6269 5.3731 15 5.83333 15H14.1667C14.6269 15 15 14.6269 15 14.1667V11.6667",
2319
+ stroke: "currentColor",
2320
+ strokeLinecap: "round",
2321
+ strokeLinejoin: "round",
2322
+ strokeWidth: "2"
2323
+ }
2324
+ )
2325
+ }
2326
+ );
2327
+ }
2328
+ function UploadFileTypeGlyph({
2329
+ className,
2330
+ kind
2331
+ }) {
2332
+ if (kind === "image") {
2333
+ return /* @__PURE__ */ jsxs10(
2334
+ "svg",
2335
+ {
2336
+ "aria-hidden": "true",
2337
+ className: cn("inline-block shrink-0 align-middle", className),
2338
+ fill: "none",
2339
+ focusable: "false",
2340
+ viewBox: "0 0 18 18",
2341
+ xmlns: "http://www.w3.org/2000/svg",
2342
+ children: [
2343
+ /* @__PURE__ */ jsx15("rect", { x: "2.5", y: "3", width: "13", height: "12", rx: "2.5", stroke: "currentColor", strokeWidth: "1.5" }),
2344
+ /* @__PURE__ */ jsx15("circle", { cx: "6.75", cy: "7.25", r: "1.25", fill: "currentColor" }),
2345
+ /* @__PURE__ */ jsx15(
2346
+ "path",
2347
+ {
2348
+ d: "M4.5 12L7.25 9.25C7.64052 8.85948 8.27368 8.85948 8.66421 9.25L9.5 10.0858C9.89052 10.4763 10.5237 10.4763 10.9142 10.0858L11.25 9.75C11.6405 9.35948 12.2737 9.35948 12.6642 9.75L13.5 10.5858",
2349
+ stroke: "currentColor",
2350
+ strokeLinecap: "round",
2351
+ strokeLinejoin: "round",
2352
+ strokeWidth: "1.5"
2353
+ }
2354
+ )
2355
+ ]
2356
+ }
2357
+ );
2358
+ }
2359
+ if (kind === "video") {
2360
+ return /* @__PURE__ */ jsxs10(
2361
+ "svg",
2362
+ {
2363
+ "aria-hidden": "true",
2364
+ className: cn("inline-block shrink-0 align-middle", className),
2365
+ fill: "none",
2366
+ focusable: "false",
2367
+ viewBox: "0 0 18 18",
2368
+ xmlns: "http://www.w3.org/2000/svg",
2369
+ children: [
2370
+ /* @__PURE__ */ jsx15("rect", { x: "2.5", y: "4", width: "13", height: "10", rx: "2.5", stroke: "currentColor", strokeWidth: "1.5" }),
2371
+ /* @__PURE__ */ jsx15(
2372
+ "path",
2373
+ {
2374
+ d: "M8 7.35C8 7.03889 8.33624 6.84443 8.60583 7.00018L11.1583 8.47518C11.4279 8.63094 11.4279 9.02088 11.1583 9.17664L8.60583 10.6516C8.33624 10.8074 8 10.6129 8 10.3018V7.35Z",
2375
+ fill: "currentColor"
2376
+ }
2377
+ )
2378
+ ]
2379
+ }
2380
+ );
2381
+ }
2382
+ return /* @__PURE__ */ jsxs10(
2383
+ "svg",
2384
+ {
2385
+ "aria-hidden": "true",
2386
+ className: cn("inline-block shrink-0 align-middle", className),
2387
+ fill: "none",
2388
+ focusable: "false",
2389
+ viewBox: "0 0 18 18",
2390
+ xmlns: "http://www.w3.org/2000/svg",
2391
+ children: [
2392
+ /* @__PURE__ */ jsx15(
2393
+ "path",
2394
+ {
2395
+ d: "M7.5 2.25H5C3.89543 2.25 3 3.14543 3 4.25V13.75C3 14.8546 3.89543 15.75 5 15.75H13C14.1046 15.75 15 14.8546 15 13.75V8.25L11.25 4.5H9.75C8.50736 4.5 7.5 3.49264 7.5 2.25Z",
2396
+ stroke: "currentColor",
2397
+ strokeLinejoin: "round",
2398
+ strokeWidth: "1.5"
2399
+ }
2400
+ ),
2401
+ /* @__PURE__ */ jsx15(
2402
+ "path",
2403
+ {
2404
+ d: "M7.5 2.25V4.25C7.5 5.35457 8.39543 6.25 9.5 6.25H11.5",
2405
+ stroke: "currentColor",
2406
+ strokeLinecap: "round",
2407
+ strokeLinejoin: "round",
2408
+ strokeWidth: "1.5"
2409
+ }
2410
+ ),
2411
+ /* @__PURE__ */ jsx15(
2412
+ "path",
2413
+ {
2414
+ d: "M6 10H12M6 12.5H10",
2415
+ stroke: "currentColor",
2416
+ strokeLinecap: "round",
2417
+ strokeWidth: "1.5"
2418
+ }
2419
+ )
2420
+ ]
2421
+ }
2422
+ );
2423
+ }
2424
+ var UploadInputControl = React13.forwardRef(
2425
+ function UploadInputControl2({
2426
+ accept,
2427
+ "aria-label": ariaLabel,
2428
+ className,
2429
+ disabled,
2430
+ multiple,
2431
+ onChange,
2432
+ onFilesChange,
2433
+ uploadDescription,
2434
+ uploadKind = "document",
2435
+ uploadTitle,
2436
+ resolvedId,
2437
+ ...uploadProps
2438
+ }, ref) {
2439
+ const inputRef = React13.useRef(null);
2440
+ const [isDragActive, setIsDragActive] = React13.useState(false);
2441
+ const [selectedFiles, setSelectedFiles] = React13.useState([]);
2442
+ const resolvedMultiple = multiple ?? true;
2443
+ const prefersReducedMotion = useReducedMotion2();
2444
+ React13.useImperativeHandle(ref, () => inputRef.current);
2445
+ const resolvedAccept = accept ?? uploadAcceptByKind[uploadKind];
2446
+ const resolvedAriaLabel = ariaLabel ?? uploadAriaLabelByKind[uploadKind];
2447
+ const resolvedTitle = uploadTitle ?? "Arraste arquivos aqui ou clique para selecionar";
2448
+ const resolvedDescription = uploadDescription ?? uploadDescriptionByKind[uploadKind];
2449
+ const syncSelectedFiles = React13.useCallback(
2450
+ (files) => {
2451
+ const normalizedFiles = resolvedMultiple ? files : files.slice(0, 1);
2452
+ setSelectedFiles(normalizedFiles);
2453
+ onFilesChange?.(normalizedFiles);
2454
+ },
2455
+ [onFilesChange, resolvedMultiple]
2456
+ );
2457
+ const applyFilesToInput = React13.useCallback((files) => {
2458
+ const inputElement = inputRef.current;
2459
+ if (!inputElement || typeof DataTransfer === "undefined") {
2460
+ return false;
2461
+ }
2462
+ try {
2463
+ const transfer = new DataTransfer();
2464
+ files.forEach((file) => {
2465
+ transfer.items.add(file);
2466
+ });
2467
+ inputElement.files = transfer.files;
2468
+ if (!files.length) {
2469
+ inputElement.value = "";
2470
+ }
2471
+ return true;
2472
+ } catch {
2473
+ return false;
2474
+ }
2475
+ }, []);
2476
+ const handleInputChange = React13.useCallback(
2477
+ (event) => {
2478
+ const nextFiles = mergeUploadFiles(
2479
+ selectedFiles,
2480
+ Array.from(event.currentTarget.files ?? []),
2481
+ resolvedMultiple
2482
+ );
2483
+ applyFilesToInput(nextFiles);
2484
+ onChange?.(event);
2485
+ syncSelectedFiles(nextFiles);
2486
+ },
2487
+ [applyFilesToInput, onChange, resolvedMultiple, selectedFiles, syncSelectedFiles]
2488
+ );
2489
+ const openPicker = React13.useCallback(() => {
2490
+ if (!disabled) {
2491
+ inputRef.current?.click();
2492
+ }
2493
+ }, [disabled]);
2494
+ const handleKeyDown = React13.useCallback(
2495
+ (event) => {
2496
+ if (disabled) {
2497
+ return;
2498
+ }
2499
+ if (event.key === "Enter" || event.key === " ") {
2500
+ event.preventDefault();
2501
+ openPicker();
2502
+ }
2503
+ },
2504
+ [disabled, openPicker]
2505
+ );
2506
+ const handleDragEnter = React13.useCallback(
2507
+ (event) => {
2508
+ event.preventDefault();
2509
+ if (!disabled) {
2510
+ setIsDragActive(true);
2511
+ }
2512
+ },
2513
+ [disabled]
2514
+ );
2515
+ const handleDragLeave = React13.useCallback(
2516
+ (event) => {
2517
+ if (disabled) {
2518
+ return;
2519
+ }
2520
+ const relatedTarget = event.relatedTarget;
2521
+ if (relatedTarget instanceof Node && event.currentTarget.contains(relatedTarget)) {
2522
+ return;
2523
+ }
2524
+ setIsDragActive(false);
2525
+ },
2526
+ [disabled]
2527
+ );
2528
+ const handleDragOver = React13.useCallback(
2529
+ (event) => {
2530
+ event.preventDefault();
2531
+ if (disabled) {
2532
+ return;
2533
+ }
2534
+ event.dataTransfer.dropEffect = "copy";
2535
+ setIsDragActive(true);
2536
+ },
2537
+ [disabled]
2538
+ );
2539
+ const handleDrop = React13.useCallback(
2540
+ (event) => {
2541
+ event.preventDefault();
2542
+ if (disabled) {
2543
+ return;
2544
+ }
2545
+ setIsDragActive(false);
2546
+ const droppedFiles = event.dataTransfer.files;
2547
+ if (!droppedFiles?.length) {
2548
+ return;
2549
+ }
2550
+ const nextFiles = mergeUploadFiles(
2551
+ selectedFiles,
2552
+ Array.from(droppedFiles),
2553
+ resolvedMultiple
2554
+ );
2555
+ let dispatchedChangeEvent = false;
2556
+ if (applyFilesToInput(nextFiles)) {
2557
+ inputRef.current?.dispatchEvent(new Event("change", { bubbles: true }));
2558
+ dispatchedChangeEvent = true;
2559
+ }
2560
+ if (!dispatchedChangeEvent) {
2561
+ syncSelectedFiles(nextFiles);
2562
+ }
2563
+ },
2564
+ [applyFilesToInput, disabled, resolvedMultiple, selectedFiles, syncSelectedFiles]
2565
+ );
2566
+ const handleRemoveFile = React13.useCallback(
2567
+ (fileIndex) => {
2568
+ if (disabled) {
2569
+ return;
2570
+ }
2571
+ const nextFiles = selectedFiles.filter((_, index) => index !== fileIndex);
2572
+ applyFilesToInput(nextFiles);
2573
+ syncSelectedFiles(nextFiles);
2574
+ },
2575
+ [applyFilesToInput, disabled, selectedFiles, syncSelectedFiles]
2576
+ );
2577
+ return /* @__PURE__ */ jsxs10("div", { className: "grid w-full gap-4", children: [
2578
+ /* @__PURE__ */ jsx15(
2579
+ "input",
2580
+ {
2581
+ ...uploadProps,
2582
+ accept: resolvedAccept,
2583
+ "aria-label": resolvedAriaLabel,
2584
+ className: "sr-only",
2585
+ disabled,
2586
+ id: resolvedId,
2587
+ multiple: resolvedMultiple,
2588
+ ref: inputRef,
2589
+ type: "file",
2590
+ onChange: handleInputChange
2591
+ }
2592
+ ),
2593
+ /* @__PURE__ */ jsxs10(
2594
+ "label",
2595
+ {
2596
+ "aria-disabled": disabled || void 0,
2597
+ className: cn(
2598
+ "flex w-full flex-col items-center justify-center gap-2 overflow-clip rounded-[20px] border-2 border-dashed border-[#E3EAFF] bg-[#FBFCFF] px-4 py-4 text-center transition-[border-color,background-color,box-shadow,color] duration-sofya ease-sofya",
2599
+ !disabled && "cursor-pointer hover:border-[#D1DBFF] hover:bg-[#F7F9FF] focus-visible:border-transparent focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60 focus-within:border-transparent focus-within:ring-2 focus-within:ring-[#D9E2FA]/60 active:border-transparent active:ring-2 active:ring-[#D9E2FA]/60",
2600
+ isDragActive && "border-[#C9D5FF] bg-[#F4F7FF] shadow-[0_0_0_4px_rgba(227,234,255,0.45)]",
2601
+ disabled && "cursor-not-allowed opacity-60",
2602
+ className
2603
+ ),
2604
+ htmlFor: resolvedId,
2605
+ role: "button",
2606
+ tabIndex: disabled ? -1 : 0,
2607
+ onDragEnter: handleDragEnter,
2608
+ onDragLeave: handleDragLeave,
2609
+ onDragOver: handleDragOver,
2610
+ onDrop: handleDrop,
2611
+ onKeyDown: handleKeyDown,
2612
+ children: [
2613
+ /* @__PURE__ */ jsx15("span", { className: "flex size-10 items-center justify-center rounded-[6px] p-2 text-black", children: /* @__PURE__ */ jsx15(UploadGlyph, { className: "size-[18px]" }) }),
2614
+ /* @__PURE__ */ jsx15("span", { className: "text-black", children: renderTextContent(resolvedTitle, {
2615
+ as: "span",
2616
+ className: "block text-black",
2617
+ size: "body",
2618
+ style: {
2619
+ fontWeight: 500,
2620
+ lineHeight: "normal",
2621
+ letterSpacing: "-0.02em"
2622
+ }
2623
+ }) }),
2624
+ resolvedDescription ? /* @__PURE__ */ jsx15("span", { className: "text-[#8C99B7]", children: renderTextContent(resolvedDescription, {
2625
+ as: "span",
2626
+ className: "block text-[#8C99B7]",
2627
+ size: "tiny",
2628
+ style: {
2629
+ fontWeight: 500,
2630
+ lineHeight: "normal",
2631
+ letterSpacing: "-0.02em"
2632
+ }
2633
+ }) }) : null
2634
+ ]
2635
+ }
2636
+ ),
2637
+ /* @__PURE__ */ jsx15(motion2.div, { layout: true, role: "list", className: "grid gap-4 overflow-hidden", children: /* @__PURE__ */ jsx15(AnimatePresence, { initial: false, children: selectedFiles.map((file, index) => {
2638
+ const fileKey = resolveUploadFileSignature(file);
2639
+ return /* @__PURE__ */ jsx15(
2640
+ motion2.div,
2641
+ {
2642
+ layout: true,
2643
+ role: "listitem",
2644
+ className: "overflow-hidden",
2645
+ initial: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.98, height: 0 },
2646
+ animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1, height: "auto" },
2647
+ exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, scale: 0.98, height: 0 },
2648
+ transition: uploadListItemTransition,
2649
+ children: /* @__PURE__ */ jsxs10(Card, { variant: "panel", className: "flex items-center gap-4 p-4", children: [
2650
+ /* @__PURE__ */ jsx15("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[#F4F7FF] text-[#6B86D6]", children: /* @__PURE__ */ jsx15(
2651
+ UploadFileTypeGlyph,
2652
+ {
2653
+ className: "size-[18px]",
2654
+ kind: resolveUploadFileVisualKind(file, uploadKind)
2655
+ }
2656
+ ) }),
2657
+ /* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
2658
+ /* @__PURE__ */ jsx15("p", { className: "truncate text-black", children: renderTextContent(file.name, {
2659
+ as: "span",
2660
+ className: "block truncate text-black",
2661
+ size: "body",
2662
+ style: {
2663
+ fontWeight: 500,
2664
+ lineHeight: "normal",
2665
+ letterSpacing: "-0.02em"
2666
+ }
2667
+ }) }),
2668
+ /* @__PURE__ */ jsx15("p", { className: "mt-2 text-[#8C99B7]", children: renderTextContent(
2669
+ `${resolveUploadFileBadge(file)} \xB7 ${formatUploadFileSize(file.size)}`,
2670
+ {
2671
+ as: "span",
2672
+ className: "block text-[#8C99B7]",
2673
+ size: "tiny",
2674
+ style: {
2675
+ fontWeight: 500,
2676
+ lineHeight: "normal",
2677
+ letterSpacing: "-0.02em"
2678
+ }
2679
+ }
2680
+ ) })
2681
+ ] }),
2682
+ /* @__PURE__ */ jsx15(
2683
+ "button",
2684
+ {
2685
+ "aria-label": `Remover ${file.name}`,
2686
+ className: "inline-flex size-9 shrink-0 items-center justify-center rounded-full text-[#8C99B7] transition-colors duration-sofya ease-sofya hover:bg-[#F4F7FF] hover:text-[var(--sofya-tag-navy)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60",
2687
+ disabled,
2688
+ type: "button",
2689
+ onClick: (event) => {
2690
+ event.preventDefault();
2691
+ event.stopPropagation();
2692
+ handleRemoveFile(index);
2693
+ },
2694
+ children: /* @__PURE__ */ jsx15(
2695
+ Icon,
2696
+ {
2697
+ "aria-hidden": "true",
2698
+ color: "current",
2699
+ name: "x",
2700
+ size: 14
2701
+ }
2702
+ )
2703
+ }
2704
+ )
2705
+ ] })
2706
+ },
2707
+ fileKey
2708
+ );
2709
+ }) }) })
2710
+ ] });
2711
+ }
2712
+ );
2713
+ UploadInputControl.displayName = "UploadInputControl";
2714
+ var Input = React13.forwardRef((props, ref) => {
2715
+ const generatedId = React13.useId();
2716
+ const resolvedId = props.id ?? generatedId;
2717
+ const variant = props.variant ?? "default";
2718
+ if (variant === "otp") {
2719
+ const {
2720
+ className: className2,
2721
+ containerClassName: containerClassName2,
2722
+ id: _id2,
2723
+ inputMode,
2724
+ maxLength,
2725
+ otpGroupClassName,
2726
+ otpLength,
2727
+ otpSeparator,
2728
+ otpSeparatorClassName,
2729
+ otpSlotClassName,
2730
+ otpSplitIndex,
2731
+ pattern,
2732
+ type: _type,
2733
+ variant: _variant2,
2734
+ ...otpProps
2735
+ } = props;
2736
+ const resolvedLength = otpLength ?? maxLength ?? 6;
2737
+ const resolvedSplitIndex = Math.min(
2738
+ Math.max(otpSplitIndex ?? Math.ceil(resolvedLength / 2), 1),
2739
+ resolvedLength
2740
+ );
2741
+ const hasTrailingGroup = resolvedSplitIndex < resolvedLength;
2742
+ const otpAriaLabel = otpProps["aria-label"] ?? "Verification code";
2743
+ const otpControl = /* @__PURE__ */ jsxs10(
2744
+ InputOTP,
2745
+ {
2746
+ ref,
2747
+ "aria-label": otpAriaLabel,
2748
+ id: resolvedId,
2749
+ maxLength: resolvedLength,
2750
+ pattern: pattern ?? REGEXP_ONLY_DIGITS2,
2751
+ inputMode: inputMode ?? "numeric",
2752
+ type: "text",
2753
+ containerClassName: className2,
2754
+ ...otpProps,
2755
+ children: [
2756
+ /* @__PURE__ */ jsx15(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedSplitIndex }, (_, index) => /* @__PURE__ */ jsx15(
2757
+ InputOTPSlot,
2758
+ {
2759
+ className: otpSlotClassName,
2760
+ index
2761
+ },
2762
+ `otp-leading-${index}`
2763
+ )) }),
2764
+ hasTrailingGroup ? otpSeparator ?? /* @__PURE__ */ jsx15(InputOTPSeparator, { className: otpSeparatorClassName }) : null,
2765
+ hasTrailingGroup ? /* @__PURE__ */ jsx15(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedLength - resolvedSplitIndex }, (_, index) => /* @__PURE__ */ jsx15(
2766
+ InputOTPSlot,
2767
+ {
2768
+ className: otpSlotClassName,
2769
+ index: index + resolvedSplitIndex
2770
+ },
2771
+ `otp-trailing-${index}`
2772
+ )) }) : null
2773
+ ]
2774
+ }
2775
+ );
2776
+ return /* @__PURE__ */ jsx15(
2777
+ InputShell,
2778
+ {
2779
+ containerClassName: containerClassName2,
2780
+ control: otpControl,
2781
+ resolvedId
2782
+ }
2783
+ );
2784
+ }
2785
+ if (variant === "upload") {
2786
+ const {
2787
+ containerClassName: containerClassName2,
2788
+ id: _id2,
2789
+ label: label2,
2790
+ labelClassName: labelClassName2,
2791
+ uploadOptionalLabel,
2792
+ variant: _variant2,
2793
+ ...uploadProps
2794
+ } = props;
2795
+ const uploadControl = /* @__PURE__ */ jsx15(
2796
+ UploadInputControl,
2797
+ {
2798
+ ...uploadProps,
2799
+ ref,
2800
+ resolvedId
2801
+ }
2802
+ );
2803
+ return /* @__PURE__ */ jsx15(
2804
+ UploadInputShell,
2805
+ {
2806
+ containerClassName: containerClassName2,
2807
+ control: uploadControl,
2808
+ label: label2,
2809
+ labelClassName: labelClassName2,
2810
+ optionalLabel: uploadOptionalLabel
2811
+ }
2812
+ );
2813
+ }
2814
+ const {
2815
+ className,
2816
+ containerClassName,
2817
+ id: _id,
2818
+ label,
2819
+ labelClassName,
2820
+ type,
2821
+ variant: _variant,
2822
+ ...nativeProps
2823
+ } = props;
2824
+ const isSearch = variant === "search";
2825
+ const resolvedType = type ?? (isSearch ? "search" : void 0);
2826
+ const ariaLabel = nativeProps["aria-label"] ?? (typeof label === "string" ? label : isSearch ? "Search" : void 0);
2827
+ const nativeControl = isSearch ? /* @__PURE__ */ jsxs10("div", { className: "flex h-[88px] w-full items-center gap-6 rounded-full border border-[#D9E2FA] bg-white px-8 shadow-none transition-[border-color,box-shadow,background-color] duration-sofya ease-sofya hover:border-[#C9D5FF] hover:ring-2 hover:ring-[#D9E2FA]/35 focus-within:border-transparent focus-within:ring-2 focus-within:ring-[#D9E2FA]/60 has-[:active]:border-transparent has-[:active]:ring-2 has-[:active]:ring-[#D9E2FA]/60", children: [
2828
+ /* @__PURE__ */ jsx15(
2829
+ Icon,
2830
+ {
2831
+ "aria-hidden": "true",
2832
+ className: "shrink-0 text-[#7C86A8]",
2833
+ name: "search",
2834
+ size: 32
2835
+ }
2836
+ ),
2837
+ /* @__PURE__ */ jsx15(
2838
+ "input",
2839
+ {
2840
+ id: resolvedId,
2841
+ ref,
2842
+ type: resolvedType,
2843
+ className: cn(
2844
+ "h-full w-full appearance-none border-0 bg-transparent p-0 text-[23px] font-semibold leading-none tracking-[-0.03em] text-[#5B6C92] shadow-none outline-none transition-colors duration-sofya ease-sofya placeholder:font-semibold placeholder:text-[#7C86A8] placeholder:opacity-100 disabled:cursor-not-allowed disabled:opacity-50",
2845
+ "[&::-webkit-search-cancel-button]:hidden [&::-webkit-search-decoration]:hidden",
2846
+ className
2847
+ ),
2848
+ ...nativeProps,
2849
+ "aria-label": ariaLabel,
2850
+ placeholder: nativeProps.placeholder ?? "Search"
2851
+ }
2852
+ )
2853
+ ] }) : /* @__PURE__ */ jsx15(
2854
+ "input",
2855
+ {
2856
+ id: resolvedId,
2857
+ ref,
2858
+ type: resolvedType,
2859
+ className: cn(
2860
+ "flex h-10 w-full rounded-[10px] border border-[#D9E2FA] bg-card px-4 py-2 text-[16px] font-normal leading-[22px] tracking-[-0.02em] text-[var(--sofya-tag-navy)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya placeholder:text-[color:var(--sofya-tag-navy)]/50 hover:border-[#C9D5FF] focus:border-transparent focus:outline-none focus:ring-2 focus:ring-[#D9E2FA]/60 focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[#D9E2FA]/60 disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50",
2861
+ className
2862
+ ),
2863
+ ...nativeProps,
2864
+ "aria-label": ariaLabel
2865
+ }
2866
+ );
2867
+ return /* @__PURE__ */ jsx15(
2868
+ InputShell,
2869
+ {
2870
+ containerClassName,
2871
+ control: nativeControl,
2872
+ label: isSearch ? void 0 : label,
2873
+ labelClassName: isSearch ? void 0 : labelClassName,
2874
+ resolvedId
2875
+ }
2876
+ );
2877
+ });
2878
+ Input.displayName = "Input";
2879
+
2880
+ // src/components/label.tsx
2881
+ import * as React14 from "react";
2882
+ import { jsx as jsx16 } from "react/jsx-runtime";
2883
+ var Label = React14.forwardRef(
2884
+ ({ children, className, ...props }, ref) => {
2885
+ return /* @__PURE__ */ jsx16(
2886
+ "label",
2887
+ {
2888
+ ref,
2889
+ className: cn(
2890
+ "text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
2891
+ className
2892
+ ),
2893
+ ...props,
2894
+ children: renderTextContent(children, {
2895
+ as: "span",
2896
+ className: "block text-foreground",
2897
+ size: "body",
2898
+ style: {
2899
+ fontSize: "14px",
2900
+ fontWeight: 500,
2901
+ lineHeight: 1
2902
+ }
2903
+ })
2904
+ }
2905
+ );
2906
+ }
2907
+ );
2908
+ Label.displayName = "Label";
2909
+
2910
+ // src/components/link.tsx
2911
+ import * as React15 from "react";
2912
+ import { Slot as Slot3 } from "@radix-ui/react-slot";
2913
+ import { jsx as jsx17 } from "react/jsx-runtime";
2914
+ var Link = React15.forwardRef(function Link2({ asChild = false, className, ...props }, ref) {
2915
+ const Component = asChild ? Slot3 : "a";
2916
+ return /* @__PURE__ */ jsx17(
2917
+ Component,
2918
+ {
2919
+ ref,
2920
+ className: cn(
2921
+ "inline bg-[linear-gradient(currentColor,currentColor)] bg-[length:0%_1.5px] bg-[position:0_100%] bg-no-repeat pb-0 text-primary no-underline transition-[color,background-size,box-shadow] duration-sofya ease-sofya hover:bg-[length:100%_1.5px] hover:text-[#274FC6] focus-visible:rounded-[4px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60 focus-visible:ring-offset-0",
2922
+ className
2923
+ ),
2924
+ ...props
2925
+ }
2926
+ );
2927
+ });
2928
+ Link.displayName = "Link";
2929
+
2930
+ // src/components/logo.tsx
2931
+ import * as React16 from "react";
2932
+
2933
+ // src/components/logo-data.ts
2934
+ var logoAssets = {
2935
+ "mono": {
2936
+ width: 16,
2937
+ height: 23,
2938
+ viewBox: "0 0 16 23",
2939
+ paths: [
2940
+ {
2941
+ d: "M8.07721 0.0486377C9.76297 -0.255788 11.3766 0.900674 11.6739 2.62676C11.9711 4.35326 10.8412 6.00592 9.15533 6.31036C7.49248 6.61085 6.28577 8.0157 6.12701 9.65801C7.52712 10.4447 9.32387 10.2329 10.5088 9.01934C11.7191 7.7799 13.6883 7.7799 14.8985 9.01934C15.596 9.73391 15.8888 10.7063 15.7823 11.6395C15.7775 11.6847 15.7694 11.7294 15.7628 11.7742C15.7546 11.8265 15.7461 11.8786 15.7354 11.9305C15.7226 11.9944 15.707 12.0573 15.6905 12.1199C15.6838 12.1446 15.6782 12.1696 15.671 12.1941C15.6698 12.198 15.6692 12.202 15.668 12.2059C15.6667 12.2102 15.6645 12.2143 15.6631 12.2186C15.3329 13.3273 14.4244 14.2138 13.2354 14.4285C11.2336 14.7902 9.89219 16.7523 10.2452 18.8025C10.5423 20.5287 9.41297 22.1807 7.7276 22.4852C6.04189 22.7896 4.42828 21.633 4.13092 19.907C3.83372 18.1808 4.96365 16.5289 6.64947 16.2244C8.31218 15.9242 9.51766 14.519 9.67682 12.8768C8.27658 12.0893 6.47907 12.3017 5.29401 13.5154C4.08377 14.7545 2.11445 14.7548 0.904357 13.5154C0.194345 12.7883 -0.0954398 11.7937 0.0274038 10.8455C0.028594 10.8357 0.0300316 10.826 0.0313101 10.8162C0.0427579 10.7337 0.0565126 10.6517 0.0742788 10.5701C0.0818187 10.5344 0.0909471 10.4991 0.0996694 10.4637C0.113772 10.408 0.128483 10.3526 0.145568 10.2977C0.165244 10.2329 0.187408 10.1693 0.210998 10.1063C0.219654 10.0836 0.227204 10.0604 0.236388 10.0379C0.62699 9.06106 1.48137 8.30278 2.5694 8.10625C4.57137 7.74472 5.91263 5.78194 5.55963 3.73125C5.26246 2.00522 6.39199 0.353249 8.07721 0.0486377Z",
2942
+ fill: "#9CB1F0",
2943
+ fillRule: "evenodd",
2944
+ clipRule: "evenodd"
2945
+ }
2946
+ ]
2947
+ },
2948
+ "default": {
2949
+ width: 73,
2950
+ height: 87,
2951
+ viewBox: "0 0 73 87",
2952
+ paths: [
2953
+ {
2954
+ d: "M20.0784 54.8299C18.5629 55.0977 17.0094 55.0642 15.5068 54.7316C14.0041 54.399 12.5817 53.7736 11.3208 52.8913C10.0598 52.0089 8.98496 50.8869 8.15764 49.5891C7.33032 48.2914 6.76671 46.8434 6.49899 45.3278C6.23127 43.8123 6.26468 42.2588 6.59731 40.7562C6.92994 39.2536 7.55529 37.8312 8.43764 36.5702C9.31999 35.3092 10.4421 34.2344 11.7398 33.4071C13.0375 32.5798 14.4855 32.0161 16.0011 31.7484C19.635 31.1022 22.8643 29.0408 24.9802 26.0165C27.0961 22.9922 27.9258 19.252 27.2874 15.6166C26.8846 13.334 27.1677 10.9831 28.1009 8.86134C29.0341 6.73956 30.5755 4.94215 32.5303 3.6964C34.485 2.45065 36.7652 1.81251 39.0826 1.86267C41.4 1.91283 43.6505 2.64904 45.5495 3.97821C47.4485 5.30737 48.9107 7.1698 49.7512 9.32997C50.5918 11.4902 50.7729 13.8511 50.2716 16.1142C49.7704 18.3773 48.6094 20.4409 46.9353 22.0442C45.2613 23.6474 43.1494 24.7183 40.8668 25.1213C37.2334 25.7674 34.0047 27.8284 31.8889 30.852C29.7731 33.8757 28.9431 37.6151 29.5809 41.2499C30.118 44.3104 29.4192 47.459 27.6378 50.0049C25.8563 52.5508 23.1377 54.286 20.0784 54.8299Z",
2955
+ fill: "#365FD7"
2956
+ },
2957
+ {
2958
+ d: "M9.71176 51.685C8.62379 50.597 7.76075 49.3054 7.17195 47.8839C6.58314 46.4624 6.28008 44.9388 6.28008 43.4002C6.28008 41.8616 6.58314 40.338 7.17195 38.9165C7.76076 37.495 8.62379 36.2034 9.71176 35.1154C10.7997 34.0274 12.0914 33.1644 13.5129 32.5756C14.9344 31.9868 16.4579 31.6837 17.9966 31.6837C19.5352 31.6837 21.0588 31.9868 22.4803 32.5756C23.9018 33.1644 25.1934 34.0274 26.2814 35.1154C28.8937 37.7213 32.4331 39.1847 36.123 39.1843C39.8129 39.1839 43.3519 37.7198 45.9637 35.1133C47.6026 33.4749 49.6905 32.3594 51.9634 31.9076C54.2363 31.4559 56.5922 31.6883 58.733 32.5754C60.8738 33.4626 62.7035 34.9646 63.9907 36.8916C65.2779 38.8186 65.9648 41.084 65.9645 43.4013C65.9642 45.7187 65.2767 47.9839 63.989 49.9106C62.7014 51.8373 60.8713 53.3388 58.7302 54.2254C56.5892 55.112 54.2333 55.3438 51.9605 54.8915C49.6877 54.4392 47.6001 53.3231 45.9616 51.6843C43.3498 49.0785 39.8109 47.615 36.1215 47.615C32.432 47.615 28.8932 49.0785 26.2814 51.6843C24.0825 53.8784 21.103 55.1106 17.9967 55.1108C14.8904 55.1109 11.9109 53.8789 9.71176 51.685Z",
2959
+ fill: "#35D3C7"
2960
+ },
2961
+ {
2962
+ d: "M35.4804 84.7533C33.9649 85.021 32.4114 84.9876 30.9088 84.6549C29.4061 84.3223 27.9837 83.697 26.7228 82.8146C25.4618 81.9323 24.387 80.8102 23.5596 79.5125C22.7323 78.2147 22.1687 76.7667 21.901 75.2512C21.6333 73.7356 21.6667 72.1822 21.9993 70.6795C22.3319 69.1769 22.9573 67.7545 23.8396 66.4935C24.722 65.2326 25.8441 64.1577 27.1418 63.3304C28.4395 62.5031 29.8875 61.9395 31.4031 61.6718C35.037 61.0255 38.2663 58.9641 40.3822 55.9398C42.4981 52.9155 43.3278 49.1753 42.6894 45.54C42.2866 43.2573 42.5697 40.9065 43.5029 38.7847C44.4361 36.6629 45.9775 34.8655 47.9323 33.6197C49.887 32.374 52.1672 31.7358 54.4846 31.786C56.802 31.8362 59.0525 32.5724 60.9515 33.9015C62.8505 35.2307 64.3127 37.0931 65.1532 39.2533C65.9938 41.4135 66.1749 43.7744 65.6737 46.0375C65.1724 48.3006 64.0114 50.3643 62.3373 51.9675C60.6633 53.5707 58.5514 54.6416 56.2688 55.0446C52.6354 55.6908 49.4067 57.7517 47.2909 60.7754C45.1751 63.799 44.3451 67.5384 44.9829 71.1733C45.52 74.2338 44.8212 77.3823 43.0398 79.9282C41.2583 82.4741 38.5397 84.2093 35.4804 84.7533Z",
2963
+ fill: "#B55CAF"
2964
+ }
2965
+ ]
2966
+ },
2967
+ "text": {
2968
+ width: 143,
2969
+ height: 47,
2970
+ viewBox: "0 0 143 47",
2971
+ paths: [
2972
+ {
2973
+ d: "M15.093 36.7303C10.101 36.7303 6.33667 35.6353 3.80001 33.4453C1.26334 31.2553 -0.00332677 28.1886 6.56168e-06 24.2453H7.47001C7.39794 25.1747 7.55775 26.1075 7.9351 26.9599C8.31244 27.8124 8.89552 28.5578 9.63201 29.1293C11.3436 30.2547 13.3692 30.8053 15.415 30.7013C17.1692 30.8096 18.9188 30.4262 20.467 29.5943C21.0345 29.2318 21.4945 28.7238 21.7991 28.1232C22.1037 27.5226 22.2418 26.8514 22.199 26.1793C22.2397 25.276 21.9532 24.3883 21.392 23.6793C20.7394 22.9613 19.9224 22.4123 19.011 22.0793C17.5132 21.5107 15.9808 21.0378 14.423 20.6633C14.0897 20.5913 13.6943 20.4966 13.237 20.3793C10.9588 19.8608 8.73206 19.1375 6.58401 18.2183C5.01143 17.5343 3.65165 16.4401 2.64701 15.0503C1.6259 13.4711 1.12512 11.6117 1.21501 9.73329C1.13943 8.30544 1.44001 6.88276 2.08668 5.6075C2.73335 4.33223 3.70345 3.24906 4.90001 2.46629C7.35534 0.828956 10.5937 0.0102922 14.615 0.0102922C17.2654 -0.0769963 19.9047 0.39173 22.363 1.38629C24.2275 2.14967 25.8078 3.47511 26.884 5.17829C27.8735 6.86944 28.3761 8.80132 28.336 10.7603H21.056C21.0796 10.0753 20.9329 9.39523 20.6291 8.78091C20.3252 8.16659 19.8737 7.63724 19.315 7.24029C17.8412 6.29435 16.1039 5.84347 14.356 5.95329C12.9203 5.88122 11.4902 6.17834 10.202 6.81629C9.70718 7.09854 9.30244 7.51519 9.03467 8.018C8.76689 8.5208 8.64705 9.08918 8.68901 9.65729C8.6508 10.4918 8.92256 11.311 9.45201 11.9573C10.0677 12.6165 10.8364 13.1138 11.69 13.4053C13.0793 13.9054 14.4951 14.3284 15.931 14.6723H16.011C16.2374 14.7071 16.461 14.7582 16.68 14.8253C19.1301 15.388 21.5363 16.127 23.88 17.0363C25.5247 17.682 26.9723 18.7457 28.08 20.1223C29.1995 21.687 29.7535 23.586 29.651 25.5073C29.7141 27.077 29.4043 28.6393 28.7471 30.0662C28.0899 31.4931 27.1039 32.744 25.87 33.7163C23.35 35.7256 19.7577 36.7303 15.093 36.7303ZM46.693 36.6633C44.0926 36.7407 41.5152 36.1557 39.203 34.9633C37.2011 33.8919 35.5677 32.2431 34.515 30.2313C33.4165 28.0642 32.8671 25.6604 32.915 23.2313C32.8688 20.8266 33.4184 18.4479 34.515 16.3073C35.5697 14.307 37.2008 12.6696 39.197 11.6073C41.5117 10.4231 44.0882 9.84318 46.687 9.92129C49.294 9.84535 51.8783 10.4251 54.203 11.6073C56.2102 12.6636 57.8512 14.3019 58.911 16.3073C60.0076 18.4479 60.5573 20.8266 60.511 23.2313C60.5589 25.6604 60.0095 28.0642 58.911 30.2313C57.8559 32.2482 56.2154 33.8988 54.205 34.9663C51.8825 36.1556 49.2972 36.7393 46.689 36.6633H46.693ZM46.671 30.7963C47.5924 30.8531 48.515 30.7061 49.3732 30.3657C50.2313 30.0254 51.0039 29.5001 51.636 28.8273C52.8904 27.2408 53.5119 25.2455 53.38 23.2273C53.4174 21.8449 53.1473 20.4715 52.589 19.2063C52.1029 18.1379 51.2999 17.2448 50.289 16.6483C49.1838 16.0323 47.9327 15.7265 46.668 15.7633C45.7575 15.706 44.8457 15.8516 43.9984 16.1895C43.151 16.5274 42.3892 17.0492 41.768 17.7173C40.5429 19.2827 39.9354 21.2435 40.061 23.2273C40.0213 24.6352 40.2824 26.0354 40.827 27.3343C41.2902 28.4048 42.0761 29.304 43.075 29.9063C44.1688 30.5248 45.4109 30.8325 46.667 30.7963H46.671ZM68.511 29.9963V11.3733C68.4266 9.21075 68.7934 7.05433 69.588 5.04129C70.2229 3.53621 71.3779 2.3096 72.842 1.58529C74.5953 0.813695 76.5007 0.449569 78.415 0.52029H82.567V6.15129H79.501C78.6675 6.10729 77.8362 6.27265 77.083 6.63229C76.5183 6.94591 76.0905 7.45853 75.883 8.07029C75.6274 8.88943 75.5111 9.74566 75.539 10.6033V36.2203H68.507L68.511 29.9963ZM62.901 11.4583H82.964V17.5713H62.897L62.901 11.4583ZM91.215 40.8793H96.525C98.4213 41.0066 100.296 40.4122 101.772 39.2153C102.991 38.106 103.601 36.2376 103.601 33.6103V29.9923L104.395 31.0123C103.666 32.4581 102.529 33.6586 101.125 34.4653C99.6198 35.2812 97.9266 35.6874 96.215 35.6433C92.9257 35.6433 90.5313 34.6716 89.032 32.7283C87.5327 30.785 86.7833 27.8776 86.784 24.0063V10.3653H93.815V23.3773C93.6797 25.087 94.09 26.7955 94.987 28.2573C95.4182 28.7856 95.9708 29.2017 96.5977 29.4702C97.2246 29.7388 97.9071 29.8516 98.587 29.7993C99.3047 29.8602 100.026 29.7459 100.69 29.4663C101.354 29.1868 101.94 28.7503 102.398 28.1943C103.302 26.7418 103.723 25.0398 103.598 23.3333V10.3653H110.607V31.6123C110.754 34.6867 110.121 37.7483 108.767 40.5123C107.693 42.562 105.953 44.1845 103.833 45.1123C101.501 46.0357 99.008 46.4805 96.501 46.4203H91.215V40.8793ZM126.663 36.6633C124.47 36.7225 122.307 36.1415 120.438 34.9913C118.678 33.8538 117.302 32.2125 116.489 30.2813C115.556 28.0499 115.101 25.6482 115.151 23.2303C115.103 20.8443 115.559 18.4752 116.489 16.2773C117.308 14.3564 118.683 12.7248 120.438 11.5933C122.307 10.4431 124.47 9.86205 126.663 9.92129C128.689 9.86752 130.688 10.3935 132.425 11.4373C134.097 12.5171 135.393 14.0894 136.134 15.9373C137.053 18.2552 137.491 20.7358 137.422 23.2283C137.422 23.9576 137.398 24.6396 137.349 25.2743C137.243 27.4422 136.68 29.5631 135.697 31.4983C134.865 33.1031 133.596 34.4392 132.035 35.3513C130.392 36.2557 128.538 36.7084 126.663 36.6633ZM128.604 30.8203C129.486 30.8692 130.368 30.7162 131.183 30.3731C131.997 30.0301 132.723 29.5058 133.304 28.8403C134.513 27.2303 135.106 25.2414 134.978 23.2323C135.103 21.2538 134.508 19.2969 133.304 17.7223C132.718 17.0636 131.992 16.5457 131.178 16.2073C130.364 15.869 129.484 15.7189 128.604 15.7683C127.73 15.7199 126.856 15.8706 126.049 16.2091C125.242 16.5476 124.522 17.065 123.944 17.7223C122.749 19.301 122.16 21.2562 122.285 23.2323C122.247 24.6418 122.499 26.0441 123.028 27.3513C123.466 28.4146 124.222 29.3167 125.192 29.9343C126.222 30.5473 127.406 30.8545 128.604 30.8203ZM134.974 30.4563V15.9963L135.968 10.3673H142.005V30.6323L142.771 36.2203H136.147L134.974 30.4563Z",
2974
+ fill: "#08194D"
2975
+ }
2976
+ ]
2977
+ },
2978
+ "full": {
2979
+ width: 902,
2980
+ height: 333,
2981
+ viewBox: "0 0 902 333",
2982
+ paths: [
2983
+ {
2984
+ d: "M126.1,325.2c-24.4,4.3-47.8-12.1-52.1-36.5-4.3-24.4,12.1-47.8,36.5-52.1,29-5.1,48.4-32.9,43.3-61.9-4.3-24.4,12.1-47.8,36.5-52.1,24.4-4.3,47.8,12.1,52.1,36.5,4.3,24.4-12.1,47.8-36.5,52.1-29,5.1-48.4,32.9-43.3,61.9,4.3,24.4-12.1,47.8-36.5,52.1",
2985
+ fill: "#B55CAF"
2986
+ },
2987
+ {
2988
+ d: "M27.3,198.3c-17.5-17.5-17.5-46.1,0-63.6,17.5-17.5,46.1-17.5,63.6,0,20.8,20.8,54.7,20.8,75.5,0,17.5-17.5,46.1-17.5,63.6,0,17.5,17.5,17.5,46.1,0,63.6-17.5,17.5-46.1,17.5-63.6,0-20.8-20.8-54.7-20.8-75.5,0-17.5,17.5-46.1,17.5-63.6,0",
2989
+ fill: "#35D3C7"
2990
+ },
2991
+ {
2992
+ d: "M67,210.3c-24.4,4.3-47.8-12.1-52.1-36.5-4.3-24.4,12.1-47.8,36.5-52.1,29-5.1,48.4-32.9,43.3-61.9-4.3-24.4,12.1-47.8,36.5-52.1,24.4-4.3,47.8,12.1,52.1,36.5,4.3,24.4-12.1,47.8-36.5,52.1-29,5.1-48.4,32.9-43.3,61.9,4.3,24.4-12.1,47.8-36.5,52.1",
2993
+ fill: "#365FD7"
2994
+ },
2995
+ {
2996
+ d: "M14.9,173.9c-1.1-6-.9-11.9.4-17.5,1.8-8,5.8-15.5,12-21.7,17.5-17.5,46.1-17.5,63.6,0,3.7,3.7,7.7,6.7,12,9-.5,4.7-.3,9.6.6,14.5,4.3,24.4-12.1,47.8-36.5,52.1-2.6.5-5.2.7-7.8.7-21.4,0-40.4-15.4-44.3-37.2Z",
2997
+ fill: "#0B4796"
2998
+ },
2999
+ {
3000
+ d: "M166.4,198.3c-3.7-3.7-7.7-6.7-12-9,.5-4.7.3-9.6-.6-14.5-4.3-24.4,12.1-47.8,36.5-52.1,24.4-4.3,47.8,12.1,52.1,36.5,1,5.8.9,11.6-.3,17-1.8,8.1-5.8,15.8-12.1,22.1-8.8,8.8-20.3,13.2-31.8,13.2s-23-4.4-31.8-13.2Z",
3001
+ fill: "#0B4796"
3002
+ },
3003
+ {
3004
+ d: "M422.5,151.7c-6.9-2.9-16.4-5.8-28.4-8.7-.8-.3-1.7-.5-2.6-.6h-.4c-7.2-1.7-12.8-3.4-16.7-4.9-3.9-1.5-6.8-3.4-8.8-5.7-2-2.3-3-5.3-3-9s2-8.9,6-11.1c4-2.2,9.5-3.3,16.5-3.3s14.9,1.7,19.5,5c4.5,3.3,6.8,8,6.8,13.9h28.7c0-8.3-1.9-15.6-5.7-22-3.8-6.4-9.8-11.3-17.9-15-8.1-3.6-18.2-5.4-30.4-5.4s-28.7,3.2-38.3,9.6c-9.6,6.4-14.5,16-14.5,28.7s1.9,15.5,5.6,20.9c3.7,5.4,8.9,9.5,15.5,12.4,6.6,2.9,15.3,5.8,26.3,8.4,1.7.5,3.3.9,4.6,1.2,7.9,2,13.9,3.8,18.1,5.5,4.1,1.7,7.3,3.8,9.3,6.3,2.1,2.5,3.1,5.8,3.1,9.8,0,6-2.3,10.5-6.8,13.5-4.6,2.9-11.2,4.4-19.9,4.4s-17.1-2.1-22.7-6.2c-5.6-4.1-8.4-10.6-8.4-19.3h-29.5c0,15.5,5,27.6,15,36.2,10,8.6,24.8,12.9,44.5,12.9s32.5-3.9,42.4-11.8c9.9-7.9,14.9-18.7,14.9-32.3s-2-16.1-6.1-21.3c-4.1-5.2-9.6-9.3-16.5-12.1Z",
3005
+ fill: "#08194D"
3006
+ },
3007
+ {
3008
+ d: "M541.9,130.3c-8.2-4.4-18-6.6-29.5-6.6s-21.5,2.2-29.6,6.6c-8.1,4.4-14.2,10.6-18.4,18.6-4.2,8-6.2,17-6.2,27.2s2.1,19.6,6.2,27.6c4.1,8,10.3,14.2,18.4,18.7,8.1,4.5,18,6.7,29.6,6.7s21.3-2.2,29.5-6.7c8.2-4.5,14.4-10.7,18.6-18.7,4.2-8,6.3-17.2,6.3-27.6s-2.1-19.2-6.3-27.2c-4.2-8-10.4-14.2-18.6-18.6ZM531.8,198.1c-4.6,5.2-11.1,7.8-19.7,7.8s-10.2-1.2-14.1-3.5c-3.9-2.3-6.8-5.7-8.8-10.1-2-4.4-3-9.8-3-16.3,0-9.2,2.2-16.4,6.7-21.6,4.5-5.2,10.9-7.7,19.2-7.7s10.4,1.2,14.4,3.5c3.9,2.3,7,5.7,9,10,2.1,4.4,3.1,9.6,3.1,15.8,0,9.5-2.3,16.9-6.8,22.1Z",
3009
+ fill: "#08194D"
3010
+ },
3011
+ {
3012
+ d: "M625.8,126.5c0-4.1.5-7.5,1.4-10,.9-2.5,2.5-4.4,4.8-5.7,2.3-1.3,5.4-1.9,9.4-1.9h12v-22.1h-16.3c-9,0-16.3,1.4-22,4.2-5.7,2.8-9.9,7.4-12.7,13.7-2.8,6.3-4.2,14.6-4.2,24.9v.2h-22.1v24.1h22.1v73.5h27.5v-73.5h29.3v-24.1h-29.3v-3.2Z",
3013
+ fill: "#08194D"
3014
+ },
3015
+ {
3016
+ d: "M736.2,176.5c0,8.6-1.6,15-4.7,19.2-3.1,4.2-8.1,6.3-15,6.3s-11.1-2-14.2-6c-3-4-4.5-10.4-4.5-19.3v-51.2h-27.7v53.8c0,15.1,2.9,26.5,8.8,34.2,5.9,7.7,15.3,11.5,28.3,11.5s13.8-1.5,19.2-4.6c3.8-2.2,7-5,9.7-8.6v5.2c0,10.3-2.4,17.6-7.1,22-4.8,4.3-11.6,6.5-20.6,6.5h-21.1v21.9h20.9c11.1,0,20.7-1.7,28.9-5.1,8.2-3.4,14.7-9.4,19.5-18.1s7.2-20.3,7.2-35v-83.7h-27.7v51Z",
3017
+ fill: "#08194D"
3018
+ },
3019
+ {
3020
+ d: "M890.4,227.2l-3-22.1v-79.7h-23.7l-2.7,15.6c-3-4.7-6.8-8.6-11.3-11.4-6.4-4-13.9-6-22.6-6s-17.7,2.2-24.6,6.6c-6.9,4.4-12.1,10.6-15.6,18.5-3.5,7.9-5.2,17-5.2,27.3s1.7,19.8,5.2,27.8c3.5,8,8.7,14.2,15.6,18.6,6.9,4.4,15.1,6.6,24.6,6.6s15.1-1.7,21.1-5.2c5.2-3,9.6-7.3,13-12.7l3.3,16.1h25.9ZM853.2,198.1c-4.4,5.2-10.6,7.8-18.5,7.8s-9.7-1.2-13.5-3.5c-3.7-2.3-6.6-5.7-8.5-10.1-1.9-4.4-2.9-9.8-2.9-16.3,0-9.2,2.2-16.4,6.5-21.6,4.3-5.2,10.5-7.7,18.4-7.7s14.1,2.6,18.5,7.7c4.4,5.2,6.6,12.3,6.6,21.6s-2.2,16.9-6.6,22.1Z",
3021
+ fill: "#08194D"
3022
+ }
3023
+ ]
3024
+ }
3025
+ };
3026
+
3027
+ // src/components/logo.tsx
3028
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
3029
+ var logoVariants = ["mono", "default", "text", "full"];
3030
+ var logoSizeOptions = ["sm", "md", "lg", "xl", "2xl"];
3031
+ var logoSizeScale = {
3032
+ sm: 16,
3033
+ md: 24,
3034
+ lg: 32,
3035
+ xl: 48,
3036
+ "2xl": 64
3037
+ };
3038
+ function resolveLogoSize(size) {
3039
+ return typeof size === "number" ? size : logoSizeScale[size];
3040
+ }
3041
+ function resolveLogoDimensions(variant, size, width, height) {
3042
+ const asset = logoAssets[variant];
3043
+ if (typeof width === "number" && typeof height === "number") {
3044
+ return { width, height };
3045
+ }
3046
+ if (typeof width === "number") {
3047
+ return {
3048
+ width,
3049
+ height: width * asset.height / asset.width
3050
+ };
3051
+ }
3052
+ if (typeof height === "number") {
3053
+ return {
3054
+ width: height * asset.width / asset.height,
3055
+ height
3056
+ };
3057
+ }
3058
+ const resolvedHeight = resolveLogoSize(size);
3059
+ return {
3060
+ width: resolvedHeight * asset.width / asset.height,
3061
+ height: resolvedHeight
3062
+ };
3063
+ }
3064
+ var Logo = React16.forwardRef(function Logo2({
3065
+ variant = "full",
3066
+ size = "lg",
3067
+ width,
3068
+ height,
3069
+ title,
3070
+ monoColor,
3071
+ className,
3072
+ ...props
3073
+ }, ref) {
3074
+ const asset = logoAssets[variant];
3075
+ const titleId = React16.useId();
3076
+ const dimensions = resolveLogoDimensions(variant, size, width, height);
3077
+ const monoFill = variant === "mono" ? monoColor ?? "currentColor" : void 0;
3078
+ return /* @__PURE__ */ jsxs11(
3079
+ "svg",
3080
+ {
3081
+ ref,
3082
+ xmlns: "http://www.w3.org/2000/svg",
3083
+ viewBox: asset.viewBox,
3084
+ width: dimensions.width,
3085
+ height: dimensions.height,
3086
+ className: cn("inline-block shrink-0 align-middle", className),
3087
+ role: title ? "img" : void 0,
3088
+ "aria-hidden": title ? void 0 : true,
3089
+ "aria-labelledby": title ? titleId : void 0,
3090
+ focusable: "false",
3091
+ ...props,
3092
+ children: [
3093
+ title ? /* @__PURE__ */ jsx18("title", { id: titleId, children: title }) : null,
3094
+ asset.paths.map((path, index) => /* @__PURE__ */ jsx18(
3095
+ "path",
3096
+ {
3097
+ d: path.d,
3098
+ fill: monoFill ?? path.fill,
3099
+ fillRule: "fillRule" in path ? path.fillRule : void 0,
3100
+ clipRule: "clipRule" in path ? path.clipRule : void 0
3101
+ },
3102
+ `${variant}-${index}`
3103
+ ))
3104
+ ]
3105
+ }
3106
+ );
3107
+ });
3108
+ Logo.displayName = "Logo";
3109
+
3110
+ // src/components/pagination.tsx
3111
+ import { Slot as Slot4 } from "@radix-ui/react-slot";
3112
+ import { cva as cva6 } from "class-variance-authority";
3113
+ import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
3114
+ var paginationLinkVariants = cva6(
3115
+ "inline-flex h-10 min-w-10 items-center justify-center rounded-full border border-transparent px-4 text-[14px] font-medium leading-none tracking-[0.01em] text-[#4B5576] no-underline transition-[transform,background-color,border-color,color,box-shadow] duration-sofya ease-sofya motion-safe:active:scale-[0.985] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--sofya-focus)/0.14)] focus-visible:ring-offset-0",
3116
+ {
3117
+ variants: {
3118
+ isActive: {
3119
+ true: "border-[#D9E2FA] bg-white text-primary shadow-sofya-sm",
3120
+ false: "hover:border-[#E3EAFF] hover:bg-white hover:text-primary"
3121
+ },
3122
+ size: {
3123
+ default: "px-4",
3124
+ icon: "w-10 px-0"
3125
+ }
3126
+ },
3127
+ defaultVariants: {
3128
+ isActive: false,
3129
+ size: "default"
3130
+ }
3131
+ }
3132
+ );
3133
+ function Pagination({
3134
+ className,
3135
+ ...props
3136
+ }) {
3137
+ return /* @__PURE__ */ jsx19(
3138
+ "nav",
3139
+ {
3140
+ "aria-label": "Pagination",
3141
+ className: cn("flex w-full justify-center", className),
3142
+ ...props
3143
+ }
3144
+ );
3145
+ }
3146
+ function PaginationContent({
3147
+ className,
3148
+ ...props
3149
+ }) {
3150
+ return /* @__PURE__ */ jsx19(
3151
+ "ul",
3152
+ {
3153
+ className: cn("flex flex-wrap items-center justify-center gap-2", className),
3154
+ ...props
3155
+ }
3156
+ );
3157
+ }
3158
+ function PaginationItem({
3159
+ className,
3160
+ ...props
3161
+ }) {
3162
+ return /* @__PURE__ */ jsx19("li", { className: cn("list-none", className), ...props });
3163
+ }
3164
+ function PaginationLink({
3165
+ asChild = false,
3166
+ className,
3167
+ isActive = false,
3168
+ size = "default",
3169
+ ...props
3170
+ }) {
3171
+ const Component = asChild ? Slot4 : "a";
3172
+ return /* @__PURE__ */ jsx19(
3173
+ Component,
3174
+ {
3175
+ "aria-current": isActive ? "page" : void 0,
3176
+ className: cn(paginationLinkVariants({ isActive, size }), className),
3177
+ ...props
3178
+ }
3179
+ );
3180
+ }
3181
+ function PaginationChevronLeft() {
3182
+ return /* @__PURE__ */ jsx19(
3183
+ "svg",
3184
+ {
3185
+ "aria-hidden": "true",
3186
+ className: "h-4 w-4",
3187
+ viewBox: "0 0 16 16",
3188
+ fill: "none",
3189
+ xmlns: "http://www.w3.org/2000/svg",
3190
+ children: /* @__PURE__ */ jsx19(
3191
+ "path",
3192
+ {
3193
+ d: "M9.5 3.5L5 8L9.5 12.5",
3194
+ stroke: "currentColor",
3195
+ strokeWidth: "1.75",
3196
+ strokeLinecap: "round",
3197
+ strokeLinejoin: "round"
3198
+ }
3199
+ )
3200
+ }
3201
+ );
3202
+ }
3203
+ function PaginationChevronRight() {
3204
+ return /* @__PURE__ */ jsx19(
3205
+ "svg",
3206
+ {
3207
+ "aria-hidden": "true",
3208
+ className: "h-4 w-4",
3209
+ viewBox: "0 0 16 16",
3210
+ fill: "none",
3211
+ xmlns: "http://www.w3.org/2000/svg",
3212
+ children: /* @__PURE__ */ jsx19(
3213
+ "path",
3214
+ {
3215
+ d: "M6.5 3.5L11 8L6.5 12.5",
3216
+ stroke: "currentColor",
3217
+ strokeWidth: "1.75",
3218
+ strokeLinecap: "round",
3219
+ strokeLinejoin: "round"
3220
+ }
3221
+ )
3222
+ }
3223
+ );
3224
+ }
3225
+ function PaginationPrevious({
3226
+ className,
3227
+ text = "Previous",
3228
+ ...props
3229
+ }) {
3230
+ return /* @__PURE__ */ jsxs12(
3231
+ PaginationLink,
3232
+ {
3233
+ "aria-label": "Go to previous page",
3234
+ className: cn("gap-2 px-4", className),
3235
+ ...props,
3236
+ children: [
3237
+ /* @__PURE__ */ jsx19(PaginationChevronLeft, {}),
3238
+ /* @__PURE__ */ jsx19("span", { className: "hidden sm:block", children: renderTextContent(text, {
3239
+ as: "span",
3240
+ className: "block text-inherit",
3241
+ size: "body",
3242
+ style: {
3243
+ fontWeight: 500,
3244
+ lineHeight: 1,
3245
+ letterSpacing: "0.01em"
3246
+ }
3247
+ }) })
3248
+ ]
3249
+ }
3250
+ );
3251
+ }
3252
+ function PaginationNext({
3253
+ className,
3254
+ text = "Next",
3255
+ ...props
3256
+ }) {
3257
+ return /* @__PURE__ */ jsxs12(
3258
+ PaginationLink,
3259
+ {
3260
+ "aria-label": "Go to next page",
3261
+ className: cn("gap-2 px-4", className),
3262
+ ...props,
3263
+ children: [
3264
+ /* @__PURE__ */ jsx19("span", { className: "hidden sm:block", children: renderTextContent(text, {
3265
+ as: "span",
3266
+ className: "block text-inherit",
3267
+ size: "body",
3268
+ style: {
3269
+ fontWeight: 500,
3270
+ lineHeight: 1,
3271
+ letterSpacing: "0.01em"
3272
+ }
3273
+ }) }),
3274
+ /* @__PURE__ */ jsx19(PaginationChevronRight, {})
3275
+ ]
3276
+ }
3277
+ );
3278
+ }
3279
+ function PaginationEllipsis({
3280
+ className,
3281
+ ...props
3282
+ }) {
3283
+ return /* @__PURE__ */ jsxs12(
3284
+ "span",
3285
+ {
3286
+ "aria-hidden": "true",
3287
+ className: cn(
3288
+ "flex h-10 w-10 items-center justify-center rounded-full text-[18px] leading-none text-[#7A8299]",
3289
+ className
3290
+ ),
3291
+ ...props,
3292
+ children: [
3293
+ /* @__PURE__ */ jsx19("span", { children: renderTextContent("...", {
3294
+ as: "span",
3295
+ className: "block text-inherit",
3296
+ size: "h4",
3297
+ style: {
3298
+ fontSize: "18px",
3299
+ fontWeight: 400,
3300
+ lineHeight: 1
3301
+ }
3302
+ }) }),
3303
+ /* @__PURE__ */ jsx19("span", { className: "sr-only", children: "More pages" })
3304
+ ]
3305
+ }
3306
+ );
3307
+ }
3308
+
3309
+ // src/components/popover.tsx
3310
+ import * as React17 from "react";
3311
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
3312
+ import { jsx as jsx20 } from "react/jsx-runtime";
3313
+ var Popover = PopoverPrimitive.Root;
3314
+ var PopoverTrigger = PopoverPrimitive.Trigger;
3315
+ var PopoverAnchor = PopoverPrimitive.Anchor;
3316
+ var PopoverPortal = PopoverPrimitive.Portal;
3317
+ var PopoverClose = PopoverPrimitive.Close;
3318
+ var PopoverContent = React17.forwardRef(function PopoverContent2({ align = "center", className, collisionPadding = 8, sideOffset = 8, ...props }, ref) {
3319
+ return /* @__PURE__ */ jsx20(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
3320
+ PopoverPrimitive.Content,
3321
+ {
3322
+ ref,
3323
+ align,
3324
+ collisionPadding,
3325
+ sideOffset,
3326
+ "data-slot": "popover-content",
3327
+ className: cn(
3328
+ "sofya-dropdown-content z-50 w-72 max-w-[min(24rem,calc(100vw-1rem))] rounded-[14px] border border-[#D9E2FA] bg-[hsl(var(--sofya-popover))] p-4 text-[hsl(var(--sofya-popover-foreground))] shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)] outline-none",
3329
+ className
3330
+ ),
3331
+ ...props
3332
+ }
3333
+ ) });
3334
+ });
3335
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3336
+ var PopoverTitle = React17.forwardRef(function PopoverTitle2({ children, className, ...props }, ref) {
3337
+ return /* @__PURE__ */ jsx20(
3338
+ "h4",
3339
+ {
3340
+ ref,
3341
+ "data-slot": "popover-title",
3342
+ className: cn("text-[hsl(var(--sofya-popover-foreground))]", className),
3343
+ ...props,
3344
+ children: renderTextContent(children, {
3345
+ as: "span",
3346
+ className: "block text-[hsl(var(--sofya-popover-foreground))]",
3347
+ size: "h4",
3348
+ style: {
3349
+ fontWeight: 600,
3350
+ lineHeight: "24px",
3351
+ letterSpacing: "-0.025em"
3352
+ }
3353
+ })
3354
+ }
3355
+ );
3356
+ });
3357
+ PopoverTitle.displayName = "PopoverTitle";
3358
+ var PopoverDescription = React17.forwardRef(function PopoverDescription2({ children, className, ...props }, ref) {
3359
+ return /* @__PURE__ */ jsx20(
3360
+ "p",
3361
+ {
3362
+ ref,
3363
+ "data-slot": "popover-description",
3364
+ className: cn("text-muted-foreground", className),
3365
+ ...props,
3366
+ children: renderTextContent(children, {
3367
+ as: "span",
3368
+ className: "block text-muted-foreground",
3369
+ size: "body",
3370
+ style: {
3371
+ lineHeight: "24px"
3372
+ }
3373
+ })
3374
+ }
3375
+ );
3376
+ });
3377
+ PopoverDescription.displayName = "PopoverDescription";
3378
+
3379
+ // src/components/progress.tsx
3380
+ import * as React18 from "react";
3381
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
3382
+ import { jsx as jsx21 } from "react/jsx-runtime";
3383
+ var progressSizeOptions = ["sm", "default", "lg"];
3384
+ function clampProgressValue(value, max) {
3385
+ if (Number.isNaN(value)) {
3386
+ return 0;
3387
+ }
3388
+ return Math.min(Math.max(value, 0), max);
3389
+ }
3390
+ var Progress = React18.forwardRef(function Progress2({ className, indicatorClassName, max = 100, size = "default", value, ...props }, ref) {
3391
+ const safeMax = max > 0 ? max : 100;
3392
+ const resolvedValue = typeof value === "number" ? clampProgressValue(value, safeMax) : null;
3393
+ const progressScale = resolvedValue === null ? void 0 : Number((resolvedValue / safeMax).toFixed(4));
3394
+ return /* @__PURE__ */ jsx21(
3395
+ ProgressPrimitive.Root,
3396
+ {
3397
+ ref,
3398
+ "data-size": size,
3399
+ "data-slot": "progress",
3400
+ max: safeMax,
3401
+ value: resolvedValue,
3402
+ className: cn(
3403
+ "relative h-2 w-full overflow-hidden rounded-full bg-[#E3EAFF] data-[size=sm]:h-1.5 data-[size=default]:h-2 data-[size=lg]:h-3",
3404
+ className
3405
+ ),
3406
+ ...props,
3407
+ children: /* @__PURE__ */ jsx21(
3408
+ ProgressPrimitive.Indicator,
3409
+ {
3410
+ "data-slot": "progress-indicator",
3411
+ className: cn(
3412
+ "h-full w-full origin-left rounded-full bg-[linear-gradient(90deg,#C075BF_0%,#8F74CC_50%,#5B76D9_100%)] transition-[transform,opacity] duration-sofya ease-sofya data-[state=indeterminate]:w-1/2 data-[state=indeterminate]:animate-pulse",
3413
+ indicatorClassName
3414
+ ),
3415
+ style: progressScale === void 0 ? void 0 : { transform: `scaleX(${progressScale})` }
3416
+ }
3417
+ )
3418
+ }
3419
+ );
3420
+ });
3421
+ Progress.displayName = ProgressPrimitive.Root.displayName;
3422
+
3423
+ // src/components/radio-group.tsx
3424
+ import * as React19 from "react";
3425
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3426
+ import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
3427
+ var radioGroupOrientationOptions = ["horizontal", "vertical"];
3428
+ var RadioGroup2 = React19.forwardRef(function RadioGroup3({ className, ...props }, ref) {
3429
+ return /* @__PURE__ */ jsx22(
3430
+ RadioGroupPrimitive.Root,
3431
+ {
3432
+ ref,
3433
+ "data-slot": "radio-group",
3434
+ className: cn(
3435
+ "grid gap-4 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-start",
3436
+ className
3437
+ ),
3438
+ ...props
3439
+ }
3440
+ );
3441
+ });
3442
+ RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
3443
+ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3444
+ className,
3445
+ controlClassName,
3446
+ description,
3447
+ descriptionClassName,
3448
+ disabled,
3449
+ id,
3450
+ indicatorClassName,
3451
+ label,
3452
+ labelClassName,
3453
+ ...props
3454
+ }, ref) {
3455
+ const generatedId = React19.useId();
3456
+ const resolvedId = id ?? generatedId;
3457
+ const labelId = label ? `${resolvedId}-label` : void 0;
3458
+ const descriptionId = description ? `${resolvedId}-description` : void 0;
3459
+ const alignClassName = description ? "items-start" : "items-center";
3460
+ return /* @__PURE__ */ jsxs13(
3461
+ "label",
3462
+ {
3463
+ className: cn(
3464
+ "flex w-fit gap-4",
3465
+ alignClassName,
3466
+ disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
3467
+ className
3468
+ ),
3469
+ children: [
3470
+ /* @__PURE__ */ jsx22(
3471
+ RadioGroupPrimitive.Item,
3472
+ {
3473
+ ref,
3474
+ id: resolvedId,
3475
+ disabled,
3476
+ "aria-labelledby": labelId,
3477
+ "aria-describedby": descriptionId,
3478
+ "data-slot": "radio-group-item",
3479
+ className: cn(
3480
+ "peer mt-0 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-[#D9E2FA] bg-card text-primary-foreground outline-none transition-[background-color,border-color,box-shadow] duration-sofya ease-sofya focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60 focus-visible:ring-offset-0 data-[state=checked]:border-primary data-[state=checked]:bg-primary aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20 disabled:cursor-not-allowed disabled:opacity-50",
3481
+ controlClassName
3482
+ ),
3483
+ ...props,
3484
+ children: /* @__PURE__ */ jsx22(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx22(
3485
+ "span",
3486
+ {
3487
+ "data-slot": "radio-group-indicator",
3488
+ className: cn("h-2.5 w-2.5 rounded-full bg-card", indicatorClassName)
3489
+ }
3490
+ ) })
3491
+ }
3492
+ ),
3493
+ label || description ? /* @__PURE__ */ jsxs13("span", { className: "grid gap-2", children: [
3494
+ label ? /* @__PURE__ */ jsx22(
3495
+ "span",
3496
+ {
3497
+ id: labelId,
3498
+ className: cn(
3499
+ "text-[var(--sofya-tag-navy)]",
3500
+ labelClassName
3501
+ ),
3502
+ children: renderTextContent(label, {
3503
+ as: "span",
3504
+ className: "text-[var(--sofya-tag-navy)]",
3505
+ size: "h4",
3506
+ style: {
3507
+ fontWeight: 400,
3508
+ lineHeight: "22px",
3509
+ letterSpacing: "-0.02em"
3510
+ }
3511
+ })
3512
+ }
3513
+ ) : null,
3514
+ description ? /* @__PURE__ */ jsx22(
3515
+ "span",
3516
+ {
3517
+ id: descriptionId,
3518
+ className: cn(
3519
+ "text-muted-foreground",
3520
+ descriptionClassName
3521
+ ),
3522
+ children: renderTextContent(description, {
3523
+ as: "span",
3524
+ className: "text-muted-foreground",
3525
+ size: "body",
3526
+ style: {
3527
+ lineHeight: "20px"
3528
+ }
3529
+ })
3530
+ }
3531
+ ) : null
3532
+ ] }) : null
3533
+ ]
3534
+ }
3535
+ );
3536
+ });
3537
+ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3538
+
3539
+ // src/components/scroll-area.tsx
3540
+ import * as React20 from "react";
3541
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3542
+ import { jsx as jsx23 } from "react/jsx-runtime";
3543
+ var scrollAreaOrientationOptions = ["horizontal", "vertical"];
3544
+ var ScrollArea = React20.forwardRef(function ScrollArea2({ className, ...props }, ref) {
3545
+ return /* @__PURE__ */ jsx23(
3546
+ ScrollAreaPrimitive.Root,
3547
+ {
3548
+ ref,
3549
+ "data-slot": "scroll-area",
3550
+ className: cn("relative overflow-hidden", className),
3551
+ ...props
3552
+ }
3553
+ );
3554
+ });
3555
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3556
+ var ScrollAreaViewport = React20.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
3557
+ return /* @__PURE__ */ jsx23(
3558
+ ScrollAreaPrimitive.Viewport,
3559
+ {
3560
+ ref,
3561
+ "data-slot": "scroll-area-viewport",
3562
+ className: cn(
3563
+ "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60 focus-visible:ring-offset-0",
3564
+ className
3565
+ ),
3566
+ ...props
3567
+ }
3568
+ );
3569
+ });
3570
+ ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
3571
+ var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
3572
+ return /* @__PURE__ */ jsx23(
3573
+ ScrollAreaPrimitive.Scrollbar,
3574
+ {
3575
+ ref,
3576
+ "data-slot": "scroll-area-scrollbar",
3577
+ orientation,
3578
+ className: cn(
3579
+ "flex touch-none select-none p-0 transition-colors duration-sofya ease-sofya data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent",
3580
+ className
3581
+ ),
3582
+ ...props,
3583
+ children: /* @__PURE__ */ jsx23(
3584
+ ScrollAreaPrimitive.Thumb,
3585
+ {
3586
+ "data-slot": "scroll-area-thumb",
3587
+ className: cn("relative flex-1 rounded-full bg-[#D9E2FA]", thumbClassName)
3588
+ }
3589
+ )
3590
+ }
3591
+ );
3592
+ });
3593
+ ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
3594
+ var ScrollAreaCorner = React20.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
3595
+ return /* @__PURE__ */ jsx23(
3596
+ ScrollAreaPrimitive.Corner,
3597
+ {
3598
+ ref,
3599
+ "data-slot": "scroll-area-corner",
3600
+ className: cn("bg-transparent", className),
3601
+ ...props
3602
+ }
3603
+ );
3604
+ });
3605
+ ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
3606
+
3607
+ // src/components/select.tsx
3608
+ import * as React21 from "react";
3609
+ import * as SelectPrimitive from "@radix-ui/react-select";
3610
+ import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
3611
+ var selectSizeOptions = ["default", "sm"];
3612
+ var Select = SelectPrimitive.Root;
3613
+ var SelectGroup = SelectPrimitive.Group;
3614
+ var SelectValue = React21.forwardRef(function SelectValue2({ className, ...props }, ref) {
3615
+ return /* @__PURE__ */ jsx24(
3616
+ Text,
3617
+ {
3618
+ ref,
3619
+ as: "span",
3620
+ "data-slot": "select-value",
3621
+ className: cn("block truncate text-inherit", className),
3622
+ size: "body",
3623
+ style: {
3624
+ fontFamily: "inherit",
3625
+ fontSize: "inherit",
3626
+ fontWeight: "inherit",
3627
+ lineHeight: "inherit",
3628
+ letterSpacing: "inherit",
3629
+ color: "inherit"
3630
+ },
3631
+ children: /* @__PURE__ */ jsx24(SelectPrimitive.Value, { className: "block truncate", ...props })
3632
+ }
3633
+ );
3634
+ });
3635
+ SelectValue.displayName = SelectPrimitive.Value.displayName;
3636
+ var SelectTrigger = React21.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
3637
+ return /* @__PURE__ */ jsxs14(
3638
+ SelectPrimitive.Trigger,
3639
+ {
3640
+ ref,
3641
+ "data-slot": "select-trigger",
3642
+ "data-size": size,
3643
+ className: cn(
3644
+ "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[#D9E2FA] bg-card px-4 text-left text-[16px] font-normal leading-[22px] tracking-[-0.02em] text-[var(--sofya-tag-navy)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[#C9D5FF] focus:outline-none focus:ring-2 focus:ring-[#D9E2FA]/60 focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[#D9E2FA]/60 disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-tag-navy)]/50 data-[size=default]:h-10 data-[size=default]:py-2 data-[size=sm]:h-9 data-[size=sm]:px-2 data-[size=sm]:text-[14px] data-[size=sm]:leading-5 [&>span]:line-clamp-1 [&>span]:flex-1",
3645
+ className
3646
+ ),
3647
+ ...props,
3648
+ children: [
3649
+ children,
3650
+ /* @__PURE__ */ jsx24(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx24(
3651
+ Icon,
3652
+ {
3653
+ name: "caret-down",
3654
+ size: size === "sm" ? 12 : 14,
3655
+ className: "shrink-0 text-[#7D87A8]"
3656
+ }
3657
+ ) })
3658
+ ]
3659
+ }
3660
+ );
3661
+ });
3662
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3663
+ var SelectScrollUpButton = React21.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
3664
+ return /* @__PURE__ */ jsx24(
3665
+ SelectPrimitive.ScrollUpButton,
3666
+ {
3667
+ ref,
3668
+ "data-slot": "select-scroll-up-button",
3669
+ className: cn(
3670
+ "flex h-7 cursor-default items-center justify-center rounded-[10px] bg-card text-muted-foreground",
3671
+ className
3672
+ ),
3673
+ ...props,
3674
+ children: /* @__PURE__ */ jsx24(Icon, { name: "caret-up", size: 12 })
3675
+ }
3676
+ );
3677
+ });
3678
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3679
+ var SelectScrollDownButton = React21.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
3680
+ return /* @__PURE__ */ jsx24(
3681
+ SelectPrimitive.ScrollDownButton,
3682
+ {
3683
+ ref,
3684
+ "data-slot": "select-scroll-down-button",
3685
+ className: cn(
3686
+ "flex h-7 cursor-default items-center justify-center rounded-[10px] bg-card text-muted-foreground",
3687
+ className
3688
+ ),
3689
+ ...props,
3690
+ children: /* @__PURE__ */ jsx24(Icon, { name: "caret-down", size: 12 })
3691
+ }
3692
+ );
3693
+ });
3694
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3695
+ var SelectContent = React21.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
3696
+ return /* @__PURE__ */ jsx24(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs14(
3697
+ SelectPrimitive.Content,
3698
+ {
3699
+ ref,
3700
+ "data-slot": "select-content",
3701
+ position,
3702
+ className: cn(
3703
+ "sofya-dropdown-content sofya-select-content z-50 max-h-80 min-w-[8rem] overflow-hidden rounded-[14px] border border-[#D9E2FA] bg-card p-2 text-foreground shadow-[0px_4px_8px_-2px_rgba(0,0,0,0.1),0px_2px_4px_-2px_rgba(0,0,0,0.06)] outline-none",
3704
+ position === "popper" && "w-[var(--radix-select-trigger-width)] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
3705
+ className
3706
+ ),
3707
+ ...props,
3708
+ children: [
3709
+ /* @__PURE__ */ jsx24(SelectScrollUpButton, {}),
3710
+ /* @__PURE__ */ jsx24(
3711
+ SelectPrimitive.Viewport,
3712
+ {
3713
+ "data-slot": "select-viewport",
3714
+ className: cn("grid gap-2"),
3715
+ children
3716
+ }
3717
+ ),
3718
+ /* @__PURE__ */ jsx24(SelectScrollDownButton, {})
3719
+ ]
3720
+ }
3721
+ ) });
3722
+ });
3723
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
3724
+ var SelectLabel = React21.forwardRef(function SelectLabel2({ className, ...props }, ref) {
3725
+ return /* @__PURE__ */ jsx24(
3726
+ SelectPrimitive.Label,
3727
+ {
3728
+ ref,
3729
+ "data-slot": "select-label",
3730
+ className: cn("px-4 py-2 text-muted-foreground", className),
3731
+ ...props,
3732
+ children: renderTextContent(props.children, {
3733
+ as: "span",
3734
+ className: "block uppercase text-muted-foreground",
3735
+ size: "tiny",
3736
+ style: {
3737
+ fontSize: "11px",
3738
+ fontWeight: 600,
3739
+ lineHeight: "16px",
3740
+ letterSpacing: "0.08em"
3741
+ }
3742
+ })
3743
+ }
3744
+ );
3745
+ });
3746
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
3747
+ var SelectItem = React21.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
3748
+ return /* @__PURE__ */ jsxs14(
3749
+ SelectPrimitive.Item,
3750
+ {
3751
+ ref,
3752
+ "data-slot": "select-item",
3753
+ className: cn(
3754
+ "relative flex min-w-0 cursor-pointer select-none items-center self-stretch rounded-[8px] px-4 py-2 pr-8 text-[14px] font-normal leading-5 text-[var(--sofya-tag-navy)] outline-none transition-colors duration-sofya ease-sofya data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-[#F5F8FF] data-[highlighted]:text-[var(--sofya-tag-navy)] data-[state=checked]:bg-[#F5F4FA]",
3755
+ className
3756
+ ),
3757
+ ...props,
3758
+ children: [
3759
+ /* @__PURE__ */ jsx24(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
3760
+ as: "span",
3761
+ className: "block truncate text-[var(--sofya-tag-navy)]",
3762
+ size: "body",
3763
+ style: {
3764
+ lineHeight: "20px"
3765
+ }
3766
+ }) }),
3767
+ /* @__PURE__ */ jsx24(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx24("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ jsx24(Icon, { name: "check", size: 14 }) }) })
3768
+ ]
3769
+ }
3770
+ );
3771
+ });
3772
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
3773
+ var SelectSeparator = React21.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
3774
+ return /* @__PURE__ */ jsx24(
3775
+ SelectPrimitive.Separator,
3776
+ {
3777
+ ref,
3778
+ "data-slot": "select-separator",
3779
+ className: cn("my-2 h-px bg-[#E3EAFF]", className),
3780
+ ...props
3781
+ }
3782
+ );
3783
+ });
3784
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3785
+
3786
+ // src/components/separator.tsx
3787
+ import * as React22 from "react";
3788
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3789
+ import { jsx as jsx25 } from "react/jsx-runtime";
3790
+ var Separator2 = React22.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
3791
+ return /* @__PURE__ */ jsx25(
3792
+ SeparatorPrimitive.Root,
3793
+ {
3794
+ ref,
3795
+ "data-slot": "separator",
3796
+ decorative,
3797
+ orientation,
3798
+ className: cn(
3799
+ "shrink-0 bg-border/80",
3800
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
3801
+ className
3802
+ ),
3803
+ ...props
3804
+ }
3805
+ );
3806
+ });
3807
+ Separator2.displayName = SeparatorPrimitive.Root.displayName;
3808
+
3809
+ // src/components/skeleton.tsx
3810
+ import * as React23 from "react";
3811
+ import { jsx as jsx26 } from "react/jsx-runtime";
3812
+ var Skeleton = React23.forwardRef(function Skeleton2({ className, ...props }, ref) {
3813
+ return /* @__PURE__ */ jsx26(
3814
+ "div",
3815
+ {
3816
+ ref,
3817
+ className: cn(
3818
+ "sofya-skeleton relative block shrink-0 overflow-hidden rounded-md bg-muted/70",
3819
+ className
3820
+ ),
3821
+ ...props
3822
+ }
3823
+ );
3824
+ });
3825
+ Skeleton.displayName = "Skeleton";
3826
+
3827
+ // src/components/sonner.tsx
3828
+ import * as React24 from "react";
3829
+ import {
3830
+ Toaster as SonnerToaster,
3831
+ toast
3832
+ } from "sonner";
3833
+ import { jsx as jsx27 } from "react/jsx-runtime";
3834
+ var notificationVariantOptions = ["default", "success", "error", "warning"];
3835
+ function ToastStatusIcon({
3836
+ iconName,
3837
+ className
3838
+ }) {
3839
+ return /* @__PURE__ */ jsx27(
3840
+ "span",
3841
+ {
3842
+ "aria-hidden": "true",
3843
+ className: cn(
3844
+ "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-sofya-sm",
3845
+ className
3846
+ ),
3847
+ children: /* @__PURE__ */ jsx27(Icon, { name: iconName, size: 16 })
3848
+ }
3849
+ );
3850
+ }
3851
+ var defaultToastClassNames = {
3852
+ toast: "group pointer-events-auto relative flex w-full items-start gap-4 overflow-hidden rounded-[24px] border px-4 py-4 text-foreground shadow-sofya-lg",
3853
+ content: "grid gap-2 pr-8",
3854
+ title: "font-display text-[15px] font-semibold leading-5 tracking-tight text-foreground",
3855
+ description: "text-sm leading-5 text-muted-foreground",
3856
+ icon: "mt-0",
3857
+ closeButton: "absolute right-3 top-3 inline-flex h-8 w-8 items-center justify-center rounded-full border border-transparent bg-transparent text-muted-foreground transition-[background-color,border-color,color] duration-sofya ease-sofya hover:border-border hover:bg-muted hover:text-foreground",
3858
+ actionButton: "inline-flex h-9 shrink-0 items-center justify-center rounded-full bg-primary px-4 text-sm font-medium text-primary-foreground transition-[filter,transform] duration-sofya ease-sofya hover:brightness-[1.04]",
3859
+ cancelButton: "inline-flex h-9 shrink-0 items-center justify-center rounded-full bg-secondary px-4 text-sm font-medium text-secondary-foreground transition-[background-color,transform] duration-sofya ease-sofya hover:bg-secondary/85",
3860
+ default: "data-[type=default]:border-border data-[type=default]:bg-card data-[type=default]:text-foreground",
3861
+ success: "border-success/20 bg-[linear-gradient(135deg,hsl(var(--sofya-success)/0.14)_0%,hsl(var(--sofya-card))_100%)] text-foreground",
3862
+ error: "border-destructive/20 bg-[linear-gradient(135deg,hsl(var(--sofya-destructive)/0.14)_0%,hsl(var(--sofya-card))_100%)] text-foreground",
3863
+ warning: "border-warning/25 bg-[linear-gradient(135deg,hsl(var(--sofya-warning)/0.18)_0%,hsl(var(--sofya-card))_100%)] text-foreground",
3864
+ info: "border-primary/20 bg-[linear-gradient(135deg,hsl(var(--sofya-primary)/0.12)_0%,hsl(var(--sofya-card))_100%)] text-foreground",
3865
+ loading: "border-border bg-card text-foreground"
3866
+ };
3867
+ var defaultToastIcons = {
3868
+ success: /* @__PURE__ */ jsx27(
3869
+ ToastStatusIcon,
3870
+ {
3871
+ iconName: "check",
3872
+ className: "border-success/15 bg-success/12 text-success"
3873
+ }
3874
+ ),
3875
+ error: /* @__PURE__ */ jsx27(
3876
+ ToastStatusIcon,
3877
+ {
3878
+ iconName: "x",
3879
+ className: "border-destructive/15 bg-destructive/12 text-destructive"
3880
+ }
3881
+ ),
3882
+ warning: /* @__PURE__ */ jsx27(
3883
+ ToastStatusIcon,
3884
+ {
3885
+ iconName: "question",
3886
+ className: "border-warning/20 bg-warning/15 text-foreground"
3887
+ }
3888
+ ),
3889
+ info: /* @__PURE__ */ jsx27(
3890
+ ToastStatusIcon,
3891
+ {
3892
+ iconName: "question",
3893
+ className: "border-primary/15 bg-primary/10 text-primary"
3894
+ }
3895
+ ),
3896
+ close: /* @__PURE__ */ jsx27(Icon, { name: "x", size: 12 })
3897
+ };
3898
+ function mergeToastClassNames(overrides) {
3899
+ return {
3900
+ ...defaultToastClassNames,
3901
+ ...overrides
3902
+ };
3903
+ }
3904
+ var Toaster = React24.forwardRef(
3905
+ function Toaster2({
3906
+ className,
3907
+ closeButton = true,
3908
+ expand = true,
3909
+ duration = 4500,
3910
+ icons,
3911
+ position = "top-center",
3912
+ toastOptions,
3913
+ visibleToasts = 5,
3914
+ ...props
3915
+ }, ref) {
3916
+ return /* @__PURE__ */ jsx27(
3917
+ SonnerToaster,
3918
+ {
3919
+ ref,
3920
+ className: cn("sofya-toaster group", className),
3921
+ closeButton,
3922
+ containerAriaLabel: "Notificacoes",
3923
+ expand,
3924
+ gap: 16,
3925
+ icons: { ...defaultToastIcons, ...icons },
3926
+ mobileOffset: 16,
3927
+ offset: 24,
3928
+ position,
3929
+ richColors: false,
3930
+ theme: "light",
3931
+ duration,
3932
+ toastOptions: {
3933
+ ...toastOptions,
3934
+ classNames: mergeToastClassNames(toastOptions?.classNames),
3935
+ unstyled: true
3936
+ },
3937
+ visibleToasts,
3938
+ ...props
3939
+ }
3940
+ );
3941
+ }
3942
+ );
3943
+ Toaster.displayName = "Toaster";
3944
+
3945
+ // src/components/spinner.tsx
3946
+ import * as React25 from "react";
3947
+ import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
3948
+ var spinnerSizeOptions = ["sm", "default", "lg"];
3949
+ var Spinner = React25.forwardRef(function Spinner2({
3950
+ "aria-label": ariaLabelProp,
3951
+ "aria-labelledby": ariaLabelledby,
3952
+ className,
3953
+ role = "status",
3954
+ size = "default",
3955
+ ...props
3956
+ }, ref) {
3957
+ const ariaLabel = ariaLabelProp ?? (ariaLabelledby ? void 0 : "Loading");
3958
+ return /* @__PURE__ */ jsxs15(
3959
+ "svg",
3960
+ {
3961
+ ref,
3962
+ "data-size": size,
3963
+ "data-slot": "spinner",
3964
+ viewBox: "0 0 24 24",
3965
+ fill: "none",
3966
+ xmlns: "http://www.w3.org/2000/svg",
3967
+ role,
3968
+ "aria-label": ariaLabel,
3969
+ "aria-labelledby": ariaLabelledby,
3970
+ className: cn(
3971
+ "shrink-0 animate-spin text-primary data-[size=sm]:h-3.5 data-[size=sm]:w-3.5 data-[size=default]:h-4 data-[size=default]:w-4 data-[size=lg]:h-6 data-[size=lg]:w-6",
3972
+ className
3973
+ ),
3974
+ ...props,
3975
+ children: [
3976
+ /* @__PURE__ */ jsx28("circle", { cx: "12", cy: "12", r: "9", className: "opacity-20", stroke: "currentColor", strokeWidth: "3" }),
3977
+ /* @__PURE__ */ jsx28(
3978
+ "path",
3979
+ {
3980
+ d: "M21 12A9 9 0 0 0 12 3",
3981
+ stroke: "currentColor",
3982
+ strokeWidth: "3",
3983
+ strokeLinecap: "round"
3984
+ }
3985
+ )
3986
+ ]
3987
+ }
3988
+ );
3989
+ });
3990
+ Spinner.displayName = "Spinner";
3991
+
3992
+ // src/components/switch.tsx
3993
+ import * as React26 from "react";
3994
+ import * as SwitchPrimitives from "@radix-ui/react-switch";
3995
+ import { jsx as jsx29 } from "react/jsx-runtime";
3996
+ var Switch = React26.forwardRef(({ className, ...props }, ref) => {
3997
+ return /* @__PURE__ */ jsx29(
3998
+ SwitchPrimitives.Root,
3999
+ {
4000
+ className: cn(
4001
+ "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
4002
+ className
4003
+ ),
4004
+ ...props,
4005
+ ref,
4006
+ children: /* @__PURE__ */ jsx29(
4007
+ SwitchPrimitives.Thumb,
4008
+ {
4009
+ className: "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-sm ring-0 transition-transform duration-sofya ease-sofya data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
4010
+ }
4011
+ )
4012
+ }
4013
+ );
4014
+ });
4015
+ Switch.displayName = SwitchPrimitives.Root.displayName;
4016
+
4017
+ // src/components/table.tsx
4018
+ import { cva as cva7 } from "class-variance-authority";
4019
+ import * as React27 from "react";
4020
+ import { jsx as jsx30 } from "react/jsx-runtime";
4021
+ var tableCellVariantOptions = ["default", "primary", "muted"];
4022
+ var tableStatusToneOptions = ["active", "inactive", "warning"];
4023
+ var tableActionToneOptions = ["primary", "neutral", "danger"];
4024
+ var tableCellVariants = cva7(
4025
+ "px-8 py-6 align-middle [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] font-normal leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]",
4026
+ {
4027
+ variants: {
4028
+ variant: {
4029
+ default: "text-[#4B5576]",
4030
+ primary: "font-medium text-[var(--sofya-tag-navy)]",
4031
+ muted: "text-[#7D87A8]"
4032
+ }
4033
+ },
4034
+ defaultVariants: {
4035
+ variant: "default"
4036
+ }
4037
+ }
4038
+ );
4039
+ var tableStatusBadgeVariants = cva7(
4040
+ "normal-case",
4041
+ {
4042
+ variants: {
4043
+ tone: {
4044
+ active: "border-[#A6EEBF] bg-[#F1FFF6] text-[#123B57]",
4045
+ inactive: "border-[#D9E2FA] bg-[#FBFCFF] text-[#7D87A8]",
4046
+ warning: "border-[#F7D7A4] bg-[#FFF8EC] text-[#9A5B00]"
4047
+ }
4048
+ },
4049
+ defaultVariants: {
4050
+ tone: "active"
4051
+ }
4052
+ }
4053
+ );
4054
+ var tableActionButtonVariants = cva7(
4055
+ "text-[length:var(--sofya-text-body-font-size)] leading-[var(--sofya-text-body-line-height)] shadow-none motion-safe:active:scale-[0.97] focus-visible:ring-[#D9E2FA]/60 focus-visible:ring-offset-0 disabled:opacity-40 [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4056
+ {
4057
+ variants: {
4058
+ tone: {
4059
+ primary: "!bg-transparent text-[#3A63E0] hover:!bg-[#F5F8FF]",
4060
+ neutral: "!bg-transparent text-[#4B5D8A] hover:!bg-[#F5F8FF]",
4061
+ danger: "!bg-transparent text-[#4B5D8A] hover:!bg-[#FFF3F3] hover:text-[#D74F36]"
4062
+ }
4063
+ },
4064
+ defaultVariants: {
4065
+ tone: "primary"
4066
+ }
4067
+ }
4068
+ );
4069
+ var inheritedTextStyle = {
4070
+ fontFamily: "inherit",
4071
+ fontSize: "inherit",
4072
+ fontWeight: "inherit",
4073
+ lineHeight: "inherit",
4074
+ letterSpacing: "inherit",
4075
+ color: "inherit"
4076
+ };
4077
+ var Table = React27.forwardRef(
4078
+ function Table2({ className, ...props }, ref) {
4079
+ return /* @__PURE__ */ jsx30("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: /* @__PURE__ */ jsx30(
4080
+ "table",
4081
+ {
4082
+ "data-slot": "table",
4083
+ ref,
4084
+ className: cn("w-full min-w-[1040px] caption-bottom border-collapse bg-white", className),
4085
+ ...props
4086
+ }
4087
+ ) });
4088
+ }
4089
+ );
4090
+ var TableHeader = React27.forwardRef(function TableHeader2({ className, ...props }, ref) {
4091
+ return /* @__PURE__ */ jsx30(
4092
+ "thead",
4093
+ {
4094
+ "data-slot": "table-header",
4095
+ ref,
4096
+ className: cn("[&_tr]:border-b [&_tr]:border-[#D9E2FA] [&_tr:hover]:bg-transparent", className),
4097
+ ...props
4098
+ }
4099
+ );
4100
+ });
4101
+ var TableBody = React27.forwardRef(function TableBody2({ className, ...props }, ref) {
4102
+ return /* @__PURE__ */ jsx30(
4103
+ "tbody",
4104
+ {
4105
+ "data-slot": "table-body",
4106
+ ref,
4107
+ className: cn("[&_tr:last-child]:border-0", className),
4108
+ ...props
4109
+ }
4110
+ );
4111
+ });
4112
+ var TableFooter = React27.forwardRef(function TableFooter2({ className, ...props }, ref) {
4113
+ return /* @__PURE__ */ jsx30(
4114
+ "tfoot",
4115
+ {
4116
+ "data-slot": "table-footer",
4117
+ ref,
4118
+ className: cn("border-t border-[#D9E2FA] bg-[#FBFCFF] font-medium [&>tr:last-child]:border-0", className),
4119
+ ...props
4120
+ }
4121
+ );
4122
+ });
4123
+ var TableRow = React27.forwardRef(
4124
+ function TableRow2({ className, ...props }, ref) {
4125
+ return /* @__PURE__ */ jsx30(
4126
+ "tr",
4127
+ {
4128
+ "data-slot": "table-row",
4129
+ ref,
4130
+ className: cn(
4131
+ "border-b border-[#EEF2FF] transition-colors duration-sofya ease-sofya hover:bg-[#FBFCFF] data-[state=selected]:bg-[#FBFCFF]",
4132
+ className
4133
+ ),
4134
+ ...props
4135
+ }
4136
+ );
4137
+ }
4138
+ );
4139
+ var TableHead = React27.forwardRef(function TableHead2({ className, children, ...props }, ref) {
4140
+ return /* @__PURE__ */ jsx30(
4141
+ "th",
4142
+ {
4143
+ "data-slot": "table-head",
4144
+ ref,
4145
+ className: cn(
4146
+ "whitespace-nowrap px-8 py-8 text-left align-middle [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] font-medium uppercase leading-4 tracking-[0.12em] text-black [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4147
+ className
4148
+ ),
4149
+ ...props,
4150
+ children: renderTextContent(children, {
4151
+ as: "span",
4152
+ className: "inline-flex items-center gap-2 text-inherit",
4153
+ size: "tiny",
4154
+ style: inheritedTextStyle
4155
+ })
4156
+ }
4157
+ );
4158
+ });
4159
+ var TableCell = React27.forwardRef(function TableCell2({ className, variant, children, ...props }, ref) {
4160
+ return /* @__PURE__ */ jsx30(
4161
+ "td",
4162
+ {
4163
+ "data-slot": "table-cell",
4164
+ ref,
4165
+ className: cn(tableCellVariants({ variant }), className),
4166
+ ...props,
4167
+ children: renderTextContent(children, {
4168
+ as: "span",
4169
+ className: "block text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4170
+ size: "body",
4171
+ style: inheritedTextStyle
4172
+ })
4173
+ }
4174
+ );
4175
+ });
4176
+ var TableCaption = React27.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
4177
+ return /* @__PURE__ */ jsx30(
4178
+ "caption",
4179
+ {
4180
+ "data-slot": "table-caption",
4181
+ ref,
4182
+ className: cn(
4183
+ "mt-4 text-left [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[#7D87A8]",
4184
+ className
4185
+ ),
4186
+ ...props,
4187
+ children: renderTextContent(children, {
4188
+ as: "span",
4189
+ className: "block text-inherit",
4190
+ size: "body",
4191
+ style: inheritedTextStyle
4192
+ })
4193
+ }
4194
+ );
4195
+ });
4196
+ function TableStatusBadge({ className, tone, children, ...props }) {
4197
+ return /* @__PURE__ */ jsx30(Badge, { variant: "pill", className: cn(tableStatusBadgeVariants({ tone }), className), ...props, children: renderTextContent(children, {
4198
+ as: "span",
4199
+ className: "inline-flex items-center gap-2 text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4200
+ size: "tiny",
4201
+ style: inheritedTextStyle
4202
+ }) });
4203
+ }
4204
+ var TableActionButton = React27.forwardRef(
4205
+ function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
4206
+ return /* @__PURE__ */ jsx30(
4207
+ Button,
4208
+ {
4209
+ ref,
4210
+ type,
4211
+ variant: "ghost",
4212
+ size: "icon",
4213
+ className: cn(tableActionButtonVariants({ tone }), className),
4214
+ ...props,
4215
+ children: renderTextContent(children, {
4216
+ as: "span",
4217
+ className: "inline-flex items-center justify-center text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4218
+ size: "body",
4219
+ style: inheritedTextStyle
4220
+ })
4221
+ }
4222
+ );
4223
+ }
4224
+ );
4225
+ var TableActions = React27.forwardRef(
4226
+ function TableActions2({ className, ...props }, ref) {
4227
+ return /* @__PURE__ */ jsx30("div", { ref, className: cn("flex items-center gap-6", className), ...props });
4228
+ }
4229
+ );
4230
+ Table.displayName = "Table";
4231
+ TableHeader.displayName = "TableHeader";
4232
+ TableBody.displayName = "TableBody";
4233
+ TableFooter.displayName = "TableFooter";
4234
+ TableRow.displayName = "TableRow";
4235
+ TableHead.displayName = "TableHead";
4236
+ TableCell.displayName = "TableCell";
4237
+ TableCaption.displayName = "TableCaption";
4238
+ TableActionButton.displayName = "TableActionButton";
4239
+ TableActions.displayName = "TableActions";
4240
+
4241
+ // src/components/tabs.tsx
4242
+ import * as React28 from "react";
4243
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
4244
+ import { motion as motion3 } from "motion/react";
4245
+ import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
4246
+ function resolveDefaultValue(items, defaultValue) {
4247
+ if (defaultValue) {
4248
+ return defaultValue;
4249
+ }
4250
+ return items.find((item) => !item.disabled && !item.loading)?.value;
4251
+ }
4252
+ function Tabs({
4253
+ className,
4254
+ contentClassName,
4255
+ defaultValue,
4256
+ items,
4257
+ listClassName,
4258
+ onValueChange,
4259
+ triggerClassName,
4260
+ value,
4261
+ ...props
4262
+ }) {
4263
+ const resolvedDefaultValue = resolveDefaultValue(items, defaultValue);
4264
+ const isControlled = value !== void 0;
4265
+ const [selectedValue, setSelectedValue] = React28.useState(resolvedDefaultValue);
4266
+ const indicatorLayoutId = React28.useId();
4267
+ const currentValue = isControlled ? value : selectedValue;
4268
+ React28.useEffect(() => {
4269
+ if (!isControlled) {
4270
+ setSelectedValue(resolvedDefaultValue);
4271
+ }
4272
+ }, [isControlled, resolvedDefaultValue]);
4273
+ const handleValueChange = React28.useCallback(
4274
+ (nextValue) => {
4275
+ if (!isControlled) {
4276
+ setSelectedValue(nextValue);
4277
+ }
4278
+ onValueChange?.(nextValue);
4279
+ },
4280
+ [isControlled, onValueChange]
4281
+ );
4282
+ return /* @__PURE__ */ jsxs16(
4283
+ TabsPrimitive.Root,
4284
+ {
4285
+ className: cn("w-full", className),
4286
+ onValueChange: handleValueChange,
4287
+ value: currentValue,
4288
+ ...props,
4289
+ children: [
4290
+ /* @__PURE__ */ jsx31(
4291
+ TabsPrimitive.List,
4292
+ {
4293
+ "aria-label": "Subtelas navegaveis",
4294
+ className: cn("flex w-full items-center border-b border-[#D9E2FA]", listClassName),
4295
+ children: items.map((item) => {
4296
+ const isUnavailable = item.disabled || item.loading;
4297
+ const isActive = item.value === currentValue;
4298
+ return /* @__PURE__ */ jsxs16(
4299
+ TabsPrimitive.Trigger,
4300
+ {
4301
+ value: item.value,
4302
+ disabled: isUnavailable,
4303
+ className: cn(
4304
+ "relative inline-flex min-h-[76px] shrink-0 items-center justify-center px-8 pb-4 pt-6 text-[18px] font-semibold leading-none tracking-[-0.01em] text-[#94A3B8] transition-[color,opacity] duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#D9E2FA]/60 focus-visible:ring-offset-0 disabled:pointer-events-none disabled:text-[#CBD5E1] data-[state=active]:text-primary",
4305
+ item.loading && "disabled:text-[#A8B4C8]",
4306
+ triggerClassName,
4307
+ item.triggerClassName
4308
+ ),
4309
+ children: [
4310
+ isActive ? /* @__PURE__ */ jsx31(
4311
+ motion3.span,
4312
+ {
4313
+ "aria-hidden": "true",
4314
+ "data-slot": "tabs-selection-indicator",
4315
+ layoutId: `${indicatorLayoutId}-selection`,
4316
+ className: "pointer-events-none absolute bottom-[-1px] left-0 right-0 h-[3px] rounded-full bg-primary",
4317
+ transition: { duration: 0.25, ease: "easeInOut" }
4318
+ }
4319
+ ) : null,
4320
+ /* @__PURE__ */ jsxs16("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
4321
+ item.loading ? /* @__PURE__ */ jsx31(
4322
+ "span",
4323
+ {
4324
+ "aria-hidden": "true",
4325
+ className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
4326
+ }
4327
+ ) : null,
4328
+ /* @__PURE__ */ jsx31("span", { children: renderTextContent(item.label, {
4329
+ as: "span",
4330
+ className: "block text-inherit",
4331
+ size: "h4",
4332
+ style: {
4333
+ fontSize: "18px",
4334
+ fontWeight: 600,
4335
+ lineHeight: "18px",
4336
+ letterSpacing: "-0.01em"
4337
+ }
4338
+ }) })
4339
+ ] })
4340
+ ]
4341
+ },
4342
+ item.value
4343
+ );
4344
+ })
4345
+ }
4346
+ ),
4347
+ items.map(
4348
+ (item) => item.content !== void 0 ? /* @__PURE__ */ jsx31(
4349
+ TabsPrimitive.Content,
4350
+ {
4351
+ value: item.value,
4352
+ className: cn("pt-6 focus:outline-none", contentClassName, item.contentClassName),
4353
+ children: renderTextContent(item.content, {
4354
+ as: "span"
4355
+ })
4356
+ },
4357
+ item.value
4358
+ ) : null
4359
+ )
4360
+ ]
4361
+ }
4362
+ );
4363
+ }
4364
+ Tabs.displayName = "Tabs";
4365
+
4366
+ // src/components/textarea.tsx
4367
+ import * as React29 from "react";
4368
+ import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
4369
+ var Textarea = React29.forwardRef(
4370
+ ({ className, containerClassName, id, label, labelClassName, rows = 5, ...props }, ref) => {
4371
+ const generatedId = React29.useId();
4372
+ const resolvedId = id ?? generatedId;
4373
+ const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
4374
+ const control = /* @__PURE__ */ jsx32(
4375
+ "textarea",
4376
+ {
4377
+ className: cn(
4378
+ "flex min-h-[120px] w-full resize-y rounded-[10px] border border-[#D9E2FA] bg-card px-4 py-2 text-[16px] font-normal leading-[22px] tracking-[-0.02em] text-[var(--sofya-tag-navy)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya placeholder:text-[color:var(--sofya-tag-navy)]/50 hover:border-[#C9D5FF] focus:border-[#C9D5FF] focus:outline-none focus:ring-2 focus:ring-[#D9E2FA]/60 focus:ring-offset-0 active:border-[#C9D5FF] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50",
4379
+ className
4380
+ ),
4381
+ id: resolvedId,
4382
+ ref,
4383
+ rows,
4384
+ ...props,
4385
+ "aria-label": ariaLabel
4386
+ }
4387
+ );
4388
+ if (!label && !containerClassName) {
4389
+ return control;
4390
+ }
4391
+ return /* @__PURE__ */ jsxs17("div", { className: cn("grid w-full gap-4", containerClassName), children: [
4392
+ label ? /* @__PURE__ */ jsx32(
4393
+ "label",
4394
+ {
4395
+ className: cn("text-[var(--sofya-tag-navy)]", labelClassName),
4396
+ htmlFor: resolvedId,
4397
+ children: renderTextContent(label, {
4398
+ as: "span",
4399
+ className: "block text-[var(--sofya-tag-navy)]",
4400
+ size: "h4",
4401
+ style: {
4402
+ fontWeight: 500,
4403
+ lineHeight: "22px",
4404
+ letterSpacing: "-0.02em"
4405
+ }
4406
+ })
4407
+ }
4408
+ ) : null,
4409
+ control
4410
+ ] });
4411
+ }
4412
+ );
4413
+ Textarea.displayName = "Textarea";
4414
+
4415
+ // src/components/tooltip.tsx
4416
+ import * as React30 from "react";
4417
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4418
+ import { jsx as jsx33 } from "react/jsx-runtime";
4419
+ var TooltipProvider = TooltipPrimitive.Provider;
4420
+ var Tooltip = TooltipPrimitive.Root;
4421
+ var TooltipTrigger = TooltipPrimitive.Trigger;
4422
+ var TooltipContent = React30.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
4423
+ return /* @__PURE__ */ jsx33(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
4424
+ TooltipPrimitive.Content,
4425
+ {
4426
+ ref,
4427
+ sideOffset,
4428
+ className: cn(
4429
+ "sofya-tooltip-content z-50 max-w-[260px] overflow-hidden rounded-[12px] border border-[#D9E2FA] bg-[#222B4C] px-4 py-2 text-white shadow-[0px_16px_32px_-18px_rgba(34,43,76,0.55)]",
4430
+ className
4431
+ ),
4432
+ ...props,
4433
+ children: renderTextContent(props.children, {
4434
+ as: "span",
4435
+ className: "block text-white",
4436
+ size: "tiny",
4437
+ style: {
4438
+ fontWeight: 500,
4439
+ lineHeight: "16px",
4440
+ letterSpacing: "0.01em"
4441
+ }
4442
+ })
4443
+ }
4444
+ ) });
4445
+ });
4446
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4447
+
4448
+ // src/theme/provider.tsx
4449
+ import * as React31 from "react";
4450
+ import {
4451
+ createWhitelabelTheme,
4452
+ defaultTheme,
4453
+ themeToCssVariables
4454
+ } from "@sofya-ds/tokens";
4455
+ import { jsx as jsx34 } from "react/jsx-runtime";
4456
+ var SOFYA_FONT_LINKS = [
4457
+ {
4458
+ id: "preconnect-googleapis",
4459
+ rel: "preconnect",
4460
+ href: "https://fonts.googleapis.com"
4461
+ },
4462
+ {
4463
+ id: "preconnect-gstatic",
4464
+ rel: "preconnect",
4465
+ href: "https://fonts.gstatic.com",
4466
+ crossOrigin: ""
4467
+ },
4468
+ {
4469
+ id: "stylesheet",
4470
+ rel: "stylesheet",
4471
+ href: "https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:ital,wght@0,400..900;1,400..900&display=swap"
4472
+ }
4473
+ ];
4474
+ function useSofyaFontLinks() {
4475
+ React31.useEffect(() => {
4476
+ if (typeof document === "undefined") {
4477
+ return;
4478
+ }
4479
+ for (const attributes of SOFYA_FONT_LINKS) {
4480
+ const existingLink = document.head.querySelector(
4481
+ `link[data-sofya-font="${attributes.id}"]`
4482
+ );
4483
+ if (existingLink) {
4484
+ continue;
4485
+ }
4486
+ const link = document.createElement("link");
4487
+ link.setAttribute("data-sofya-font", attributes.id);
4488
+ link.rel = attributes.rel;
4489
+ link.href = attributes.href;
4490
+ if ("crossOrigin" in attributes) {
4491
+ link.crossOrigin = attributes.crossOrigin;
4492
+ }
4493
+ document.head.appendChild(link);
4494
+ }
4495
+ }, []);
4496
+ }
4497
+ function SofyaProvider({
4498
+ preset = defaultTheme,
4499
+ overrides,
4500
+ className,
4501
+ style,
4502
+ children,
4503
+ ...props
4504
+ }) {
4505
+ useSofyaFontLinks();
4506
+ const theme = createWhitelabelTheme(overrides ?? {}, preset);
4507
+ const cssVariables = themeToCssVariables(theme);
4508
+ return /* @__PURE__ */ jsx34(
4509
+ "div",
4510
+ {
4511
+ "data-sofya-theme": theme.name,
4512
+ className: cn("sofya-theme w-full bg-background text-foreground", className),
4513
+ style: { ...cssVariables, ...style },
4514
+ ...props,
4515
+ children
4516
+ }
4517
+ );
4518
+ }
4519
+
4520
+ // src/index.ts
4521
+ import {
4522
+ brandPaletteToCssVariables,
4523
+ createWhitelabelTheme as createWhitelabelTheme2,
4524
+ defaultTheme as defaultTheme2,
4525
+ gradientToCss,
4526
+ hexToHslChannels,
4527
+ mergeTheme,
4528
+ resolveSurfaceToken,
4529
+ resolveTextStyle,
4530
+ resolveTheme,
4531
+ sofyaBrandPalette,
4532
+ sofyaColorPalette,
4533
+ sofyaSemanticColorHex,
4534
+ sofyaSurfaceNames,
4535
+ sofyaTextStyleNames,
4536
+ themePresetNames,
4537
+ themePresets,
4538
+ themeToCssVariables as themeToCssVariables2
4539
+ } from "@sofya-ds/tokens";
4540
+ export {
4541
+ Accordion,
4542
+ AccordionContent,
4543
+ AccordionItem,
4544
+ AccordionTrigger,
4545
+ Alert,
4546
+ AlertDescription,
4547
+ AlertTitle,
4548
+ Avatar,
4549
+ Badge,
4550
+ Button,
4551
+ Card,
4552
+ CardContent,
4553
+ CardDescription,
4554
+ CardFooter,
4555
+ CardHeader,
4556
+ CardTitle,
4557
+ Checkbox,
4558
+ Dialog,
4559
+ DialogClose,
4560
+ DialogContent,
4561
+ DialogDescription,
4562
+ DialogFooter,
4563
+ DialogHeader,
4564
+ DialogOverlay,
4565
+ DialogPortal,
4566
+ DialogTitle,
4567
+ DialogTrigger,
4568
+ Dropdown,
4569
+ Empty,
4570
+ EmptyContent,
4571
+ EmptyDescription,
4572
+ EmptyHeader,
4573
+ EmptyMedia,
4574
+ EmptyTitle,
4575
+ Icon,
4576
+ Input,
4577
+ InputOTP,
4578
+ InputOTPGroup,
4579
+ InputOTPSeparator,
4580
+ InputOTPSlot,
4581
+ Label,
4582
+ Link,
4583
+ Logo,
4584
+ Pagination,
4585
+ PaginationContent,
4586
+ PaginationEllipsis,
4587
+ PaginationItem,
4588
+ PaginationLink,
4589
+ PaginationNext,
4590
+ PaginationPrevious,
4591
+ Popover,
4592
+ PopoverAnchor,
4593
+ PopoverClose,
4594
+ PopoverContent,
4595
+ PopoverDescription,
4596
+ PopoverPortal,
4597
+ PopoverTitle,
4598
+ PopoverTrigger,
4599
+ Progress,
4600
+ REGEXP_ONLY_DIGITS,
4601
+ RadioGroup2 as RadioGroup,
4602
+ RadioGroupItem,
4603
+ ScrollArea,
4604
+ ScrollAreaCorner,
4605
+ ScrollAreaScrollbar,
4606
+ ScrollAreaViewport,
4607
+ Select,
4608
+ SelectContent,
4609
+ SelectGroup,
4610
+ SelectItem,
4611
+ SelectLabel,
4612
+ SelectScrollDownButton,
4613
+ SelectScrollUpButton,
4614
+ SelectSeparator,
4615
+ SelectTrigger,
4616
+ SelectValue,
4617
+ Separator2 as Separator,
4618
+ Skeleton,
4619
+ SofyaProvider,
4620
+ Spinner,
4621
+ Surface,
4622
+ Switch,
4623
+ Table,
4624
+ TableActionButton,
4625
+ TableActions,
4626
+ TableBody,
4627
+ TableCaption,
4628
+ TableCell,
4629
+ TableFooter,
4630
+ TableHead,
4631
+ TableHeader,
4632
+ TableRow,
4633
+ TableStatusBadge,
4634
+ Tabs,
4635
+ Text,
4636
+ Textarea,
4637
+ Toaster,
4638
+ Tooltip,
4639
+ TooltipContent,
4640
+ TooltipProvider,
4641
+ TooltipTrigger,
4642
+ alertSizeOptions,
4643
+ alertToneOptions,
4644
+ avatarSizeOptions,
4645
+ avatarVariants,
4646
+ badgeAlertOptions,
4647
+ badgeAlertVariants,
4648
+ badgePillToneOptions,
4649
+ badgePillVariants,
4650
+ badgeVariantOptions,
4651
+ badgeVariants,
4652
+ brandPaletteToCssVariables,
4653
+ buttonLanguageLocaleOptions,
4654
+ buttonSizeOptions,
4655
+ buttonVariantOptions,
4656
+ buttonVariants,
4657
+ cardVariants,
4658
+ createWhitelabelTheme2 as createWhitelabelTheme,
4659
+ defaultTheme2 as defaultTheme,
4660
+ dropdownLanguageItems,
4661
+ dropdownVariantOptions,
4662
+ emptyMediaVariantOptions,
4663
+ gradientToCss,
4664
+ hexToHslChannels,
4665
+ iconColorOptions,
4666
+ iconNames,
4667
+ iconSizeOptions,
4668
+ inputVariantOptions,
4669
+ isTextContent,
4670
+ logoSizeOptions,
4671
+ logoVariants,
4672
+ mergeTheme,
4673
+ notificationVariantOptions,
4674
+ paginationLinkVariants,
4675
+ progressSizeOptions,
4676
+ radioGroupOrientationOptions,
4677
+ renderTextContent,
4678
+ resolveSurfaceToken,
4679
+ resolveTextStyle,
4680
+ resolveTheme,
4681
+ scrollAreaOrientationOptions,
4682
+ selectSizeOptions,
4683
+ sofyaBrandPalette,
4684
+ sofyaColorPalette,
4685
+ sofyaSemanticColorHex,
4686
+ sofyaSurfaceNames,
4687
+ sofyaTextStyleNames,
4688
+ spinnerSizeOptions,
4689
+ tableActionToneOptions,
4690
+ tableCellVariantOptions,
4691
+ tableStatusToneOptions,
4692
+ textSizeOptions,
4693
+ textSplitTypeOptions,
4694
+ textVariantOptions,
4695
+ themePresetNames,
4696
+ themePresets,
4697
+ themeToCssVariables2 as themeToCssVariables,
4698
+ toast,
4699
+ uploadKindOptions
4700
+ };