@psnext/design-system 1.0.0 → 1.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.
Files changed (115) hide show
  1. package/README.md +30 -124
  2. package/dist/Stack.cjs +64 -0
  3. package/dist/Stack.cjs.map +1 -0
  4. package/dist/Stack.js +54 -0
  5. package/dist/Stack.js.map +1 -0
  6. package/dist/ThemeProvider.cjs +1886 -0
  7. package/dist/ThemeProvider.cjs.map +1 -0
  8. package/dist/ThemeProvider.d.cts +85 -0
  9. package/dist/ThemeProvider.d.cts.map +1 -0
  10. package/dist/ThemeProvider.d.ts +85 -0
  11. package/dist/ThemeProvider.d.ts.map +1 -0
  12. package/dist/ThemeProvider.js +1508 -0
  13. package/dist/ThemeProvider.js.map +1 -0
  14. package/dist/contexts/index.cjs +0 -60
  15. package/dist/contexts/index.d.cts +1 -23
  16. package/dist/contexts/index.d.ts +1 -23
  17. package/dist/contexts/index.js +1 -58
  18. package/dist/index.cjs +147 -72
  19. package/dist/index.d.cts +1009 -432
  20. package/dist/index.d.cts.map +1 -1
  21. package/dist/index.d.ts +1014 -437
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -7
  24. package/dist/index2.d.cts +4 -16
  25. package/dist/index2.d.ts +4 -16
  26. package/dist/layouts/index.cjs +100 -12
  27. package/dist/layouts/index.cjs.map +1 -0
  28. package/dist/layouts/index.d.cts +70 -127
  29. package/dist/layouts/index.d.cts.map +1 -1
  30. package/dist/layouts/index.d.ts +70 -127
  31. package/dist/layouts/index.d.ts.map +1 -1
  32. package/dist/layouts/index.js +92 -2
  33. package/dist/layouts/index.js.map +1 -0
  34. package/dist/patterns/index.cjs +1004 -7254
  35. package/dist/patterns/index.cjs.map +1 -1
  36. package/dist/patterns/index.d.cts +381 -389
  37. package/dist/patterns/index.d.cts.map +1 -1
  38. package/dist/patterns/index.d.ts +378 -386
  39. package/dist/patterns/index.d.ts.map +1 -1
  40. package/dist/patterns/index.js +970 -7225
  41. package/dist/patterns/index.js.map +1 -1
  42. package/dist/primitives/index.cjs +135 -55
  43. package/dist/primitives/index.d.cts +3 -2
  44. package/dist/primitives/index.d.ts +3 -2
  45. package/dist/primitives/index.js +3 -5
  46. package/dist/primitives.cjs +3961 -1274
  47. package/dist/primitives.cjs.map +1 -1
  48. package/dist/primitives.js +3551 -1001
  49. package/dist/primitives.js.map +1 -1
  50. package/dist/styles/base.css +43 -0
  51. package/dist/styles/glass.css +75 -0
  52. package/dist/styles/index.css +43 -23
  53. package/dist/styles/semantic.css +107 -0
  54. package/dist/styles/theme.css +42 -24
  55. package/dist/styles/tokens/alpha.css +39 -0
  56. package/dist/styles/tokens/border-radius.css +17 -0
  57. package/dist/styles/tokens/chart-colors-dark.css +18 -0
  58. package/dist/styles/tokens/chart-colors-light.css +18 -0
  59. package/dist/styles/tokens/colors.css +251 -0
  60. package/dist/styles/tokens/mode-dark.css +101 -0
  61. package/dist/styles/tokens/mode-light.css +101 -0
  62. package/dist/styles/tokens/shadows.css +14 -0
  63. package/dist/styles/tokens/spacing.css +44 -0
  64. package/dist/styles/tokens/theme-bodhi.css +35 -0
  65. package/dist/styles/tokens/theme-slingshot.css +35 -0
  66. package/dist/styles/tokens/theme-sustain.css +35 -0
  67. package/dist/styles/tokens/typography.css +83 -0
  68. package/dist/utils.cjs +67 -0
  69. package/dist/utils.cjs.map +1 -0
  70. package/dist/utils.js +27 -0
  71. package/dist/utils.js.map +1 -0
  72. package/package.json +15 -41
  73. package/dist/AiChatPanel.cjs +0 -1603
  74. package/dist/AiChatPanel.cjs.map +0 -1
  75. package/dist/AiChatPanel.js +0 -1526
  76. package/dist/AiChatPanel.js.map +0 -1
  77. package/dist/BodhiLogo.cjs +0 -240
  78. package/dist/BodhiLogo.cjs.map +0 -1
  79. package/dist/BodhiLogo.js +0 -194
  80. package/dist/BodhiLogo.js.map +0 -1
  81. package/dist/Skeleton.cjs +0 -19
  82. package/dist/Skeleton.cjs.map +0 -1
  83. package/dist/Skeleton.js +0 -14
  84. package/dist/Skeleton.js.map +0 -1
  85. package/dist/SustainLogo.cjs +0 -415
  86. package/dist/SustainLogo.cjs.map +0 -1
  87. package/dist/SustainLogo.js +0 -378
  88. package/dist/SustainLogo.js.map +0 -1
  89. package/dist/contexts/index.cjs.map +0 -1
  90. package/dist/contexts/index.d.cts.map +0 -1
  91. package/dist/contexts/index.d.ts.map +0 -1
  92. package/dist/contexts/index.js.map +0 -1
  93. package/dist/index2.d.cts.map +0 -1
  94. package/dist/index2.d.ts.map +0 -1
  95. package/dist/layouts.cjs +0 -3245
  96. package/dist/layouts.cjs.map +0 -1
  97. package/dist/layouts.js +0 -3180
  98. package/dist/layouts.js.map +0 -1
  99. package/dist/styles/base/colors.css +0 -300
  100. package/dist/styles/base/component-tokens.css +0 -240
  101. package/dist/styles/base/elevation.css +0 -7
  102. package/dist/styles/base/fonts.css +0 -14
  103. package/dist/styles/base/global.css +0 -305
  104. package/dist/styles/base/radius.css +0 -22
  105. package/dist/styles/base/semantic-aliases.css +0 -53
  106. package/dist/styles/base/spacing.css +0 -33
  107. package/dist/styles/base/typography.css +0 -48
  108. package/dist/styles/generated/bodhi-vars.css +0 -34
  109. package/dist/styles/generated/dark.css +0 -87
  110. package/dist/styles/generated/light.css +0 -87
  111. package/dist/styles/generated/slingshot-vars.css +0 -34
  112. package/dist/styles/generated/sustain-vars.css +0 -34
  113. package/dist/styles/themes/bodhi.css +0 -166
  114. package/dist/styles/themes/slingshot.css +0 -144
  115. package/dist/styles/themes/sustain.css +0 -130
@@ -0,0 +1,1508 @@
1
+ import { n as cn } from "./utils.js";
2
+ import * as React from "react";
3
+ import { CheckIcon, ChevronRightIcon, CircleIcon, CirclePlus, Loader2Icon } from "lucide-react";
4
+ import { Avatar, DropdownMenu, Popover, Slot } from "radix-ui";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ import { cva } from "class-variance-authority";
7
+ //#region src/primitives/Spinner/Spinner.tsx
8
+ function Spinner({ className, ...props }) {
9
+ return /* @__PURE__ */ jsx(Loader2Icon, {
10
+ role: "status",
11
+ "aria-label": "Loading",
12
+ "data-slot": "spinner",
13
+ className: cn("size-4 animate-spin", className),
14
+ ...props
15
+ });
16
+ }
17
+ //#endregion
18
+ //#region src/primitives/Button/Button.tsx
19
+ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium cursor-pointer transition-[background-color,color,border-color,box-shadow,opacity,transform] duration-150 ease-out active:scale-[0.97] disabled:pointer-events-none disabled:opacity-50 disabled:active:scale-100 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
20
+ variants: {
21
+ variant: {
22
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
23
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
24
+ outline: "border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
25
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
26
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
27
+ link: "text-primary underline-offset-4 hover:underline"
28
+ },
29
+ size: {
30
+ xs: "h-7 gap-1 px-2.5 text-xs has-[>svg]:px-2",
31
+ sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
32
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
33
+ lg: "h-10 px-6 has-[>svg]:px-4",
34
+ icon: "size-9"
35
+ },
36
+ shape: {
37
+ default: "rounded-full",
38
+ square: "rounded-md"
39
+ }
40
+ },
41
+ defaultVariants: {
42
+ variant: "default",
43
+ size: "default",
44
+ shape: "default"
45
+ }
46
+ });
47
+ function Button({ className, variant, size, shape, asChild = false, loading = false, disabled, children, ...props }) {
48
+ return /* @__PURE__ */ jsx(asChild ? Slot.Root : "button", {
49
+ "data-slot": "button",
50
+ "data-loading": loading || void 0,
51
+ className: cn(buttonVariants({
52
+ variant,
53
+ size,
54
+ shape,
55
+ className
56
+ })),
57
+ disabled: disabled || loading,
58
+ ...props,
59
+ children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [loading ? /* @__PURE__ */ jsx(Spinner, {}) : null, children] })
60
+ });
61
+ }
62
+ //#endregion
63
+ //#region src/primitives/Avatar/Avatar.tsx
64
+ function Avatar$1({ className, size = "default", shape = "round", ...props }) {
65
+ return /* @__PURE__ */ jsx(Avatar.Root, {
66
+ "data-slot": "avatar",
67
+ "data-size": size,
68
+ "data-shape": shape,
69
+ className: cn("group/avatar relative flex size-10 shrink-0 overflow-hidden rounded-full select-none", "data-[size=sm]:size-8 data-[size=xs]:size-6 data-[size=xxs]:size-5", "data-[shape=roundrect]:rounded-lg", className),
70
+ ...props
71
+ });
72
+ }
73
+ function AvatarImage({ className, ...props }) {
74
+ return /* @__PURE__ */ jsx(Avatar.Image, {
75
+ "data-slot": "avatar-image",
76
+ className: cn("aspect-square size-full", className),
77
+ ...props
78
+ });
79
+ }
80
+ function AvatarFallback({ className, ...props }) {
81
+ return /* @__PURE__ */ jsx(Avatar.Fallback, {
82
+ "data-slot": "avatar-fallback",
83
+ className: cn("bg-muted flex size-full items-center justify-center rounded-full", "group-data-[shape=roundrect]/avatar:rounded-lg", "group-data-[size=sm]/avatar:text-sm group-data-[size=xs]/avatar:text-xs group-data-[size=xxs]/avatar:text-[10px]", className),
84
+ ...props
85
+ });
86
+ }
87
+ function AvatarBadge({ className, ...props }) {
88
+ return /* @__PURE__ */ jsx("span", {
89
+ "data-slot": "avatar-badge",
90
+ className: cn("absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground ring-2 ring-background select-none", "group-data-[size=default]/avatar:size-3 group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=sm]/avatar:size-2.5 group-data-[size=sm]/avatar:[&>svg]:size-2", "group-data-[size=xs]/avatar:size-2 group-data-[size=xs]/avatar:[&>svg]:size-1.5", "group-data-[size=xxs]/avatar:size-1.5 group-data-[size=xxs]/avatar:[&>svg]:size-1", className),
91
+ ...props
92
+ });
93
+ }
94
+ function AvatarGroup({ className, ...props }) {
95
+ return /* @__PURE__ */ jsx("div", {
96
+ "data-slot": "avatar-group",
97
+ className: cn("group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background", className),
98
+ ...props
99
+ });
100
+ }
101
+ function AvatarGroupCount({ className, ...props }) {
102
+ return /* @__PURE__ */ jsx("div", {
103
+ "data-slot": "avatar-group-count",
104
+ className: cn("relative flex size-10 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=sm]/avatar-group:size-8 [&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-4", className),
105
+ ...props
106
+ });
107
+ }
108
+ //#endregion
109
+ //#region src/primitives/Card/Card.tsx
110
+ const cardVariants = cva("flex flex-col gap-6 rounded-xl border text-card-foreground", {
111
+ variants: {
112
+ variant: {
113
+ default: "bg-card",
114
+ glass: "border-transparent backdrop-blur-[var(--glass-blur)]"
115
+ },
116
+ tint: {
117
+ subtle: "",
118
+ light: "",
119
+ medium: "",
120
+ heavy: ""
121
+ }
122
+ },
123
+ compoundVariants: [
124
+ {
125
+ variant: "glass",
126
+ tint: "subtle",
127
+ class: "bg-[var(--glass-subtle)]"
128
+ },
129
+ {
130
+ variant: "glass",
131
+ tint: "light",
132
+ class: "bg-[var(--glass-light)]"
133
+ },
134
+ {
135
+ variant: "glass",
136
+ tint: "medium",
137
+ class: "bg-[var(--glass-medium)]"
138
+ },
139
+ {
140
+ variant: "glass",
141
+ tint: "heavy",
142
+ class: "bg-[var(--glass-heavy)]"
143
+ }
144
+ ],
145
+ defaultVariants: {
146
+ variant: "default",
147
+ tint: "light"
148
+ }
149
+ });
150
+ function Card({ className, variant, tint, ...props }) {
151
+ return /* @__PURE__ */ jsx("div", {
152
+ "data-slot": "card",
153
+ "data-variant": variant ?? "default",
154
+ className: cn(cardVariants({
155
+ variant,
156
+ tint
157
+ }), className),
158
+ ...props
159
+ });
160
+ }
161
+ function CardHeader({ className, ...props }) {
162
+ return /* @__PURE__ */ jsx("div", {
163
+ "data-slot": "card-header",
164
+ className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className),
165
+ ...props
166
+ });
167
+ }
168
+ function CardTitle({ className, ...props }) {
169
+ return /* @__PURE__ */ jsx("h4", {
170
+ "data-slot": "card-title",
171
+ className: cn("leading-none", className),
172
+ ...props
173
+ });
174
+ }
175
+ function CardDescription({ className, ...props }) {
176
+ return /* @__PURE__ */ jsx("p", {
177
+ "data-slot": "card-description",
178
+ className: cn("text-muted-foreground", className),
179
+ ...props
180
+ });
181
+ }
182
+ function CardAction({ className, ...props }) {
183
+ return /* @__PURE__ */ jsx("div", {
184
+ "data-slot": "card-action",
185
+ className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
186
+ ...props
187
+ });
188
+ }
189
+ function CardContent({ className, ...props }) {
190
+ return /* @__PURE__ */ jsx("div", {
191
+ "data-slot": "card-content",
192
+ className: cn("px-6 [&:last-child]:pb-6", className),
193
+ ...props
194
+ });
195
+ }
196
+ function CardFooter({ className, ...props }) {
197
+ return /* @__PURE__ */ jsx("div", {
198
+ "data-slot": "card-footer",
199
+ className: cn("flex items-center px-6 pb-6 [.border-t]:pt-6", className),
200
+ ...props
201
+ });
202
+ }
203
+ //#endregion
204
+ //#region src/primitives/Credits/Credits.tsx
205
+ const creditsVariants = cva("inline-flex w-fit items-center gap-1 rounded-full px-2.5 py-0.5 text-sm font-medium tabular-nums whitespace-nowrap [&>svg]:size-3.5 [&>svg]:shrink-0", {
206
+ variants: { variant: {
207
+ default: "bg-muted text-foreground [&>svg]:text-muted-foreground",
208
+ warning: "bg-[var(--bg-warning-subtle)] text-[var(--content-warning-bold)]",
209
+ critical: "bg-[var(--bg-error-subtle)] text-[var(--content-error-bold)]"
210
+ } },
211
+ defaultVariants: { variant: "default" }
212
+ });
213
+ /** Escalate the variant as the balance drops. */
214
+ function resolveVariant(value, lowThreshold) {
215
+ if (value <= 0) return "critical";
216
+ if (value <= lowThreshold) return "warning";
217
+ return "default";
218
+ }
219
+ /** Whole-number, thousands-separated (e.g. 9995.79 → "9,995"). */
220
+ function formatCredits(value) {
221
+ return Math.floor(value).toLocaleString();
222
+ }
223
+ function Credits({ className, value, variant, lowThreshold = 200, icon, format = formatCredits, ...props }) {
224
+ const resolved = variant ?? resolveVariant(value, lowThreshold);
225
+ return /* @__PURE__ */ jsxs("span", {
226
+ "data-slot": "credits",
227
+ "data-variant": resolved,
228
+ className: cn(creditsVariants({ variant: resolved }), className),
229
+ ...props,
230
+ children: [icon ?? /* @__PURE__ */ jsx(CirclePlus, { "aria-hidden": "true" }), format(value)]
231
+ });
232
+ }
233
+ //#endregion
234
+ //#region src/primitives/DropdownMenu/DropdownMenu.tsx
235
+ function DropdownMenu$1({ ...props }) {
236
+ return /* @__PURE__ */ jsx(DropdownMenu.Root, {
237
+ "data-slot": "dropdown-menu",
238
+ ...props
239
+ });
240
+ }
241
+ function DropdownMenuPortal({ ...props }) {
242
+ return /* @__PURE__ */ jsx(DropdownMenu.Portal, {
243
+ "data-slot": "dropdown-menu-portal",
244
+ ...props
245
+ });
246
+ }
247
+ function DropdownMenuTrigger({ ...props }) {
248
+ return /* @__PURE__ */ jsx(DropdownMenu.Trigger, {
249
+ "data-slot": "dropdown-menu-trigger",
250
+ ...props
251
+ });
252
+ }
253
+ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
254
+ return /* @__PURE__ */ jsx(DropdownMenu.Portal, { children: /* @__PURE__ */ jsx(DropdownMenu.Content, {
255
+ "data-slot": "dropdown-menu-content",
256
+ sideOffset,
257
+ className: cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
258
+ ...props
259
+ }) });
260
+ }
261
+ function DropdownMenuGroup({ ...props }) {
262
+ return /* @__PURE__ */ jsx(DropdownMenu.Group, {
263
+ "data-slot": "dropdown-menu-group",
264
+ ...props
265
+ });
266
+ }
267
+ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
268
+ return /* @__PURE__ */ jsx(DropdownMenu.Item, {
269
+ "data-slot": "dropdown-menu-item",
270
+ "data-inset": inset,
271
+ "data-variant": variant,
272
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!", className),
273
+ ...props
274
+ });
275
+ }
276
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
277
+ return /* @__PURE__ */ jsxs(DropdownMenu.CheckboxItem, {
278
+ "data-slot": "dropdown-menu-checkbox-item",
279
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
280
+ checked,
281
+ ...props,
282
+ children: [/* @__PURE__ */ jsx("span", {
283
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
284
+ children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
285
+ }), children]
286
+ });
287
+ }
288
+ function DropdownMenuRadioGroup({ ...props }) {
289
+ return /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, {
290
+ "data-slot": "dropdown-menu-radio-group",
291
+ ...props
292
+ });
293
+ }
294
+ function DropdownMenuRadioItem({ className, children, ...props }) {
295
+ return /* @__PURE__ */ jsxs(DropdownMenu.RadioItem, {
296
+ "data-slot": "dropdown-menu-radio-item",
297
+ className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
298
+ ...props,
299
+ children: [/* @__PURE__ */ jsx("span", {
300
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
301
+ children: /* @__PURE__ */ jsx(DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) })
302
+ }), children]
303
+ });
304
+ }
305
+ function DropdownMenuLabel({ className, inset, ...props }) {
306
+ return /* @__PURE__ */ jsx(DropdownMenu.Label, {
307
+ "data-slot": "dropdown-menu-label",
308
+ "data-inset": inset,
309
+ className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
310
+ ...props
311
+ });
312
+ }
313
+ function DropdownMenuSeparator({ className, ...props }) {
314
+ return /* @__PURE__ */ jsx(DropdownMenu.Separator, {
315
+ "data-slot": "dropdown-menu-separator",
316
+ className: cn("-mx-1 my-1 h-px bg-border", className),
317
+ ...props
318
+ });
319
+ }
320
+ function DropdownMenuShortcut({ className, ...props }) {
321
+ return /* @__PURE__ */ jsx("span", {
322
+ "data-slot": "dropdown-menu-shortcut",
323
+ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className),
324
+ ...props
325
+ });
326
+ }
327
+ function DropdownMenuSub({ ...props }) {
328
+ return /* @__PURE__ */ jsx(DropdownMenu.Sub, {
329
+ "data-slot": "dropdown-menu-sub",
330
+ ...props
331
+ });
332
+ }
333
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
334
+ return /* @__PURE__ */ jsxs(DropdownMenu.SubTrigger, {
335
+ "data-slot": "dropdown-menu-sub-trigger",
336
+ "data-inset": inset,
337
+ className: cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", className),
338
+ ...props,
339
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
340
+ });
341
+ }
342
+ function DropdownMenuSubContent({ className, ...props }) {
343
+ return /* @__PURE__ */ jsx(DropdownMenu.SubContent, {
344
+ "data-slot": "dropdown-menu-sub-content",
345
+ className: cn("z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
346
+ ...props
347
+ });
348
+ }
349
+ //#endregion
350
+ //#region src/primitives/Heading/Heading.tsx
351
+ const headingVariants = cva("font-heading text-balance", {
352
+ variants: {
353
+ size: {
354
+ "1": "text-[length:var(--heading-1-font-size)] leading-[var(--heading-1-line-height)] font-normal",
355
+ "2": "text-[length:var(--heading-2-font-size)] leading-[var(--heading-2-line-height)] font-normal",
356
+ "3": "text-[length:var(--heading-3-font-size)] leading-[var(--heading-3-line-height)] font-normal",
357
+ "4": "text-[length:var(--heading-4-font-size)] leading-[var(--heading-4-line-height)] font-normal",
358
+ "5": "text-[length:var(--heading-5-font-size)] leading-[var(--heading-5-line-height)] font-medium",
359
+ "6": "text-[length:var(--heading-6-font-size)] leading-[var(--heading-6-line-height)] font-medium",
360
+ "7": "text-[length:var(--heading-7-font-size)] leading-[var(--heading-7-line-height)] font-medium"
361
+ },
362
+ weight: {
363
+ normal: "font-normal",
364
+ medium: "font-medium",
365
+ semibold: "font-semibold"
366
+ },
367
+ align: {
368
+ left: "text-left",
369
+ center: "text-center",
370
+ right: "text-right"
371
+ },
372
+ gradient: {
373
+ true: "bg-gradient-to-r from-[var(--gradient-heading-from)] to-[var(--gradient-heading-to)] bg-clip-text text-transparent",
374
+ false: "text-foreground"
375
+ }
376
+ },
377
+ defaultVariants: {
378
+ size: "2",
379
+ gradient: false
380
+ }
381
+ });
382
+ function Heading({ as, className, size, weight, align, gradient, ...props }) {
383
+ return /* @__PURE__ */ jsx(as ?? "h2", {
384
+ "data-slot": "heading",
385
+ className: cn(headingVariants({
386
+ size,
387
+ weight,
388
+ align,
389
+ gradient
390
+ }), className),
391
+ ...props
392
+ });
393
+ }
394
+ //#endregion
395
+ //#region src/primitives/Input/Input.tsx
396
+ const inputVariants = cva(cn("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input bg-input-background flex w-full min-w-0 border transition-[color,box-shadow] outline-none file:inline-flex file:border-0 file:bg-transparent file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"), {
397
+ variants: {
398
+ size: {
399
+ xs: "h-6 px-2 py-0.5 text-xs file:h-5 file:text-xs",
400
+ sm: "h-8 px-2.5 py-1 text-sm file:h-6 file:text-xs",
401
+ default: "h-9 px-3 py-1 text-base md:text-sm file:h-7 file:text-sm",
402
+ lg: "h-10 px-4 py-2 text-base file:h-8 file:text-sm"
403
+ },
404
+ shape: {
405
+ default: "rounded-md",
406
+ round: "rounded-full"
407
+ }
408
+ },
409
+ defaultVariants: {
410
+ size: "default",
411
+ shape: "default"
412
+ }
413
+ });
414
+ function Input({ className, type, size, shape, ...props }) {
415
+ return /* @__PURE__ */ jsx("input", {
416
+ type,
417
+ "data-slot": "input",
418
+ className: cn(inputVariants({
419
+ size,
420
+ shape
421
+ }), className),
422
+ ...props
423
+ });
424
+ }
425
+ //#endregion
426
+ //#region src/primitives/Logo/marks/bodhi-icon.tsx
427
+ function BodhiIcon(props) {
428
+ return /* @__PURE__ */ jsxs("svg", {
429
+ width: "64",
430
+ height: "64",
431
+ viewBox: "0 0 64 64",
432
+ fill: "none",
433
+ xmlns: "http://www.w3.org/2000/svg",
434
+ ...props,
435
+ style: { fill: "var(--red-500)" },
436
+ children: [
437
+ /* @__PURE__ */ jsx("path", {
438
+ d: "M63.3 32.5c0 17.32-14.06 32.05-31.4 32.05C14.55 64.55.5 49.82.5 32.5A31.4 31.4 0 0 1 31.9 1.13 31.4 31.4 0 0 1 63.3 32.5",
439
+ fill: "white"
440
+ }),
441
+ /* @__PURE__ */ jsx("path", { d: "M32 .55a32 32 0 0 1 2.64 63.9l-.79-11.57.4-1.01 8.6-8.79a2.38 2.38 0 0 0 4.42-.85l8.54-.87a2.39 2.39 0 1 0 2.74-2.9l.17-9.7c.9-.04 1.6-.75 1.6-1.68a1.69 1.69 0 0 0-2.59-1.42L52.1 18a2.28 2.28 0 0 0-3.36-3.09l-4.88-4.22q.1-.28.1-.59a1.69 1.69 0 0 0-3.17-.8l-6.55-1.27a1.69 1.69 0 0 0-3.32-.01l-6.6 1.29a1.7 1.7 0 0 0-3.08 1.38l-4.88 4.22q-.23-.24-.55-.42a2.29 2.29 0 0 0-2.8 3.51l-5.64 7.66a1.7 1.7 0 0 0-.91-.27 1.69 1.69 0 0 0-.08 3.37l.17 9.85a2.39 2.39 0 1 0 3.26 2.8l8.02.82a2.38 2.38 0 0 0 4.06 1.34l8.4 9.04-.78 11.86C13 63.2 0 50.24 0 32.56a32 32 0 0 1 32-32" }),
442
+ /* @__PURE__ */ jsx("path", { d: "M40.52 35.07a2.4 2.4 0 0 0 1.97.3l1.43 4.35c-.82.37-1.4 1.2-1.4 2.17v.07l-8.9 6.9-.2-7.96z" }),
443
+ /* @__PURE__ */ jsx("path", { d: "m30.84 40.87-.42 7.95-7.96-6.2a2.37 2.37 0 0 0-1.28-2.9l1.5-4.54c.62 0 1.2-.25 1.62-.65z" }),
444
+ /* @__PURE__ */ jsx("path", { d: "M12.55 33.23a2.6 2.6 0 0 0 2.65.18l3.71 6.47a2.4 2.4 0 0 0-1.1 2.13l-7.95-.81q.04-.2.04-.4c0-.95-.55-1.76-1.35-2.15z" }),
445
+ /* @__PURE__ */ jsx("path", { d: "M56.68 38.9a2.4 2.4 0 0 0-.91 2.25l-8.48.86v-.12c0-.85-.44-1.59-1.1-2.01l3.7-6.47a2.6 2.6 0 0 0 2.63-.16z" }),
446
+ /* @__PURE__ */ jsx("path", { d: "M39.82 31.79a2.4 2.4 0 0 0 .52 3.15l-6.93 5.69-.28-11.4q.49-.24.81-.64z" }),
447
+ /* @__PURE__ */ jsx("path", { d: "M30.6 28.93q.38.3.84.43l-.59 11.22-6.4-6.2a2.4 2.4 0 0 0 .47-2.36z" }),
448
+ /* @__PURE__ */ jsx("path", { d: "M20.28 32.92c.07 1.19 1 2.14 2.17 2.25l-1.47 4.47a2.4 2.4 0 0 0-1.88.13l-3.7-6.47q.57-.35.91-.94z" }),
449
+ /* @__PURE__ */ jsx("path", { d: "M48.78 32.36q.35.59.92.94L46 39.77a2 2 0 0 0-.8-.25l-.3-.02q-.4 0-.78.14L42.7 35.3c.89-.35 1.52-1.21 1.52-2.23v-.06z" }),
450
+ /* @__PURE__ */ jsx("path", { d: "M57.25 28.04c.28.4.73.68 1.25.72l-.17 9.66h-.2q-.68 0-1.21.32l-4.17-5.66a2.6 2.6 0 0 0 .84-2.84z" }),
451
+ /* @__PURE__ */ jsx("path", { d: "M11.5 30.24a2.6 2.6 0 0 0 .87 2.86l-4.02 5.47a2.4 2.4 0 0 0-1.59-.04l-.17-9.77c.52-.04.97-.32 1.25-.72z" }),
452
+ /* @__PURE__ */ jsx("path", { d: "M49.21 29.17a2.6 2.6 0 0 0-.53 2.99l-4.49.64a2.4 2.4 0 0 0-1.33-1.87l.85-8.06h.02q.5-.01.88-.25z" }),
453
+ /* @__PURE__ */ jsx("path", { d: "M20.49 22.62q.4.24.88.25h.02l.8 7.58a2.4 2.4 0 0 0-1.9 2.25l-3.87-.54a2.6 2.6 0 0 0-.53-3z" }),
454
+ /* @__PURE__ */ jsx("path", { d: "M29.83 26.32a2.4 2.4 0 0 0 .55 2.4l-5.57 3.04a2.4 2.4 0 0 0-2.41-1.34l-.8-7.57q.55-.08.93-.44z" }),
455
+ /* @__PURE__ */ jsx("path", { d: "M42.57 22.41q.38.37.93.45l-.84 7.98a2.4 2.4 0 0 0-2.54.57l-.18.2-5.87-3.2a2.4 2.4 0 0 0 .4-1.66z" }),
456
+ /* @__PURE__ */ jsx("path", { d: "M48.4 17.6a2.3 2.3 0 0 0 2.9.99l.2-.1q.25-.14.44-.33l5.62 7.63a1.7 1.7 0 0 0-.42 2.06l-3.62 2.18a2.64 2.64 0 0 0-4.15-1L44.8 22.5a1.7 1.7 0 0 0 .32-2.28z" }),
457
+ /* @__PURE__ */ jsx("path", { d: "M19.98 20.22a1.7 1.7 0 0 0 .33 2.28l-4.58 6.52a2.63 2.63 0 0 0-4.15 1.01l-3.62-2.18a1.7 1.7 0 0 0-.42-2.06l5.61-7.63q.2.18.45.32c1.1.61 2.48.22 3.1-.88z" }),
458
+ /* @__PURE__ */ jsx("path", { d: "m42.06 20.92-.02.27q.01.61.38 1.06l-8 4.28a2.4 2.4 0 0 0-1.91-1.81l.08-4.14c.83 0 1.51-.6 1.65-1.4z" }),
459
+ /* @__PURE__ */ jsx("path", { d: "M30.94 19.3c.16.67.73 1.19 1.44 1.27l-.08 4.12-.2-.01c-.98 0-1.82.6-2.19 1.44l-7.23-3.87a1.7 1.7 0 0 0 .36-1.3z" }),
460
+ /* @__PURE__ */ jsx("path", { d: "M21.33 10.9c.25.46.71.8 1.26.87l.23.02c.48 0 .9-.2 1.21-.51l7.42 6.37a1.7 1.7 0 0 0-.55 1.43L23 20.74a1.69 1.69 0 0 0-2.88-.69L16.8 17.4c.34-.78.21-1.68-.3-2.33z" }),
461
+ /* @__PURE__ */ jsx("path", { d: "M48.6 15.07c-.51.65-.64 1.54-.3 2.33l-3.32 2.65a1.68 1.68 0 0 0-2.87.66l-7.85-1.75v-.06q0-.54-.29-.96l7.15-6.61a1.68 1.68 0 0 0 2.65-.44z" }),
462
+ /* @__PURE__ */ jsx("path", { d: "M40.7 9.5a1.7 1.7 0 0 0 .27 1.67l-7.13 6.6c-.3-.32-.72-.54-1.19-.56L32.8 10c.83-.11 1.48-.82 1.48-1.68v-.06z" }),
463
+ /* @__PURE__ */ jsx("path", { d: "M30.89 8.32c0 .93.75 1.68 1.69 1.68l-.14 7.22q-.46.04-.82.29l-7.45-6.4a1.7 1.7 0 0 0 .23-1.6l6.5-1.27z" })
464
+ ]
465
+ });
466
+ }
467
+ //#endregion
468
+ //#region src/primitives/Logo/marks/bodhi-logo.tsx
469
+ function BodhiLogo(props) {
470
+ return /* @__PURE__ */ jsxs("svg", {
471
+ width: "101",
472
+ height: "37",
473
+ viewBox: "0 0 101 37",
474
+ fill: "none",
475
+ xmlns: "http://www.w3.org/2000/svg",
476
+ ...props,
477
+ style: {
478
+ "--logo-circle-bg": "var(--background)",
479
+ "--logo-icon-red": "var(--red-500)",
480
+ "--logo-text-dark": "var(--foreground)"
481
+ },
482
+ children: [
483
+ /* @__PURE__ */ jsx("path", {
484
+ d: "M35.6 18.28c0 9.74-7.9 18.03-17.66 18.03S.28 28.02.28 18.28 8.18.64 17.94.64s17.67 7.9 17.67 17.64",
485
+ fill: "var(--logo-circle-bg)"
486
+ }),
487
+ /* @__PURE__ */ jsx("path", {
488
+ d: "M18 .31a18 18 0 0 1 1.48 35.95l-.44-6.52.23-.56 4.83-4.95a1.34 1.34 0 0 0 2.49-.47l4.8-.5a1.34 1.34 0 1 0 1.55-1.63l.09-5.45c.5-.02.9-.42.9-.95a.95.95 0 0 0-1.46-.8l-3.17-4.3a1.28 1.28 0 0 0-1.89-1.74L24.67 6q.06-.15.06-.33a.95.95 0 0 0-1.79-.45l-3.68-.71a.95.95 0 0 0-1.87 0l-3.71.71a.95.95 0 0 0-1.73.78L9.2 8.4a1.29 1.29 0 0 0-1.89 1.74l-3.16 4.3a1 1 0 0 0-.52-.15.95.95 0 0 0-.04 1.9l.1 5.54a1.34 1.34 0 1 0 1.83 1.57l4.5.47a1.34 1.34 0 0 0 2.3.75l4.72 5.08-.44 6.68C7.3 35.55 0 28.26 0 18.3a18 18 0 0 1 18-18",
489
+ fill: "var(--logo-icon-red)"
490
+ }),
491
+ /* @__PURE__ */ jsx("path", {
492
+ d: "M22.8 19.73a1.3 1.3 0 0 0 1.1.16l.8 2.45c-.46.21-.78.68-.78 1.22v.04l-5.01 3.89L18.8 23z",
493
+ fill: "var(--logo-icon-red)"
494
+ }),
495
+ /* @__PURE__ */ jsx("path", {
496
+ d: "m17.35 22.99-.24 4.47-4.47-3.49a1.34 1.34 0 0 0-.73-1.63l.85-2.55q.54-.01.9-.37z",
497
+ fill: "var(--logo-icon-red)"
498
+ }),
499
+ /* @__PURE__ */ jsx("path", {
500
+ d: "M7.06 18.7a1.5 1.5 0 0 0 1.5.1l2.08 3.63a1.3 1.3 0 0 0-.62 1.2l-4.47-.45.02-.23c0-.53-.31-.99-.76-1.2z",
501
+ fill: "var(--logo-icon-red)"
502
+ }),
503
+ /* @__PURE__ */ jsx("path", {
504
+ d: "M31.88 21.88a1.3 1.3 0 0 0-.51 1.26l-4.77.5v-.08c0-.47-.25-.9-.62-1.13l2.09-3.64a1.5 1.5 0 0 0 1.47-.09z",
505
+ fill: "var(--logo-icon-red)"
506
+ }),
507
+ /* @__PURE__ */ jsx("path", {
508
+ d: "M22.4 17.88a1.34 1.34 0 0 0 .3 1.78l-3.9 3.2-.16-6.42q.26-.13.45-.36z",
509
+ fill: "var(--logo-icon-red)"
510
+ }),
511
+ /* @__PURE__ */ jsx("path", {
512
+ d: "M17.22 16.27q.2.17.46.25l-.33 6.3-3.6-3.48a1.3 1.3 0 0 0 .27-1.33z",
513
+ fill: "var(--logo-icon-red)"
514
+ }),
515
+ /* @__PURE__ */ jsx("path", {
516
+ d: "M11.41 18.52c.04.67.56 1.2 1.22 1.26l-.83 2.52a1.3 1.3 0 0 0-1.06.07l-2.08-3.64q.32-.2.52-.53z",
517
+ fill: "var(--logo-icon-red)"
518
+ }),
519
+ /* @__PURE__ */ jsx("path", {
520
+ d: "M27.44 18.2q.2.33.52.53l-2.09 3.64a1 1 0 0 0-.45-.14l-.16-.01q-.23 0-.44.08l-.8-2.45c.5-.19.85-.68.85-1.25v-.03z",
521
+ fill: "var(--logo-icon-red)"
522
+ }),
523
+ /* @__PURE__ */ jsx("path", {
524
+ d: "M32.2 15.77q.26.36.7.4l-.09 5.44h-.12q-.37 0-.67.18l-2.35-3.18a1.5 1.5 0 0 0 .47-1.6z",
525
+ fill: "var(--logo-icon-red)"
526
+ }),
527
+ /* @__PURE__ */ jsx("path", {
528
+ d: "M6.47 17.01a1.5 1.5 0 0 0 .49 1.61L4.7 21.7a1.3 1.3 0 0 0-.9-.02l-.1-5.5q.47-.04.71-.4z",
529
+ fill: "var(--logo-icon-red)"
530
+ }),
531
+ /* @__PURE__ */ jsx("path", {
532
+ d: "M27.68 16.4a1.5 1.5 0 0 0-.3 1.69l-2.52.36a1.3 1.3 0 0 0-.75-1.05l.48-4.53q.29-.01.5-.14z",
533
+ fill: "var(--logo-icon-red)"
534
+ }),
535
+ /* @__PURE__ */ jsx("path", {
536
+ d: "M11.53 12.73q.2.13.49.14h.01l.45 4.26c-.6.12-1.05.64-1.07 1.27l-2.17-.31a1.5 1.5 0 0 0-.3-1.68z",
537
+ fill: "var(--logo-icon-red)"
538
+ }),
539
+ /* @__PURE__ */ jsx("path", {
540
+ d: "M16.78 14.8a1.3 1.3 0 0 0 .31 1.36l-3.13 1.7a1.3 1.3 0 0 0-1.36-.75l-.45-4.25q.3-.05.52-.26z",
541
+ fill: "var(--logo-icon-red)"
542
+ }),
543
+ /* @__PURE__ */ jsx("path", {
544
+ d: "M23.94 12.6q.23.21.53.26l-.48 4.49a1.3 1.3 0 0 0-1.43.32l-.1.11-3.3-1.8a1.3 1.3 0 0 0 .23-.93z",
545
+ fill: "var(--logo-icon-red)"
546
+ }),
547
+ /* @__PURE__ */ jsx("path", {
548
+ d: "M27.23 9.9c.32.58 1.02.81 1.62.55l.12-.05q.14-.08.25-.18l3.16 4.29a.95.95 0 0 0-.24 1.16l-2.04 1.22a1.5 1.5 0 0 0-2.33-.57l-2.58-3.66a.95.95 0 0 0 .19-1.29z",
549
+ fill: "var(--logo-icon-red)"
550
+ }),
551
+ /* @__PURE__ */ jsx("path", {
552
+ d: "M11.24 11.37a.95.95 0 0 0 .19 1.29l-2.58 3.66a1.48 1.48 0 0 0-2.33.57l-2.04-1.22a.94.94 0 0 0-.24-1.17l3.16-4.28q.11.1.25.18c.62.34 1.4.12 1.74-.5z",
553
+ fill: "var(--logo-icon-red)"
554
+ }),
555
+ /* @__PURE__ */ jsx("path", {
556
+ d: "m23.66 11.77-.01.15q0 .34.21.6l-4.5 2.4a1.3 1.3 0 0 0-1.07-1.01l.04-2.33c.47 0 .85-.35.93-.8z",
557
+ fill: "var(--logo-icon-red)"
558
+ }),
559
+ /* @__PURE__ */ jsx("path", {
560
+ d: "M17.4 10.85c.1.38.41.67.81.72l-.04 2.32h-.11c-.55 0-1.03.33-1.23.8l-4.07-2.18a1 1 0 0 0 .2-.73z",
561
+ fill: "var(--logo-icon-red)"
562
+ }),
563
+ /* @__PURE__ */ jsx("path", {
564
+ d: "M12 6.13c.14.26.4.45.7.5h.14q.4 0 .68-.29l4.17 3.59a1 1 0 0 0-.3.8l-4.46.93a.95.95 0 0 0-1.61-.38L9.45 9.79c.2-.44.12-.95-.17-1.31z",
565
+ fill: "var(--logo-icon-red)"
566
+ }),
567
+ /* @__PURE__ */ jsx("path", {
568
+ d: "M27.34 8.48c-.3.36-.36.87-.17 1.3l-1.87 1.5a.95.95 0 0 0-1.61.37l-4.42-.99v-.03q0-.3-.16-.54l4.02-3.72a.95.95 0 0 0 1.49-.24z",
569
+ fill: "var(--logo-icon-red)"
570
+ }),
571
+ /* @__PURE__ */ jsx("path", {
572
+ d: "M22.9 5.35a1 1 0 0 0 .15.94L19.03 10a1 1 0 0 0-.66-.32l.08-4.06a.95.95 0 0 0 .82-.94v-.04z",
573
+ fill: "var(--logo-icon-red)"
574
+ }),
575
+ /* @__PURE__ */ jsx("path", {
576
+ d: "M17.38 4.68c0 .52.42.95.94.95l-.07 4.05a1 1 0 0 0-.47.17l-4.18-3.6a1 1 0 0 0 .13-.9l3.65-.71z",
577
+ fill: "var(--logo-icon-red)"
578
+ }),
579
+ /* @__PURE__ */ jsx("path", {
580
+ "fill-rule": "evenodd",
581
+ "clip-rule": "evenodd",
582
+ d: "M66.27 5.17a.5.5 0 0 0 .49-.5.5.5 0 0 0-.5-.5.5.5 0 0 0-.48.5c0 .28.22.5.49.5",
583
+ fill: "var(--logo-text-dark)"
584
+ }),
585
+ /* @__PURE__ */ jsx("path", {
586
+ "fill-rule": "evenodd",
587
+ "clip-rule": "evenodd",
588
+ d: "M65.88 12.73h.76V6.1h-.76z",
589
+ fill: "var(--logo-text-dark)"
590
+ }),
591
+ /* @__PURE__ */ jsx("path", {
592
+ "fill-rule": "evenodd",
593
+ "clip-rule": "evenodd",
594
+ d: "M50.72 9.4c0-1.38 1.06-2.5 2.37-2.5 1.3 0 2.37 1.12 2.37 2.5v.1c-.05 1.37-1.1 2.44-2.37 2.44-1.28 0-2.37-1.14-2.37-2.54m2.37 3.32c.92 0 1.77-.41 2.37-1.15v1.16h.76V6.1h-.76v1.14a3 3 0 0 0-2.37-1.14 3.2 3.2 0 0 0-3.13 3.3c0 1.8 1.4 3.31 3.13 3.31",
595
+ fill: "var(--logo-text-dark)"
596
+ }),
597
+ /* @__PURE__ */ jsx("path", {
598
+ "fill-rule": "evenodd",
599
+ "clip-rule": "evenodd",
600
+ d: "M61.35 11.94c-1.28 0-2.32-1.07-2.37-2.43v-.1c0-1.4 1.06-2.52 2.37-2.52 1.3 0 2.37 1.13 2.37 2.51 0 1.39-1.07 2.54-2.37 2.54m3.13-2.54c0-1.81-1.4-3.29-3.13-3.29-.93 0-1.78.41-2.37 1.14V6.1h-.76v9h.76v-3.53c.6.73 1.45 1.14 2.37 1.14 1.72 0 3.13-1.49 3.13-3.32",
601
+ fill: "var(--logo-text-dark)"
602
+ }),
603
+ /* @__PURE__ */ jsx("path", {
604
+ "fill-rule": "evenodd",
605
+ "clip-rule": "evenodd",
606
+ d: "M78.73 6.11c-.72 0-1.4.3-1.9.84V6.1h-.74v6.62h.73V8.8a1.95 1.95 0 0 1 1.9-1.93c1.03 0 1.9.86 1.9 1.93v3.92h.75V8.8c0-1.49-1.19-2.7-2.64-2.7",
607
+ fill: "var(--logo-text-dark)"
608
+ }),
609
+ /* @__PURE__ */ jsx("path", {
610
+ "fill-rule": "evenodd",
611
+ "clip-rule": "evenodd",
612
+ d: "m85.3 11.97-.07.02q-.11.04-.37.05-.44.02-.44-.67v-4.5h.9V6.1h-.9V3.89h-.78V6.1h-.9v.76h.9v4.53q0 .74.28 1.01.27.3.77.31.37 0 .61-.1l.05-.01z",
613
+ fill: "var(--logo-text-dark)"
614
+ }),
615
+ /* @__PURE__ */ jsx("path", {
616
+ "fill-rule": "evenodd",
617
+ "clip-rule": "evenodd",
618
+ d: "M71.42 6.88c1.11 0 2.07.83 2.3 1.97h-4.65a2.4 2.4 0 0 1 2.34-1.97m1.98 3.94a2.3 2.3 0 0 1-1.99 1.14 2.46 2.46 0 0 1-2.39-2.36h5.14c.2 0 .37-.15.37-.35v-.06c-.13-1.75-1.47-3.08-3.12-3.08a3.24 3.24 0 0 0-3.14 3.32c0 1.83 1.41 3.3 3.14 3.3 1.06 0 2.04-.56 2.61-1.5z",
619
+ fill: "var(--logo-text-dark)"
620
+ }),
621
+ /* @__PURE__ */ jsx("path", {
622
+ "fill-rule": "evenodd",
623
+ "clip-rule": "evenodd",
624
+ d: "M48.2 9.53s-.2-.16-.41-.25c-.22-.09-.52-.2-1.16-.35q-.12-.04-.25-.06-.63-.17-1-.44-.33-.28-.3-.61.01-.39.4-.67.45-.34 1.18-.3c.54.02.95.3 1.39.62l.04.03.55-.53-.26-.2c-.44-.3-.97-.62-1.69-.65q-.95-.04-1.6.38c-.47.32-.77.79-.77 1.28-.01.37.07.72.43 1.08.43.43 1.1.65 1.72.77.53.1 1.02.3 1.26.51.3.28.4.48.4.77q-.02.42-.48.72c-.3.23-.73.35-1.18.33a3.2 3.2 0 0 1-1.82-.78l-.04-.04-.54.51.05.05q1.09.95 2.31 1.02a2.6 2.6 0 0 0 1.64-.46q.77-.54.81-1.32a1.7 1.7 0 0 0-.68-1.41",
625
+ fill: "var(--logo-text-dark)"
626
+ }),
627
+ /* @__PURE__ */ jsx("path", {
628
+ d: "M53.33 27.23a2.75 2.75 0 1 0-5.5-.02 2.77 2.77 0 0 0 2.76 2.74 2.77 2.77 0 0 0 2.74-2.72m-7.96-12.08h2.76v8.42Q49.5 22 51.39 22c2.7 0 4.76 2.24 4.76 5.2 0 3.04-2.04 5.22-4.82 5.22a3.9 3.9 0 0 1-3.2-1.58v1.28h-2.76zm15.19 12.02a2.74 2.74 0 0 0 2.76 2.78 2.8 2.8 0 0 0 2.78-2.74 2.8 2.8 0 0 0-2.78-2.74 2.8 2.8 0 0 0-2.76 2.7m-2.84-.04c0-2.98 2.38-5.14 5.62-5.14s5.58 2.16 5.58 5.2c0 3.16-2.36 5.22-5.64 5.22-3.34 0-5.56-2.18-5.56-5.28m21.1.1a2.76 2.76 0 0 0-2.75-2.76 2.76 2.76 0 0 0-2.74 2.74c0 1.5 1.24 2.74 2.74 2.74a2.8 2.8 0 0 0 2.74-2.72m-.3-3.66v-8.42h2.75v16.96h-2.76v-1.28a3.9 3.9 0 0 1-3.2 1.58c-2.76 0-4.82-2.22-4.82-5.22 0-2.92 2.06-5.2 4.76-5.2q1.92.01 3.26 1.58m5.34 8.54V15.15h2.76v8.44a3.6 3.6 0 0 1 3.06-1.6c1.4 0 2.3.52 2.96 1.34.52.66.68 1.54.68 2.62v6.16h-2.76v-5.38c0-1.74-.5-2.4-1.86-2.4q-2.09 0-2.08 2.76v5.02zm12.01-9.8h2.76v9.8h-2.76zm-.26-4.14c0-.9.74-1.64 1.64-1.64s1.64.74 1.64 1.64-.74 1.64-1.64 1.64-1.64-.74-1.64-1.64",
629
+ fill: "var(--logo-text-dark)"
630
+ })
631
+ ]
632
+ });
633
+ }
634
+ //#endregion
635
+ //#region src/primitives/Logo/marks/psai-logo.tsx
636
+ function PSAILogo(props) {
637
+ return /* @__PURE__ */ jsxs("svg", {
638
+ width: "151",
639
+ height: "38",
640
+ viewBox: "0 0 151 38",
641
+ fill: "none",
642
+ xmlns: "http://www.w3.org/2000/svg",
643
+ ...props,
644
+ style: {
645
+ "--psai-primary-red": "var(--red-500)",
646
+ "--psai-accent-white": "var(--logo-accent)",
647
+ "--psai-text-dark": "var(--foreground)"
648
+ },
649
+ children: [
650
+ /* @__PURE__ */ jsx("path", {
651
+ d: "M18.08 0C8.11 0 0 8.29 0 18.47s8.11 18.47 18.08 18.47 18.08-8.28 18.08-18.47S28.06 0 18.08 0",
652
+ fill: "var(--psai-primary-red)"
653
+ }),
654
+ /* @__PURE__ */ jsx("path", {
655
+ "fill-rule": "evenodd",
656
+ "clip-rule": "evenodd",
657
+ d: "M31.58 24.2c-.27.66-1.02.97-1.67.7a1.3 1.3 0 0 1-.69-1.7 1.27 1.27 0 0 1 1.67-.7c.65.27.96 1.03.69 1.7",
658
+ fill: "var(--psai-accent-white)"
659
+ }),
660
+ /* @__PURE__ */ jsx("path", {
661
+ "fill-rule": "evenodd",
662
+ "clip-rule": "evenodd",
663
+ d: "M23.66 32.26c-.65.28-1.4-.04-1.66-.7-.27-.67.04-1.43.69-1.7.65-.28 1.4.04 1.66.7.27.67-.04 1.43-.69 1.7",
664
+ fill: "var(--psai-accent-white)"
665
+ }),
666
+ /* @__PURE__ */ jsx("path", {
667
+ "fill-rule": "evenodd",
668
+ "clip-rule": "evenodd",
669
+ d: "M12.48 32.26a1.3 1.3 0 0 1-.7-1.7 1.27 1.27 0 0 1 1.67-.71c.65.28.96 1.04.7 1.7-.28.67-1.02.98-1.67.7",
670
+ fill: "var(--psai-accent-white)"
671
+ }),
672
+ /* @__PURE__ */ jsx("path", {
673
+ "fill-rule": "evenodd",
674
+ "clip-rule": "evenodd",
675
+ d: "M4.57 24.17c-.26-.67.05-1.43.7-1.7.65-.28 1.4.04 1.66.7.27.67-.04 1.43-.7 1.7-.64.28-1.39-.04-1.66-.7",
676
+ fill: "var(--psai-accent-white)"
677
+ }),
678
+ /* @__PURE__ */ jsx("path", {
679
+ "fill-rule": "evenodd",
680
+ "clip-rule": "evenodd",
681
+ d: "M4.59 12.74a1.27 1.27 0 0 1 1.66-.7c.65.28.96 1.04.7 1.7-.28.67-1.02.98-1.67.7a1.3 1.3 0 0 1-.7-1.7",
682
+ fill: "var(--psai-accent-white)"
683
+ }),
684
+ /* @__PURE__ */ jsx("path", {
685
+ "fill-rule": "evenodd",
686
+ "clip-rule": "evenodd",
687
+ d: "M12.5 4.67c.65-.27 1.4.04 1.67.7.27.67-.04 1.43-.7 1.7-.64.28-1.39-.03-1.66-.7s.04-1.42.7-1.7",
688
+ fill: "var(--psai-accent-white)"
689
+ }),
690
+ /* @__PURE__ */ jsx("path", {
691
+ "fill-rule": "evenodd",
692
+ "clip-rule": "evenodd",
693
+ d: "M23.69 4.68c.65.28.95 1.04.68 1.7-.27.67-1.01.98-1.66.7a1.3 1.3 0 0 1-.69-1.7 1.27 1.27 0 0 1 1.67-.7",
694
+ fill: "var(--psai-accent-white)"
695
+ }),
696
+ /* @__PURE__ */ jsx("path", {
697
+ "fill-rule": "evenodd",
698
+ "clip-rule": "evenodd",
699
+ d: "M31.59 12.77c.27.67-.04 1.43-.7 1.7-.64.28-1.39-.04-1.66-.7-.27-.67.04-1.43.7-1.7.65-.28 1.39.04 1.66.7",
700
+ fill: "var(--psai-accent-white)"
701
+ }),
702
+ /* @__PURE__ */ jsx("path", {
703
+ "fill-rule": "evenodd",
704
+ "clip-rule": "evenodd",
705
+ d: "M19.42 20.97c-1 1.39-1.7 3.64-.39 4.98.89.91.22 2.42-.98 2.42s-1.87-1.5-.98-2.42c1.31-1.34.6-3.59-.39-4.98a9 9 0 0 0-1.04-1.14c-1.37-1-3.58-1.73-4.89-.39-.88.9-2.36.22-2.36-1 0-1.23 1.48-1.91 2.36-1 1.31 1.34 3.52.62 4.89-.4.23-.17.95-.84 1.1-1.07 1-1.4 1.7-3.64.39-4.98-.89-.91-.22-2.42.98-2.42s1.87 1.5.98 2.42c-1.31 1.34-.6 3.59.39 4.98.17.25.82.97 1.04 1.13 1.37 1.02 3.57 1.74 4.89.4.88-.9 2.36-.22 2.36 1 0 1.23-1.48 1.91-2.36 1-1.31-1.34-3.52-.62-4.89.4-.23.17-.95.84-1.1 1.07",
706
+ fill: "var(--psai-accent-white)"
707
+ }),
708
+ /* @__PURE__ */ jsx("path", {
709
+ "fill-rule": "evenodd",
710
+ "clip-rule": "evenodd",
711
+ d: "M25.04 11.37c.74.76.74 2 0 2.77-.75.76-1.97.76-2.72 0-.74-.77-.74-2 0-2.77a1.9 1.9 0 0 1 2.72 0",
712
+ fill: "var(--psai-accent-white)"
713
+ }),
714
+ /* @__PURE__ */ jsx("path", {
715
+ "fill-rule": "evenodd",
716
+ "clip-rule": "evenodd",
717
+ d: "M25.04 25.57c-.75.77-1.97.77-2.72 0-.74-.76-.74-2 0-2.76a1.9 1.9 0 0 1 2.72 0c.74.76.74 2 0 2.76",
718
+ fill: "var(--psai-accent-white)"
719
+ }),
720
+ /* @__PURE__ */ jsx("path", {
721
+ "fill-rule": "evenodd",
722
+ "clip-rule": "evenodd",
723
+ d: "M11.13 25.57c-.75-.76-.75-2 0-2.76a1.9 1.9 0 0 1 2.7 0c.76.76.76 2 0 2.76-.74.77-1.95.77-2.7 0",
724
+ fill: "var(--psai-accent-white)"
725
+ }),
726
+ /* @__PURE__ */ jsx("path", {
727
+ "fill-rule": "evenodd",
728
+ "clip-rule": "evenodd",
729
+ d: "M11.13 11.37a1.9 1.9 0 0 1 2.7 0c.76.76.76 2 0 2.77-.74.76-1.95.76-2.7 0-.75-.77-.75-2 0-2.77",
730
+ fill: "var(--psai-accent-white)"
731
+ }),
732
+ /* @__PURE__ */ jsx("path", {
733
+ "fill-rule": "evenodd",
734
+ "clip-rule": "evenodd",
735
+ d: "M66.37 5.64a.5.5 0 0 0 .48-.5.5.5 0 0 0-.48-.5.5.5 0 0 0-.5.5c0 .28.23.5.5.5",
736
+ fill: "var(--psai-text-dark)"
737
+ }),
738
+ /* @__PURE__ */ jsx("path", {
739
+ "fill-rule": "evenodd",
740
+ "clip-rule": "evenodd",
741
+ d: "M65.98 13.2h.76V6.58h-.76z",
742
+ fill: "var(--psai-text-dark)"
743
+ }),
744
+ /* @__PURE__ */ jsx("path", {
745
+ "fill-rule": "evenodd",
746
+ "clip-rule": "evenodd",
747
+ d: "M50.82 9.87c0-1.38 1.06-2.5 2.37-2.5 1.3 0 2.37 1.12 2.37 2.5v.1c-.06 1.37-1.1 2.44-2.37 2.44-1.28 0-2.37-1.14-2.37-2.54m2.37 3.32c.92 0 1.77-.41 2.36-1.14v1.15h.77V6.58h-.77v1.14a3 3 0 0 0-2.36-1.14 3.2 3.2 0 0 0-3.14 3.3c0 1.8 1.4 3.31 3.14 3.31",
748
+ fill: "var(--psai-text-dark)"
749
+ }),
750
+ /* @__PURE__ */ jsx("path", {
751
+ "fill-rule": "evenodd",
752
+ "clip-rule": "evenodd",
753
+ d: "M61.45 12.41c-1.28 0-2.32-1.07-2.37-2.43v-.1c0-1.4 1.06-2.52 2.37-2.52 1.3 0 2.36 1.13 2.36 2.51 0 1.39-1.06 2.54-2.36 2.54m3.13-2.54c0-1.81-1.4-3.29-3.13-3.29-.93 0-1.78.41-2.37 1.14V6.58h-.77v9h.77v-3.53c.6.73 1.44 1.14 2.37 1.14 1.72 0 3.13-1.49 3.13-3.32",
754
+ fill: "var(--psai-text-dark)"
755
+ }),
756
+ /* @__PURE__ */ jsx("path", {
757
+ "fill-rule": "evenodd",
758
+ "clip-rule": "evenodd",
759
+ d: "M78.83 6.58c-.73 0-1.41.3-1.9.84v-.84h-.74v6.62h.73V9.28a1.95 1.95 0 0 1 1.9-1.93c1.03 0 1.9.86 1.9 1.93v3.92h.75V9.28c0-1.49-1.19-2.7-2.64-2.7",
760
+ fill: "var(--psai-text-dark)"
761
+ }),
762
+ /* @__PURE__ */ jsx("path", {
763
+ "fill-rule": "evenodd",
764
+ "clip-rule": "evenodd",
765
+ d: "m85.4 12.44-.07.02q-.11.04-.37.05-.45.02-.44-.67v-4.5h.9v-.76h-.9V4.36h-.78v2.22h-.9v.76h.9v4.53q0 .74.28 1.01.27.3.76.31.38 0 .62-.1l.04-.01z",
766
+ fill: "var(--psai-text-dark)"
767
+ }),
768
+ /* @__PURE__ */ jsx("path", {
769
+ "fill-rule": "evenodd",
770
+ "clip-rule": "evenodd",
771
+ d: "M71.51 7.35c1.12 0 2.08.83 2.3 1.97h-4.64a2.4 2.4 0 0 1 2.34-1.97m1.99 3.94a2.3 2.3 0 0 1-1.99 1.14 2.46 2.46 0 0 1-2.39-2.36h5.14c.2 0 .37-.15.37-.35v-.06c-.13-1.75-1.47-3.08-3.12-3.08a3.24 3.24 0 0 0-3.14 3.32c0 1.83 1.4 3.3 3.14 3.3 1.06 0 2.04-.56 2.61-1.5z",
772
+ fill: "var(--psai-text-dark)"
773
+ }),
774
+ /* @__PURE__ */ jsx("path", {
775
+ "fill-rule": "evenodd",
776
+ "clip-rule": "evenodd",
777
+ d: "M48.3 10s-.2-.16-.41-.25c-.22-.09-.52-.2-1.16-.35q-.12-.04-.25-.06a3 3 0 0 1-1-.44q-.34-.28-.3-.61.01-.39.4-.67.45-.34 1.18-.3c.53.02.94.3 1.38.62l.05.03.55-.53-.27-.2c-.43-.3-.97-.62-1.68-.65q-.95-.04-1.61.38c-.47.32-.76.79-.77 1.28 0 .38.07.72.44 1.08.43.43 1.1.65 1.72.77.53.1 1.02.3 1.26.51.3.28.4.48.4.77q-.03.42-.49.72c-.3.23-.73.35-1.17.33q-.9-.05-1.82-.78l-.04-.04-.55.51.06.05q1.08.95 2.31 1.02a2.6 2.6 0 0 0 1.64-.46q.77-.54.8-1.32A1.7 1.7 0 0 0 48.3 10",
778
+ fill: "var(--psai-text-dark)"
779
+ }),
780
+ /* @__PURE__ */ jsx("path", {
781
+ d: "M53.26 27.7a2.76 2.76 0 0 0-2.74-2.76 2.7 2.7 0 0 0-2.74 2.74c0 1.52 1.2 2.74 2.74 2.74a2.8 2.8 0 0 0 2.74-2.72m-.3-3.66v-1.26h2.76v9.8h-2.76V31.3a3.9 3.9 0 0 1-3.2 1.58c-2.76 0-4.82-2.26-4.82-5.22 0-2.92 2.04-5.2 4.76-5.2q1.92.01 3.26 1.58m5.32-1.26h2.76v9.8h-2.76zm-.26-4.14c0-.9.74-1.64 1.64-1.64s1.64.74 1.64 1.64-.74 1.64-1.64 1.64-1.64-.74-1.64-1.64m17.5 9.06a2.75 2.75 0 1 0-5.5-.02 2.77 2.77 0 0 0 2.76 2.74c1.5 0 2.74-1.26 2.74-2.72m-5.2 3.6v6.5h-2.76V22.78h2.76v1.26a4 4 0 0 1 3.2-1.58c2.76 0 4.82 2.28 4.82 5.22 0 2.96-2.08 5.2-4.76 5.2a4.1 4.1 0 0 1-3.26-1.58m10.11 1.28v-9.8h2.76v1.48q1.02-1.8 2.84-1.8.57 0 1.2.24l-.38 2.58a3 3 0 0 0-1.32-.34q-2.34 0-2.34 2.94v4.7zm10.43-4.94a2.74 2.74 0 0 0 2.76 2.78 2.8 2.8 0 0 0 2.78-2.74 2.8 2.8 0 0 0-2.78-2.74 2.8 2.8 0 0 0-2.76 2.7m-2.84-.04c0-2.98 2.38-5.14 5.62-5.14s5.58 2.16 5.58 5.2c0 3.16-2.36 5.22-5.64 5.22-3.34 0-5.56-2.18-5.56-5.28m21.1.1a2.76 2.76 0 0 0-2.75-2.76 2.76 2.76 0 0 0-2.74 2.74c0 1.5 1.24 2.74 2.74 2.74a2.8 2.8 0 0 0 2.74-2.72m-.3-3.66v-8.42h2.75v16.96h-2.76V31.3a3.9 3.9 0 0 1-3.2 1.58c-2.76 0-4.82-2.22-4.82-5.22 0-2.92 2.06-5.2 4.76-5.2q1.92.01 3.26 1.58m5.34-1.26h2.76v5.56q0 2.22 1.98 2.22 2 0 2-2.22v-5.56h2.74v6.02c0 2.62-1.7 4.08-4.74 4.08s-4.74-1.46-4.74-4.08zm19.43.28v2.7a3.6 3.6 0 0 0-2.24-.82 2.7 2.7 0 0 0-2.8 2.74c0 1.6 1.2 2.74 2.8 2.74q1.2 0 2.24-.82v2.7q-1.26.57-2.52.58a5.22 5.22 0 1 1 .04-10.42q1.35 0 2.48.6m2.1 2.08h-1.08v-2.36h1.08v-3.34h2.76v3.34h1.92v2.36h-1.92v2.92c0 1.52.18 2.4 1.2 2.4q.28 0 .5-.04v2.4c-.3.04-.86.06-1.16.06-2.14 0-3.3-1.58-3.3-3.84zm13.16-1.68-1.36 1.6a2.7 2.7 0 0 0-1.62-.64c-.6 0-1.06.36-1.06.82 0 .48.26.64 1.56 1.1 2.28.8 2.98 1.48 2.98 3.04 0 2.06-1.7 3.52-4.1 3.52a4.8 4.8 0 0 1-3.72-1.62l1.42-1.68q1.14 1.15 2.32 1.16c.7 0 1.24-.46 1.24-1.08 0-.54-.22-.78-1.5-1.24-2.38-.84-2.86-1.48-2.86-2.9 0-1.9 1.54-3.12 3.5-3.12q1.8 0 3.2 1.04",
782
+ fill: "var(--psai-text-dark)"
783
+ })
784
+ ]
785
+ });
786
+ }
787
+ //#endregion
788
+ //#region src/primitives/Logo/marks/slingshot-icon.tsx
789
+ function SlingshotIcon(props) {
790
+ return /* @__PURE__ */ jsxs("svg", {
791
+ width: "64",
792
+ height: "64",
793
+ viewBox: "0 0 64 64",
794
+ fill: "none",
795
+ xmlns: "http://www.w3.org/2000/svg",
796
+ ...props,
797
+ style: { fill: "var(--red-500)" },
798
+ children: [
799
+ /* @__PURE__ */ jsx("path", { d: "M32 0C14.35 0 0 14.35 0 32s14.35 32 32 32 32-14.35 32-32S49.64 0 32 0" }),
800
+ /* @__PURE__ */ jsx("path", {
801
+ "fill-rule": "evenodd",
802
+ "clip-rule": "evenodd",
803
+ d: "M55.88 41.92a2.25 2.25 0 1 1-4.15-1.72 2.25 2.25 0 0 1 4.15 1.72",
804
+ fill: "white"
805
+ }),
806
+ /* @__PURE__ */ jsx("path", {
807
+ "fill-rule": "evenodd",
808
+ "clip-rule": "evenodd",
809
+ d: "M41.87 55.9a2.26 2.26 0 1 1-1.72-4.18 2.26 2.26 0 0 1 1.72 4.18",
810
+ fill: "white"
811
+ }),
812
+ /* @__PURE__ */ jsx("path", {
813
+ "fill-rule": "evenodd",
814
+ "clip-rule": "evenodd",
815
+ d: "M22.08 55.88a2.26 2.26 0 1 1 1.74-4.16 2.26 2.26 0 0 1-1.74 4.16",
816
+ fill: "white"
817
+ }),
818
+ /* @__PURE__ */ jsx("path", {
819
+ "fill-rule": "evenodd",
820
+ "clip-rule": "evenodd",
821
+ d: "M8.1 41.87",
822
+ fill: "white"
823
+ }),
824
+ /* @__PURE__ */ jsx("path", {
825
+ "fill-rule": "evenodd",
826
+ "clip-rule": "evenodd",
827
+ d: "M8.12 22.08a2.25 2.25 0 1 1 1.22 2.94 2.26 2.26 0 0 1-1.22-2.94",
828
+ fill: "white"
829
+ }),
830
+ /* @__PURE__ */ jsx("path", {
831
+ "fill-rule": "evenodd",
832
+ "clip-rule": "evenodd",
833
+ d: "M22.13 8.1a2.26 2.26 0 1 1-1.22 2.94 2.26 2.26 0 0 1 1.22-2.95",
834
+ fill: "white"
835
+ }),
836
+ /* @__PURE__ */ jsx("path", {
837
+ "fill-rule": "evenodd",
838
+ "clip-rule": "evenodd",
839
+ d: "M41.92 8.12",
840
+ fill: "white"
841
+ }),
842
+ /* @__PURE__ */ jsx("path", {
843
+ "fill-rule": "evenodd",
844
+ "clip-rule": "evenodd",
845
+ d: "M55.9 22.13a2.26 2.26 0 1 1-2.95-1.22 2.26 2.26 0 0 1 2.95 1.22",
846
+ fill: "white"
847
+ }),
848
+ /* @__PURE__ */ jsx("path", {
849
+ "fill-rule": "evenodd",
850
+ "clip-rule": "evenodd",
851
+ d: "M34.36 36.32c-1.75 2.42-3 6.33-.68 8.64 1.57 1.58.38 4.19-1.74 4.19s-3.3-2.61-1.73-4.19c2.32-2.32 1.07-6.22-.69-8.64-.3-.42-1.46-1.68-1.85-1.96-2.42-1.75-6.32-3-8.64-.68-1.57 1.57-4.18.39-4.18-1.73s2.61-3.31 4.18-1.74c2.32 2.32 6.23 1.07 8.64-.68.42-.3 1.68-1.47 1.96-1.86 1.76-2.41 3-6.31.69-8.64-1.58-1.57-.4-4.18 1.73-4.18s3.3 2.61 1.73 4.18c-2.31 2.32-1.07 6.23.69 8.64.3.42 1.46 1.68 1.85 1.96 2.42 1.76 6.32 3 8.64.69 1.57-1.58 4.18-.39 4.18 1.73s-2.6 3.31-4.18 1.74c-2.32-2.32-6.22-1.07-8.64.68-.42.3-1.68 1.47-1.96 1.85",
852
+ fill: "white"
853
+ }),
854
+ /* @__PURE__ */ jsx("path", {
855
+ "fill-rule": "evenodd",
856
+ "clip-rule": "evenodd",
857
+ d: "M44.3 19.7a3.39 3.39 0 1 1-4.78 4.8 3.39 3.39 0 0 1 4.78-4.8",
858
+ fill: "white"
859
+ }),
860
+ /* @__PURE__ */ jsx("path", {
861
+ "fill-rule": "evenodd",
862
+ "clip-rule": "evenodd",
863
+ d: "M44.3 44.3a3.4 3.4 0 1 1-4.79-4.79 3.4 3.4 0 0 1 4.8 4.8",
864
+ fill: "white"
865
+ }),
866
+ /* @__PURE__ */ jsx("path", {
867
+ "fill-rule": "evenodd",
868
+ "clip-rule": "evenodd",
869
+ d: "M19.7 44.3a3.39 3.39 0 1 1 4.78-4.79 3.39 3.39 0 0 1-4.79 4.8",
870
+ fill: "white"
871
+ }),
872
+ /* @__PURE__ */ jsx("path", {
873
+ "fill-rule": "evenodd",
874
+ "clip-rule": "evenodd",
875
+ d: "M19.7 19.7a3.39 3.39 0 1 1 4.79 4.78 3.39 3.39 0 0 1-4.8-4.78",
876
+ fill: "white"
877
+ })
878
+ ]
879
+ });
880
+ }
881
+ //#endregion
882
+ //#region src/primitives/Logo/marks/slingshot-logo.tsx
883
+ function SlingshotLogo(props) {
884
+ return /* @__PURE__ */ jsxs("svg", {
885
+ width: "133",
886
+ height: "36",
887
+ viewBox: "0 0 133 36",
888
+ fill: "none",
889
+ xmlns: "http://www.w3.org/2000/svg",
890
+ ...props,
891
+ style: {
892
+ "--slingshot-primary-red": "var(--red-500)",
893
+ "--slingshot-accent-white": "var(--logo-accent)",
894
+ "--slingshot-text-dark": "var(--foreground)"
895
+ },
896
+ children: [
897
+ /* @__PURE__ */ jsx("path", {
898
+ d: "M18 0C8.07 0 0 8.07 0 18s8.07 18 18 18 18-8.07 18-18S27.92 0 18 0",
899
+ fill: "var(--slingshot-primary-red)"
900
+ }),
901
+ /* @__PURE__ */ jsx("path", {
902
+ "fill-rule": "evenodd",
903
+ "clip-rule": "evenodd",
904
+ d: "M31.43 23.58a1.27 1.27 0 1 1-2.33-.97 1.27 1.27 0 0 1 2.33.97",
905
+ fill: "var(--slingshot-accent-white)"
906
+ }),
907
+ /* @__PURE__ */ jsx("path", {
908
+ "fill-rule": "evenodd",
909
+ "clip-rule": "evenodd",
910
+ d: "M23.55 31.44a1.27 1.27 0 1 1-.96-2.35 1.27 1.27 0 0 1 .96 2.35",
911
+ fill: "var(--slingshot-accent-white)"
912
+ }),
913
+ /* @__PURE__ */ jsx("path", {
914
+ "fill-rule": "evenodd",
915
+ "clip-rule": "evenodd",
916
+ d: "M12.42 31.43a1.27 1.27 0 1 1 .98-2.34 1.27 1.27 0 0 1-.98 2.34",
917
+ fill: "var(--slingshot-accent-white)"
918
+ }),
919
+ /* @__PURE__ */ jsx("path", {
920
+ "fill-rule": "evenodd",
921
+ "clip-rule": "evenodd",
922
+ d: "M4.55 23.55",
923
+ fill: "var(--slingshot-accent-white)"
924
+ }),
925
+ /* @__PURE__ */ jsx("path", {
926
+ "fill-rule": "evenodd",
927
+ "clip-rule": "evenodd",
928
+ d: "M4.57 12.42a1.27 1.27 0 1 1 .69 1.66 1.27 1.27 0 0 1-.7-1.66",
929
+ fill: "var(--slingshot-accent-white)"
930
+ }),
931
+ /* @__PURE__ */ jsx("path", {
932
+ "fill-rule": "evenodd",
933
+ "clip-rule": "evenodd",
934
+ d: "M12.45 4.55a1.27 1.27 0 1 1-.7 1.66c-.26-.65.05-1.39.7-1.66",
935
+ fill: "var(--slingshot-accent-white)"
936
+ }),
937
+ /* @__PURE__ */ jsx("path", {
938
+ "fill-rule": "evenodd",
939
+ "clip-rule": "evenodd",
940
+ d: "M23.58 4.57",
941
+ fill: "var(--slingshot-accent-white)"
942
+ }),
943
+ /* @__PURE__ */ jsx("path", {
944
+ "fill-rule": "evenodd",
945
+ "clip-rule": "evenodd",
946
+ d: "M31.45 12.45a1.27 1.27 0 1 1-1.66-.7c.65-.26 1.39.05 1.66.7",
947
+ fill: "var(--slingshot-accent-white)"
948
+ }),
949
+ /* @__PURE__ */ jsx("path", {
950
+ "fill-rule": "evenodd",
951
+ "clip-rule": "evenodd",
952
+ d: "M19.33 20.43c-.99 1.36-1.7 3.56-.39 4.86.89.89.22 2.35-.97 2.35-1.2 0-1.86-1.46-.98-2.35 1.3-1.3.6-3.5-.38-4.86a9 9 0 0 0-1.04-1.1c-1.37-.99-3.56-1.69-4.86-.39-.89.89-2.36.22-2.36-.97 0-1.2 1.47-1.86 2.36-.98 1.3 1.3 3.5.6 4.86-.38.23-.17.94-.82 1.1-1.04.98-1.36 1.69-3.56.38-4.86-.88-.89-.22-2.36.98-2.36s1.86 1.47.97 2.36c-1.3 1.3-.6 3.5.39 4.86.17.23.82.94 1.04 1.1 1.36.99 3.55 1.69 4.86.38.89-.88 2.35-.21 2.35.98 0 1.2-1.46 1.86-2.35.98-1.3-1.3-3.5-.6-4.86.38-.24.17-.94.82-1.1 1.04",
953
+ fill: "var(--slingshot-accent-white)"
954
+ }),
955
+ /* @__PURE__ */ jsx("path", {
956
+ "fill-rule": "evenodd",
957
+ "clip-rule": "evenodd",
958
+ d: "M24.92 11.08a1.9 1.9 0 1 1-2.7 2.7 1.9 1.9 0 0 1 2.7-2.7",
959
+ fill: "var(--slingshot-accent-white)"
960
+ }),
961
+ /* @__PURE__ */ jsx("path", {
962
+ "fill-rule": "evenodd",
963
+ "clip-rule": "evenodd",
964
+ d: "M24.92 24.92a1.9 1.9 0 1 1-2.7-2.7 1.9 1.9 0 0 1 2.7 2.7",
965
+ fill: "var(--slingshot-accent-white)"
966
+ }),
967
+ /* @__PURE__ */ jsx("path", {
968
+ "fill-rule": "evenodd",
969
+ "clip-rule": "evenodd",
970
+ d: "M11.08 24.92a1.9 1.9 0 1 1 2.69-2.7 1.9 1.9 0 0 1-2.7 2.7",
971
+ fill: "var(--slingshot-accent-white)"
972
+ }),
973
+ /* @__PURE__ */ jsx("path", {
974
+ "fill-rule": "evenodd",
975
+ "clip-rule": "evenodd",
976
+ d: "M11.08 11.08a1.9 1.9 0 1 1 2.7 2.69 1.9 1.9 0 0 1-2.7-2.69",
977
+ fill: "var(--slingshot-accent-white)"
978
+ }),
979
+ /* @__PURE__ */ jsx("path", {
980
+ "fill-rule": "evenodd",
981
+ "clip-rule": "evenodd",
982
+ d: "M66.2 2.12a.5.5 0 0 0 .49-.5.5.5 0 0 0-.49-.5.5.5 0 0 0-.49.5c0 .28.22.5.5.5",
983
+ fill: "var(--slingshot-text-dark)"
984
+ }),
985
+ /* @__PURE__ */ jsx("path", {
986
+ "fill-rule": "evenodd",
987
+ "clip-rule": "evenodd",
988
+ d: "M65.81 9.68h.77V3.06h-.77z",
989
+ fill: "var(--slingshot-text-dark)"
990
+ }),
991
+ /* @__PURE__ */ jsx("path", {
992
+ "fill-rule": "evenodd",
993
+ "clip-rule": "evenodd",
994
+ d: "M50.65 6.35c0-1.38 1.06-2.51 2.37-2.51 1.3 0 2.37 1.13 2.37 2.51v.1c-.05 1.37-1.1 2.44-2.37 2.44-1.28 0-2.37-1.14-2.37-2.54m2.37 3.32c.92 0 1.77-.42 2.37-1.15v1.16h.76V3.06h-.76V4.2a3 3 0 0 0-2.37-1.14 3.2 3.2 0 0 0-3.13 3.3c0 1.8 1.4 3.31 3.13 3.31",
995
+ fill: "var(--slingshot-text-dark)"
996
+ }),
997
+ /* @__PURE__ */ jsx("path", {
998
+ "fill-rule": "evenodd",
999
+ "clip-rule": "evenodd",
1000
+ d: "M61.28 8.9c-1.28 0-2.32-1.08-2.37-2.44v-.1c0-1.4 1.06-2.52 2.37-2.52 1.3 0 2.37 1.13 2.37 2.51 0 1.39-1.06 2.54-2.37 2.54m3.13-2.55c0-1.81-1.4-3.29-3.13-3.29-.92 0-1.78.41-2.37 1.14V3.06h-.76v9h.76V8.52c.6.74 1.45 1.15 2.37 1.15 1.73 0 3.13-1.49 3.13-3.32",
1001
+ fill: "var(--slingshot-text-dark)"
1002
+ }),
1003
+ /* @__PURE__ */ jsx("path", {
1004
+ "fill-rule": "evenodd",
1005
+ "clip-rule": "evenodd",
1006
+ d: "M78.66 3.06c-.72 0-1.4.3-1.9.83v-.83h-.74v6.62h.74V5.76a1.95 1.95 0 0 1 1.9-1.93c1.03 0 1.9.86 1.9 1.93v3.92h.74V5.76c0-1.49-1.18-2.7-2.64-2.7",
1007
+ fill: "var(--slingshot-text-dark)"
1008
+ }),
1009
+ /* @__PURE__ */ jsx("path", {
1010
+ "fill-rule": "evenodd",
1011
+ "clip-rule": "evenodd",
1012
+ d: "m85.24 8.92-.08.02q-.11.04-.37.05-.44.02-.43-.67v-4.5h.9v-.76h-.9V.84h-.78v2.22h-.9v.76h.9v4.52q0 .74.27 1.02.27.3.77.31.38 0 .62-.1l.04-.01z",
1013
+ fill: "var(--slingshot-text-dark)"
1014
+ }),
1015
+ /* @__PURE__ */ jsx("path", {
1016
+ "fill-rule": "evenodd",
1017
+ "clip-rule": "evenodd",
1018
+ d: "M71.35 3.83c1.12 0 2.07.82 2.3 1.97h-4.64a2.4 2.4 0 0 1 2.34-1.97m1.98 3.94a2.3 2.3 0 0 1-1.98 1.14 2.46 2.46 0 0 1-2.4-2.36h5.14c.21 0 .38-.15.38-.35v-.06c-.14-1.75-1.48-3.08-3.12-3.08a3.24 3.24 0 0 0-3.15 3.32c0 1.83 1.41 3.3 3.15 3.3 1.06 0 2.03-.56 2.6-1.5z",
1019
+ fill: "var(--slingshot-text-dark)"
1020
+ }),
1021
+ /* @__PURE__ */ jsx("path", {
1022
+ "fill-rule": "evenodd",
1023
+ "clip-rule": "evenodd",
1024
+ d: "M48.13 6.48s-.2-.16-.4-.25c-.22-.09-.53-.2-1.16-.36q-.13-.02-.25-.06-.64-.16-1-.43-.34-.28-.31-.61.01-.39.4-.67.46-.34 1.18-.3c.54.02.95.3 1.39.62l.04.03.55-.53-.26-.2c-.44-.3-.97-.62-1.69-.65q-.94-.04-1.6.38c-.47.32-.77.79-.77 1.28 0 .37.07.72.43 1.08.43.42 1.1.65 1.72.77.53.1 1.02.3 1.27.51.3.28.4.48.4.76q-.04.43-.5.73c-.3.23-.72.35-1.17.33a3 3 0 0 1-1.81-.78l-.05-.04-.54.51.05.05q1.09.95 2.32 1.02A2.6 2.6 0 0 0 48 9.21q.76-.54.8-1.32a1.7 1.7 0 0 0-.68-1.41",
1025
+ fill: "var(--slingshot-text-dark)"
1026
+ }),
1027
+ /* @__PURE__ */ jsx("path", {
1028
+ d: "M127.12 20.6h-1.22v-2.7h1.22v-3.84h3.1v3.83h2.15v2.71h-2.16v3.35c0 1.74.2 2.75 1.35 2.75l.56-.04v2.75c-.33.04-.96.07-1.3.07-2.4 0-3.7-1.82-3.7-4.4z",
1029
+ fill: "var(--slingshot-text-dark)"
1030
+ }),
1031
+ /* @__PURE__ */ jsx("path", {
1032
+ d: "M116.04 23.47a3.1 3.1 0 0 0 3.1 3.19 3.14 3.14 0 0 0 0-6.28c-1.71 0-3.1 1.44-3.1 3.1m-2.85-.04c0-3.02 2.33-5.9 5.97-5.9a5.84 5.84 0 0 1 5.92 5.96 5.8 5.8 0 0 1-5.99 5.99c-3.68 0-5.9-3.04-5.9-6.05",
1033
+ fill: "var(--slingshot-text-dark)"
1034
+ }),
1035
+ /* @__PURE__ */ jsx("path", {
1036
+ d: "m98.89 18.68-1.53 1.83a3 3 0 0 0-1.82-.73c-.67 0-1.19.41-1.19.94s.3.73 1.75 1.26c2.56.92 3.35 1.7 3.35 3.49 0 2.36-1.9 4.03-4.6 4.03a5.4 5.4 0 0 1-4.18-1.86l1.6-1.92q1.28 1.32 2.6 1.33c.78 0 1.4-.53 1.4-1.24 0-.62-.26-.9-1.7-1.42-2.66-.97-3.2-1.7-3.2-3.33 0-2.18 1.73-3.57 3.93-3.57q2-.01 3.59 1.19",
1037
+ fill: "var(--slingshot-text-dark)"
1038
+ }),
1039
+ /* @__PURE__ */ jsx("path", {
1040
+ d: "M65.46 29.14V17.9h3.1v1.4a4.2 4.2 0 0 1 3.43-1.77c2.22 0 4.09 1.3 4.09 4.34v7.27h-3.1v-6.17c0-1.88-.52-2.76-2.09-2.76s-2.33 1-2.33 3.1v5.83z",
1041
+ fill: "var(--slingshot-text-dark)"
1042
+ }),
1043
+ /* @__PURE__ */ jsx("path", {
1044
+ d: "M60.17 17.9h3.1v11.23h-3.1zm-.29-3.45c0-1.03.83-1.88 1.84-1.88s1.84.85 1.84 1.88-.83 1.88-1.84 1.88a1.87 1.87 0 0 1-1.84-1.88",
1045
+ fill: "var(--slingshot-text-dark)"
1046
+ }),
1047
+ /* @__PURE__ */ jsx("path", {
1048
+ d: "m52.22 18.68-1.53 1.83a3 3 0 0 0-1.82-.73c-.67 0-1.19.41-1.19.94s.3.73 1.75 1.26c2.56.92 3.35 1.7 3.35 3.49 0 2.36-1.9 4.03-4.6 4.03A5.4 5.4 0 0 1 44 27.64l1.6-1.92q1.28 1.32 2.6 1.33c.78 0 1.39-.53 1.39-1.24 0-.62-.25-.9-1.68-1.42-2.68-.97-3.21-1.7-3.21-3.33 0-2.18 1.72-3.57 3.92-3.57q2.02-.01 3.6 1.19",
1049
+ fill: "var(--slingshot-text-dark)"
1050
+ }),
1051
+ /* @__PURE__ */ jsx("path", {
1052
+ d: "M57.17 23.6c0 1.75.3 2.76 1.44 2.76q.2 0 .43-.05v2.75c-.34.05-.74.07-1.04.07-2.74 0-3.92-1.95-3.92-4.54V12.7h3.1z",
1053
+ fill: "var(--slingshot-text-dark)"
1054
+ }),
1055
+ /* @__PURE__ */ jsx("path", {
1056
+ d: "M104.03 19.36a4 4 0 0 1 3.43-1.83c1.58 0 2.59.6 3.33 1.53.58.76.76 1.77.76 3v7.07h-3.1v-6.17c0-2-.56-2.75-2.09-2.75q-2.34 0-2.33 3.17v5.75h-3.1V12.57h3.1z",
1057
+ fill: "var(--slingshot-text-dark)"
1058
+ }),
1059
+ /* @__PURE__ */ jsx("path", {
1060
+ "fill-rule": "evenodd",
1061
+ "clip-rule": "evenodd",
1062
+ d: "m89.41 28-.03 1.78q-.08 1.21-.3 1.85c-.7 2.09-2.88 3.53-5.55 3.53-3.19 0-5.61-2.04-5.86-4.7h3.32q.49 2.03 2.6 2.02c1.63 0 2.57-.86 2.72-2.63v-1.77c-4.29 2.94-8.66-.68-8.66-4.59a5.5 5.5 0 0 1 4.98-5.64c1.46 0 2.74.25 3.68 1.47v-1.47h3.1zm-6.04-7.67a3.14 3.14 0 0 0-3.07 3.12 3.1 3.1 0 0 0 3.07 3.16 3.15 3.15 0 0 0 0-6.28",
1063
+ fill: "var(--slingshot-text-dark)"
1064
+ })
1065
+ ]
1066
+ });
1067
+ }
1068
+ //#endregion
1069
+ //#region src/primitives/Logo/marks/sustain-icon.tsx
1070
+ function SustainIcon(props) {
1071
+ return /* @__PURE__ */ jsxs("svg", {
1072
+ width: "65",
1073
+ height: "65",
1074
+ viewBox: "0 0 65 65",
1075
+ fill: "none",
1076
+ xmlns: "http://www.w3.org/2000/svg",
1077
+ ...props,
1078
+ style: { fill: "var(--red-500)" },
1079
+ children: [/* @__PURE__ */ jsx("path", {
1080
+ d: "M63.3 32.5c0 17.32-14.06 32.05-31.4 32.05C14.55 64.55.5 49.82.5 32.5A31.4 31.4 0 0 1 31.9 1.13 31.4 31.4 0 0 1 63.3 32.5",
1081
+ fill: "white"
1082
+ }), /* @__PURE__ */ jsx("path", { d: "M58.8 33.3q2.7 0 5.2.53-.15 3.15-.86 6.1-2.09-.46-4.36-.48v.18a2.05 2.05 0 0 0-3.85.95 2.05 2.05 0 0 0 3.98.66q1.93 0 3.75.43a33 33 0 0 1-2.01 5.09q-.91-.15-1.87-.15a12.65 12.65 0 0 0-12.63 12.62v1.94a32 32 0 0 1-4.94 1.94q-.3-1.32-.37-2.72c.6-.36 1-1.01 1-1.77 0-1.13-.9-2.04-2.04-2.04-1.13 0-2.04.91-2.04 2.04 0 1.14.55 1.62 1.31 1.92q.12 1.54.43 3.05-2.95.71-6.1.85a25.96 25.96 0 0 1 25.4-31.12zm-53.66 0a25.96 25.96 0 0 1 25.41 31.12q-3.15-.14-6.1-.86.33-1.45.43-2.97a2.04 2.04 0 0 0 1.44-1.97c0-1.13-.91-2.04-2.05-2.04s-2.04.91-2.04 2.04c0 .7.36 1.31.89 1.7q-.09 1.42-.38 2.76a31 31 0 0 1-5.1-2.04q.12-.9.13-1.81c0-6.96-5.67-12.62-12.63-12.62H3.3a32 32 0 0 1-1.95-4.97q1.78-.39 3.63-.4a2.05 2.05 0 1 0 1.94-2.7c-1.14 0-1.41.4-1.77 1.01v-.1q-2.2.02-4.28.48-.71-2.96-.86-6.07a27 27 0 0 1 5.12-.5zm41.13 27.8c-.07.48-.1 3.35-.11.07zM5.14 48.38c5.98 0 10.87 4.86 10.87 10.86s0 .6-.05.9a32 32 0 0 1-11.7-11.71c.3 0 .58-.05.88-.05m53.67 0q.48-.01.96.05a32 32 0 0 1-11.78 11.77q-.04-.48-.05-.96c0-5.97 4.87-10.86 10.87-10.86M31.99 11.98a27.8 27.8 0 0 0 21 20.16 27.8 27.8 0 0 0-21 20.16 27.8 27.8 0 0 0-21-20.16 27.8 27.8 0 0 0 21-20.16M3.34 46.71c-.44-.06-3.5-.1-.05-.1zm28.67-23.06a8.8 8.8 0 0 1-8.77 8.77 8.8 8.8 0 0 1 8.77 8.8 8.8 8.8 0 0 1 8.78-8.8A8.8 8.8 0 0 1 32 23.65M30.68.45q.41 2.23.4 4.6A26.07 26.07 0 0 1 5.04 31.01c-4.87 0-4.52-.18-4.99-.53q.2-3.11.96-6.05 1.96.42 4.03.43c.3.73 1.04 1.23 1.9 1.23 1.13 0 2.03-.9 2.03-2.04 0-1.13-.9-2.04-2.04-2.04-1.13 0-1.43.43-1.79 1.06a17 17 0 0 1-3.63-.38 30 30 0 0 1 2.15-5.09q.75.09 1.5.1c6.96 0 12.64-5.67 12.64-12.62V3.76q2.42-1.2 5.06-2 .25 1.32.3 2.71c-.55.38-.9.99-.9 1.7 0 1.13.9 2.03 2.04 2.03a2.04 2.04 0 0 0 .63-3.98q-.06-1.49-.35-2.92c1.96-.45 4-.76 6.07-.83zm2.62 0q3.13.12 6.07.82-.29 1.47-.35 3a2 2 0 0 0-1.29 1.9c0 .85.91 2.03 2.05 2.03a2.03 2.03 0 0 0 1-3.8q.05-1.35.3-2.67 2.7.8 5.15 2.01-.08.64-.08 1.31c0 6.96 5.68 12.63 12.63 12.63h1.64a33 33 0 0 1 2.1 4.99q-1.82.37-3.71.37A2.1 2.1 0 0 0 56.99 22c-1.13 0-2.04.9-2.04 2.04a2.06 2.06 0 0 0 3.93.8q2.13 0 4.14-.45.76 2.95.96 6.07-2.51.51-5.17.53A25.96 25.96 0 0 1 33.27.44zm27.08 17.14c.41.04 3.87.08.04.08zm-44.4-12.5.03-.03c0 5.97-4.87 10.86-10.87 10.86H4.6a32.5 32.5 0 0 1 11.4-11.2zm31.99-.44a32 32 0 0 1 11.47 11.22h-.63A10.9 10.9 0 0 1 47.94 5v-.37z" })]
1083
+ });
1084
+ }
1085
+ //#endregion
1086
+ //#region src/primitives/Logo/marks/sustain-logo.tsx
1087
+ function SustainLogo(props) {
1088
+ return /* @__PURE__ */ jsxs("svg", {
1089
+ width: "113",
1090
+ height: "37",
1091
+ viewBox: "0 0 113 37",
1092
+ fill: "none",
1093
+ xmlns: "http://www.w3.org/2000/svg",
1094
+ ...props,
1095
+ style: {
1096
+ "--sustain-circle-bg": "var(--background)",
1097
+ "--sustain-primary-red": "var(--red-500)",
1098
+ "--sustain-accent-white": "var(--foreground)",
1099
+ "--sustain-text-dark": "var(--foreground)"
1100
+ },
1101
+ children: [
1102
+ /* @__PURE__ */ jsx("path", {
1103
+ d: "M35.6 18.28c0 9.74-7.9 18.03-17.66 18.03S.28 28.02.28 18.28 8.18.64 17.94.64s17.67 7.9 17.67 17.64",
1104
+ fill: "var(--sustain-circle-bg)"
1105
+ }),
1106
+ /* @__PURE__ */ jsx("path", {
1107
+ d: "M33.08 18.73q1.5 0 2.92.3a18 18 0 0 1-.48 3.43q-1.19-.26-2.45-.27v.1a1.15 1.15 0 0 0-2.17.54c0 .64.5 1.15 1.14 1.15.51 0 .94-.33 1.1-.78q1.09 0 2.1.24-.44 1.48-1.13 2.86-.52-.09-1.04-.08a7.1 7.1 0 0 0-7.1 7.1c0 3.9.02.7.08 1.04a18 18 0 0 1-2.87 1.14q-.16-.74-.21-1.53c.34-.2.57-.57.57-1 0-.63-.51-1.14-1.15-1.14s-1.15.5-1.15 1.15c0 .63.31.9.74 1.07q.06.87.24 1.72-1.66.4-3.43.48-.3-1.43-.3-2.92a14.6 14.6 0 0 1 14.59-14.58z",
1108
+ fill: "var(--sustain-primary-red)"
1109
+ }),
1110
+ /* @__PURE__ */ jsx("path", {
1111
+ d: "M2.9 18.73a14.6 14.6 0 0 1 14.28 17.5 18 18 0 0 1-3.43-.48q.19-.8.24-1.67c.47-.14.81-.58.81-1.1 0-.64-.5-1.15-1.15-1.15-.63 0-1.14.5-1.14 1.15 0 .4.2.73.5.95q-.05.79-.22 1.55-1.49-.45-2.86-1.14.07-.51.07-1.02c0-3.92-3.2-7.1-7.1-7.1-3.92 0-.69.02-1.01.07Q1.2 24.92.75 23.42a10 10 0 0 1 2.04-.22 1.15 1.15 0 1 0 1.1-1.52c-.64 0-.8.23-1 .57v-.06q-1.24 0-2.4.27A18 18 0 0 1 0 19.04q1.41-.27 2.88-.28z",
1112
+ fill: "var(--sustain-primary-red)"
1113
+ }),
1114
+ /* @__PURE__ */ jsx("path", {
1115
+ d: "M33.08 27.2q.26-.01.54.04A18 18 0 0 1 27 33.85q-.03-.27-.03-.53c0-3.36 2.73-6.11 6.1-6.11",
1116
+ fill: "var(--sustain-primary-red)"
1117
+ }),
1118
+ /* @__PURE__ */ jsx("path", {
1119
+ d: "M2.9 27.2A6.1 6.1 0 0 1 9 33.33c0 3.37 0 .34-.02.5a18 18 0 0 1-6.58-6.58q.24-.02.5-.03",
1120
+ fill: "var(--sustain-primary-red)"
1121
+ }),
1122
+ /* @__PURE__ */ jsx("path", {
1123
+ "fill-rule": "evenodd",
1124
+ "clip-rule": "evenodd",
1125
+ d: "M18 6.74a15.7 15.7 0 0 0 11.8 11.34A15.6 15.6 0 0 0 18 29.42 15.6 15.6 0 0 0 6.17 18.08 15.6 15.6 0 0 0 18 6.74m0 6.56a4.94 4.94 0 0 1-4.93 4.94 4.94 4.94 0 0 1 4.94 4.94 4.96 4.96 0 0 1 4.93-4.94 4.94 4.94 0 0 1-4.93-4.94",
1126
+ fill: "var(--sustain-primary-red)"
1127
+ }),
1128
+ /* @__PURE__ */ jsx("path", {
1129
+ d: "M18.73.25q1.76.07 3.42.47a11 11 0 0 0-.2 1.68c-.43.17-.72.59-.72 1.07s.5 1.15 1.14 1.15a1.14 1.14 0 0 0 .57-2.14q.02-.77.17-1.5 1.5.44 2.9 1.13-.05.36-.05.73c0 3.92 3.2 7.1 7.1 7.1 3.92 0 .6-.02.9-.05q.72 1.36 1.2 2.86-1.02.21-2.08.21c-.2-.35-.58-.6-1.02-.6-.64 0-1.15.52-1.15 1.16s.51 1.14 1.15 1.14c.48 0 .88-.28 1.06-.69q1.2 0 2.33-.26.42 1.66.54 3.42-1.42.28-2.91.3A14.6 14.6 0 0 1 18.72.25z",
1130
+ fill: "var(--sustain-primary-red)"
1131
+ }),
1132
+ /* @__PURE__ */ jsx("path", {
1133
+ d: "M17.26.25q.22 1.25.22 2.6c0 8.03-6.6 14.6-14.64 14.6-2.74 0-2.55-.11-2.81-.3q.1-1.77.54-3.4 1.1.23 2.27.23c.17.41.58.7 1.06.7.64 0 1.15-.51 1.15-1.15s-.51-1.15-1.15-1.15-.8.24-1 .6q-1.05 0-2.05-.21.47-1.5 1.2-2.87.43.05.86.06c3.91 0 7.1-3.19 7.1-7.1s0-.48-.04-.72q1.38-.69 2.89-1.15.14.74.17 1.53a1.14 1.14 0 0 0 .64 2.1 1.15 1.15 0 0 0 .35-2.24q-.03-.85-.2-1.65a18 18 0 0 1 3.42-.47z",
1134
+ fill: "var(--sustain-primary-red)"
1135
+ }),
1136
+ /* @__PURE__ */ jsx("path", {
1137
+ d: "M9 2.84C9 6.2 6.27 8.95 2.9 8.95h-.32A18 18 0 0 1 9 2.65v.2z",
1138
+ fill: "var(--sustain-primary-red)"
1139
+ }),
1140
+ /* @__PURE__ */ jsx("path", {
1141
+ d: "M26.98 2.62a18 18 0 0 1 6.45 6.3h-.35a6.1 6.1 0 0 1-6.11-6.1V2.6z",
1142
+ fill: "var(--sustain-primary-red)"
1143
+ }),
1144
+ /* @__PURE__ */ jsx("path", {
1145
+ "fill-rule": "evenodd",
1146
+ "clip-rule": "evenodd",
1147
+ d: "M66.27 5.17a.5.5 0 0 0 .49-.5.5.5 0 0 0-.5-.5.5.5 0 0 0-.48.5c0 .28.22.5.49.5",
1148
+ fill: "var(--sustain-accent-white)"
1149
+ }),
1150
+ /* @__PURE__ */ jsx("path", {
1151
+ "fill-rule": "evenodd",
1152
+ "clip-rule": "evenodd",
1153
+ d: "M65.88 12.73h.76V6.1h-.76z",
1154
+ fill: "var(--sustain-accent-white)"
1155
+ }),
1156
+ /* @__PURE__ */ jsx("path", {
1157
+ "fill-rule": "evenodd",
1158
+ "clip-rule": "evenodd",
1159
+ d: "M50.72 9.4c0-1.38 1.06-2.5 2.37-2.5 1.3 0 2.37 1.12 2.37 2.5v.1c-.05 1.37-1.1 2.44-2.37 2.44-1.28 0-2.37-1.14-2.37-2.54m2.37 3.32c.92 0 1.77-.41 2.37-1.15v1.16h.76V6.1h-.76v1.14a3 3 0 0 0-2.37-1.14 3.2 3.2 0 0 0-3.13 3.3c0 1.8 1.4 3.31 3.13 3.31",
1160
+ fill: "var(--sustain-accent-white)"
1161
+ }),
1162
+ /* @__PURE__ */ jsx("path", {
1163
+ "fill-rule": "evenodd",
1164
+ "clip-rule": "evenodd",
1165
+ d: "M61.35 11.94c-1.28 0-2.32-1.07-2.37-2.43v-.1c0-1.4 1.06-2.52 2.37-2.52 1.3 0 2.37 1.13 2.37 2.51 0 1.39-1.07 2.54-2.37 2.54m3.13-2.54c0-1.81-1.4-3.29-3.13-3.29-.93 0-1.78.41-2.37 1.14V6.1h-.76v9h.76v-3.53c.6.73 1.45 1.14 2.37 1.14 1.72 0 3.13-1.49 3.13-3.32",
1166
+ fill: "var(--sustain-accent-white)"
1167
+ }),
1168
+ /* @__PURE__ */ jsx("path", {
1169
+ "fill-rule": "evenodd",
1170
+ "clip-rule": "evenodd",
1171
+ d: "M78.73 6.11c-.72 0-1.4.3-1.9.84V6.1h-.74v6.62h.73V8.8a1.95 1.95 0 0 1 1.9-1.93c1.03 0 1.9.86 1.9 1.93v3.92h.75V8.8c0-1.49-1.19-2.7-2.64-2.7",
1172
+ fill: "var(--sustain-accent-white)"
1173
+ }),
1174
+ /* @__PURE__ */ jsx("path", {
1175
+ "fill-rule": "evenodd",
1176
+ "clip-rule": "evenodd",
1177
+ d: "m85.3 11.97-.07.02q-.11.04-.37.05-.44.02-.44-.67v-4.5h.9V6.1h-.9V3.89h-.78V6.1h-.9v.76h.9v4.53q0 .74.28 1.01.27.3.77.31.37 0 .61-.1l.05-.01z",
1178
+ fill: "var(--sustain-accent-white)"
1179
+ }),
1180
+ /* @__PURE__ */ jsx("path", {
1181
+ "fill-rule": "evenodd",
1182
+ "clip-rule": "evenodd",
1183
+ d: "M71.42 6.88c1.11 0 2.07.83 2.3 1.97h-4.65a2.4 2.4 0 0 1 2.34-1.97m1.98 3.94a2.3 2.3 0 0 1-1.99 1.14 2.46 2.46 0 0 1-2.39-2.36h5.14c.2 0 .37-.15.37-.35v-.06c-.13-1.75-1.47-3.08-3.12-3.08a3.24 3.24 0 0 0-3.14 3.32c0 1.83 1.41 3.3 3.14 3.3 1.06 0 2.04-.56 2.61-1.5z",
1184
+ fill: "var(--sustain-accent-white)"
1185
+ }),
1186
+ /* @__PURE__ */ jsx("path", {
1187
+ "fill-rule": "evenodd",
1188
+ "clip-rule": "evenodd",
1189
+ d: "M48.2 9.53s-.2-.16-.41-.25c-.22-.09-.52-.2-1.16-.35q-.12-.04-.25-.06-.63-.17-1-.44-.33-.28-.3-.61.01-.39.4-.67.45-.34 1.18-.3c.54.02.95.3 1.39.62l.04.03.55-.53-.26-.2c-.44-.3-.97-.62-1.69-.65q-.95-.04-1.6.38c-.47.32-.77.79-.77 1.28-.01.37.07.72.43 1.08.43.43 1.1.65 1.72.77.53.1 1.02.3 1.26.51.3.28.4.48.4.77q-.02.42-.48.72c-.3.23-.73.35-1.18.33a3.2 3.2 0 0 1-1.82-.78l-.04-.04-.54.51.05.05q1.09.95 2.31 1.02a2.6 2.6 0 0 0 1.64-.46q.77-.54.81-1.32a1.7 1.7 0 0 0-.68-1.41",
1190
+ fill: "var(--sustain-accent-white)"
1191
+ }),
1192
+ /* @__PURE__ */ jsx("path", {
1193
+ d: "m52.1 23-1.35 1.6a2.7 2.7 0 0 0-1.62-.65c-.6 0-1.06.36-1.06.82 0 .48.26.64 1.56 1.1 2.28.8 2.98 1.48 2.98 3.04 0 2.06-1.7 3.52-4.1 3.52a4.8 4.8 0 0 1-3.72-1.62l1.42-1.68q1.15 1.15 2.32 1.16c.7 0 1.24-.46 1.24-1.08 0-.54-.22-.78-1.5-1.24-2.38-.84-2.86-1.48-2.86-2.9 0-1.9 1.54-3.12 3.5-3.12q1.8 0 3.2 1.04m2.43-.69h2.76v5.56q0 2.22 1.98 2.22 2 0 2-2.22v-5.56H64v6.02c0 2.62-1.7 4.08-4.74 4.08s-4.74-1.46-4.74-4.08zm18.8.68-1.35 1.6a2.7 2.7 0 0 0-1.62-.64c-.6 0-1.06.36-1.06.82 0 .48.26.64 1.56 1.1 2.28.8 2.98 1.48 2.98 3.04 0 2.06-1.7 3.52-4.1 3.52a4.8 4.8 0 0 1-3.72-1.62l1.42-1.68q1.15 1.15 2.32 1.16c.7 0 1.24-.46 1.24-1.08 0-.54-.22-.78-1.5-1.24-2.38-.84-2.86-1.48-2.86-2.9 0-1.9 1.54-3.12 3.5-3.12q1.8 0 3.2 1.04m2.45 1.68H74.7v-2.36h1.08v-3.34h2.76v3.34h1.92v2.36h-1.92v2.92c0 1.52.18 2.4 1.2 2.4q.28 0 .5-.04v2.4c-.3.04-.86.06-1.16.06-2.14 0-3.3-1.58-3.3-3.84zM90 27.23a2.76 2.76 0 0 0-2.74-2.76 2.7 2.7 0 0 0-2.74 2.74c0 1.52 1.2 2.74 2.74 2.74A2.8 2.8 0 0 0 90 27.23m-.3-3.66v-1.26h2.76v9.8H89.7v-1.28a3.9 3.9 0 0 1-3.2 1.58c-2.76 0-4.82-2.26-4.82-5.22 0-2.92 2.04-5.2 4.76-5.2q1.91.01 3.26 1.58m5.31-1.26h2.76v9.8h-2.76zm-.26-4.14c0-.9.74-1.64 1.64-1.64s1.64.74 1.64 1.64-.74 1.64-1.64 1.64-1.64-.74-1.64-1.64m5.58 13.94v-9.8h2.76v1.22a3.7 3.7 0 0 1 3.06-1.54c1.98 0 3.64 1.14 3.64 3.78v6.34h-2.76v-5.38c0-1.64-.46-2.4-1.86-2.4-1.38 0-2.08.86-2.08 2.7v5.08z",
1194
+ fill: "var(--sustain-accent-white)"
1195
+ })
1196
+ ]
1197
+ });
1198
+ }
1199
+ //#endregion
1200
+ //#region src/primitives/Logo/Logo.tsx
1201
+ const MARKS = {
1202
+ bodhi: {
1203
+ logo: BodhiLogo,
1204
+ icon: BodhiIcon
1205
+ },
1206
+ slingshot: {
1207
+ logo: SlingshotLogo,
1208
+ icon: SlingshotIcon
1209
+ },
1210
+ sustain: {
1211
+ logo: SustainLogo,
1212
+ icon: SustainIcon
1213
+ },
1214
+ psai: {
1215
+ logo: PSAILogo,
1216
+ icon: PSAILogo
1217
+ }
1218
+ };
1219
+ function Logo({ brand, variant = "logo", ...props }) {
1220
+ const Mark = MARKS[brand][variant];
1221
+ return /* @__PURE__ */ jsx(Mark, {
1222
+ "data-slot": "logo",
1223
+ "data-brand": brand,
1224
+ "data-variant": variant,
1225
+ ...props
1226
+ });
1227
+ }
1228
+ //#endregion
1229
+ //#region src/primitives/Popover/Popover.tsx
1230
+ function Popover$1({ ...props }) {
1231
+ return /* @__PURE__ */ jsx(Popover.Root, {
1232
+ "data-slot": "popover",
1233
+ ...props
1234
+ });
1235
+ }
1236
+ function PopoverTrigger({ ...props }) {
1237
+ return /* @__PURE__ */ jsx(Popover.Trigger, {
1238
+ "data-slot": "popover-trigger",
1239
+ ...props
1240
+ });
1241
+ }
1242
+ function PopoverContent({ className, align = "center", sideOffset = 4, ...props }) {
1243
+ return /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Content, {
1244
+ "data-slot": "popover-content",
1245
+ align,
1246
+ sideOffset,
1247
+ className: cn("z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-card p-4 text-card-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
1248
+ ...props
1249
+ }) });
1250
+ }
1251
+ function PopoverAnchor({ ...props }) {
1252
+ return /* @__PURE__ */ jsx(Popover.Anchor, {
1253
+ "data-slot": "popover-anchor",
1254
+ ...props
1255
+ });
1256
+ }
1257
+ function PopoverHeader({ className, ...props }) {
1258
+ return /* @__PURE__ */ jsx("div", {
1259
+ "data-slot": "popover-header",
1260
+ className: cn("flex flex-col gap-1 text-sm", className),
1261
+ ...props
1262
+ });
1263
+ }
1264
+ function PopoverTitle({ className, ...props }) {
1265
+ return /* @__PURE__ */ jsx("div", {
1266
+ "data-slot": "popover-title",
1267
+ className: cn("font-medium", className),
1268
+ ...props
1269
+ });
1270
+ }
1271
+ function PopoverDescription({ className, ...props }) {
1272
+ return /* @__PURE__ */ jsx("p", {
1273
+ "data-slot": "popover-description",
1274
+ className: cn("text-muted-foreground", className),
1275
+ ...props
1276
+ });
1277
+ }
1278
+ //#endregion
1279
+ //#region src/primitives/Skeleton/Skeleton.tsx
1280
+ function Skeleton({ className, ...props }) {
1281
+ return /* @__PURE__ */ jsx("div", {
1282
+ "data-slot": "skeleton",
1283
+ className: cn("skeleton-shimmer rounded-md", className),
1284
+ ...props
1285
+ });
1286
+ }
1287
+ function SkeletonAvatar({ className, ...props }) {
1288
+ return /* @__PURE__ */ jsx(Skeleton, {
1289
+ "data-slot": "skeleton-avatar",
1290
+ className: cn("size-10 rounded-full", className),
1291
+ ...props
1292
+ });
1293
+ }
1294
+ function SkeletonLine({ className, ...props }) {
1295
+ return /* @__PURE__ */ jsx(Skeleton, {
1296
+ "data-slot": "skeleton-line",
1297
+ className: cn("h-4 w-full rounded-full", className),
1298
+ ...props
1299
+ });
1300
+ }
1301
+ function SkeletonObject({ className, ...props }) {
1302
+ return /* @__PURE__ */ jsx(Skeleton, {
1303
+ "data-slot": "skeleton-object",
1304
+ className: cn("h-24 w-full rounded-md", className),
1305
+ ...props
1306
+ });
1307
+ }
1308
+ //#endregion
1309
+ //#region src/primitives/Table/Table.tsx
1310
+ function Table({ className, striped = false, ...props }) {
1311
+ return /* @__PURE__ */ jsx("div", {
1312
+ "data-slot": "table-container",
1313
+ className: "relative w-full overflow-x-auto",
1314
+ children: /* @__PURE__ */ jsx("table", {
1315
+ "data-slot": "table",
1316
+ "data-striped": striped || void 0,
1317
+ className: cn("w-full caption-bottom text-sm", striped && "[&_tbody_tr:nth-child(even)]:bg-muted/50", className),
1318
+ ...props
1319
+ })
1320
+ });
1321
+ }
1322
+ function TableHeader({ className, ...props }) {
1323
+ return /* @__PURE__ */ jsx("thead", {
1324
+ "data-slot": "table-header",
1325
+ className: cn("[&_tr]:border-b", className),
1326
+ ...props
1327
+ });
1328
+ }
1329
+ function TableBody({ className, ...props }) {
1330
+ return /* @__PURE__ */ jsx("tbody", {
1331
+ "data-slot": "table-body",
1332
+ className: cn("[&_tr:last-child]:border-0", className),
1333
+ ...props
1334
+ });
1335
+ }
1336
+ function TableFooter({ className, ...props }) {
1337
+ return /* @__PURE__ */ jsx("tfoot", {
1338
+ "data-slot": "table-footer",
1339
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
1340
+ ...props
1341
+ });
1342
+ }
1343
+ function TableRow({ className, ...props }) {
1344
+ return /* @__PURE__ */ jsx("tr", {
1345
+ "data-slot": "table-row",
1346
+ className: cn("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted", className),
1347
+ ...props
1348
+ });
1349
+ }
1350
+ function TableHead({ className, ...props }) {
1351
+ return /* @__PURE__ */ jsx("th", {
1352
+ "data-slot": "table-head",
1353
+ className: cn("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
1354
+ ...props
1355
+ });
1356
+ }
1357
+ function TableCell({ className, ...props }) {
1358
+ return /* @__PURE__ */ jsx("td", {
1359
+ "data-slot": "table-cell",
1360
+ className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
1361
+ ...props
1362
+ });
1363
+ }
1364
+ function TableCaption({ className, ...props }) {
1365
+ return /* @__PURE__ */ jsx("caption", {
1366
+ "data-slot": "table-caption",
1367
+ className: cn("mt-4 text-sm text-muted-foreground", className),
1368
+ ...props
1369
+ });
1370
+ }
1371
+ //#endregion
1372
+ //#region src/primitives/Text/Text.tsx
1373
+ const textVariants = cva("", {
1374
+ variants: {
1375
+ size: {
1376
+ large: "text-[length:var(--paragraph-large-font-size)] leading-[var(--paragraph-large-line-height)]",
1377
+ regular: "text-[length:var(--paragraph-regular-font-size)] leading-[var(--paragraph-regular-line-height)]",
1378
+ small: "text-[length:var(--paragraph-small-font-size)] leading-[var(--paragraph-small-line-height)]",
1379
+ mini: "text-[length:var(--paragraph-mini-font-size)] leading-[var(--paragraph-mini-line-height)]",
1380
+ caption: "text-[length:var(--caption-font-size)] leading-[var(--caption-line-height)] tracking-[var(--caption-letter-spacing)] uppercase"
1381
+ },
1382
+ weight: {
1383
+ normal: "font-normal",
1384
+ medium: "font-medium",
1385
+ semibold: "font-semibold"
1386
+ },
1387
+ variant: {
1388
+ default: "text-foreground",
1389
+ muted: "text-muted-foreground",
1390
+ primary: "text-primary",
1391
+ destructive: "text-destructive",
1392
+ success: "text-[var(--content-success)]"
1393
+ },
1394
+ font: {
1395
+ body: "font-sans",
1396
+ heading: "font-heading",
1397
+ mono: "font-mono"
1398
+ },
1399
+ align: {
1400
+ left: "text-left",
1401
+ center: "text-center",
1402
+ right: "text-right"
1403
+ },
1404
+ truncate: { true: "truncate" }
1405
+ },
1406
+ defaultVariants: {
1407
+ size: "regular",
1408
+ weight: "normal",
1409
+ variant: "default",
1410
+ font: "body"
1411
+ }
1412
+ });
1413
+ function Text({ as, className, size, weight, variant, font, align, truncate, ...props }) {
1414
+ return /* @__PURE__ */ jsx(as ?? "p", {
1415
+ "data-slot": "text",
1416
+ className: cn(textVariants({
1417
+ size,
1418
+ weight,
1419
+ variant,
1420
+ font,
1421
+ align,
1422
+ truncate
1423
+ }), className),
1424
+ ...props
1425
+ });
1426
+ }
1427
+ //#endregion
1428
+ //#region src/primitives/ThemeProvider/ThemeProvider.tsx
1429
+ const PRODUCTS = [
1430
+ "slingshot",
1431
+ "sustain",
1432
+ "bodhi",
1433
+ "psai"
1434
+ ];
1435
+ const ThemeContext = React.createContext(null);
1436
+ const DEFAULT_STORAGE_KEY = "ds-theme-preferences";
1437
+ function readStored(storageKey) {
1438
+ try {
1439
+ const raw = localStorage.getItem(storageKey);
1440
+ if (!raw) return {};
1441
+ const parsed = JSON.parse(raw);
1442
+ return {
1443
+ theme: parsed.theme === "dark" || parsed.theme === "light" ? parsed.theme : void 0,
1444
+ product: PRODUCTS.includes(parsed.product) ? parsed.product : void 0
1445
+ };
1446
+ } catch {
1447
+ return {};
1448
+ }
1449
+ }
1450
+ function prefersDark() {
1451
+ try {
1452
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
1453
+ } catch {
1454
+ return false;
1455
+ }
1456
+ }
1457
+ function applyToDocument({ theme, product }) {
1458
+ const root = document.documentElement;
1459
+ root.classList.toggle("dark", theme === "dark");
1460
+ for (const p of PRODUCTS) root.classList.toggle(`theme-${p}`, p === product);
1461
+ }
1462
+ function ThemeProvider({ children, defaultTheme = "light", defaultProduct = "slingshot", storageKey = DEFAULT_STORAGE_KEY }) {
1463
+ const [prefs, setPrefs] = React.useState(() => {
1464
+ if (typeof window === "undefined") return {
1465
+ theme: defaultTheme,
1466
+ product: defaultProduct
1467
+ };
1468
+ const stored = readStored(storageKey);
1469
+ return {
1470
+ theme: stored.theme ?? (prefersDark() ? "dark" : defaultTheme),
1471
+ product: stored.product ?? defaultProduct
1472
+ };
1473
+ });
1474
+ React.useEffect(() => {
1475
+ applyToDocument(prefs);
1476
+ try {
1477
+ localStorage.setItem(storageKey, JSON.stringify(prefs));
1478
+ } catch {}
1479
+ }, [prefs, storageKey]);
1480
+ const value = React.useMemo(() => ({
1481
+ ...prefs,
1482
+ setTheme: (theme) => setPrefs((p) => ({
1483
+ ...p,
1484
+ theme
1485
+ })),
1486
+ toggleTheme: () => setPrefs((p) => ({
1487
+ ...p,
1488
+ theme: p.theme === "dark" ? "light" : "dark"
1489
+ })),
1490
+ setProduct: (product) => setPrefs((p) => ({
1491
+ ...p,
1492
+ product
1493
+ }))
1494
+ }), [prefs]);
1495
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, {
1496
+ value,
1497
+ children
1498
+ });
1499
+ }
1500
+ function useTheme() {
1501
+ const ctx = React.useContext(ThemeContext);
1502
+ if (!ctx) throw new Error("useTheme must be used within a <ThemeProvider>.");
1503
+ return ctx;
1504
+ }
1505
+ //#endregion
1506
+ export { CardTitle as $, DropdownMenu$1 as A, DropdownMenuShortcut as B, PopoverTitle as C, inputVariants as D, Input as E, DropdownMenuLabel as F, Credits as G, DropdownMenuSubContent as H, DropdownMenuPortal as I, CardAction as J, creditsVariants as K, DropdownMenuRadioGroup as L, DropdownMenuContent as M, DropdownMenuGroup as N, Heading as O, DropdownMenuItem as P, CardHeader as Q, DropdownMenuRadioItem as R, PopoverHeader as S, Logo as T, DropdownMenuSubTrigger as U, DropdownMenuSub as V, DropdownMenuTrigger as W, CardDescription as X, CardContent as Y, CardFooter as Z, SkeletonObject as _, textVariants as a, AvatarGroupCount as at, PopoverContent as b, TableCaption as c, buttonVariants as ct, TableHead as d, cardVariants as et, TableHeader as f, SkeletonLine as g, SkeletonAvatar as h, Text as i, AvatarGroup as it, DropdownMenuCheckboxItem as j, headingVariants as k, TableCell as l, Spinner as lt, Skeleton as m, ThemeProvider as n, AvatarBadge as nt, Table as o, AvatarImage as ot, TableRow as p, Card as q, useTheme as r, AvatarFallback as rt, TableBody as s, Button as st, ThemeContext as t, Avatar$1 as tt, TableFooter as u, Popover$1 as v, PopoverTrigger as w, PopoverDescription as x, PopoverAnchor as y, DropdownMenuSeparator as z };
1507
+
1508
+ //# sourceMappingURL=ThemeProvider.js.map