adminium 1.0.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,2041 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ import { cva } from 'class-variance-authority';
4
+ import * as React5 from 'react';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+ import 'react-dom';
7
+ import { ChevronDown, Check, Minus } from 'lucide-react';
8
+
9
+ var __create = Object.create;
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __getProtoOf = Object.getPrototypeOf;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
16
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
17
+ }) : x)(function(x) {
18
+ if (typeof require !== "undefined") return require.apply(this, arguments);
19
+ throw Error('Dynamic require of "' + x + '" is not supported');
20
+ });
21
+ var __commonJS = (cb, mod) => function __require2() {
22
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
+ }
30
+ return to;
31
+ };
32
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
33
+ // If the importer is in node compatibility mode or this is not an ESM
34
+ // file that has been converted to a CommonJS file using a Babel-
35
+ // compatible transform (i.e. "__esModule" has not been set), then set
36
+ // "default" to the CommonJS "module.exports" for node compatibility.
37
+ __defProp(target, "default", { value: mod, enumerable: true }) ,
38
+ mod
39
+ ));
40
+
41
+ // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js
42
+ var require_use_sync_external_store_shim_production = __commonJS({
43
+ "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js"(exports$1) {
44
+ var React16 = __require("react");
45
+ function is(x, y) {
46
+ return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
47
+ }
48
+ var objectIs = "function" === typeof Object.is ? Object.is : is;
49
+ var useState9 = React16.useState;
50
+ var useEffect9 = React16.useEffect;
51
+ var useLayoutEffect3 = React16.useLayoutEffect;
52
+ var useDebugValue = React16.useDebugValue;
53
+ function useSyncExternalStore$2(subscribe2, getSnapshot) {
54
+ var value = getSnapshot(), _useState = useState9({ inst: { value, getSnapshot } }), inst = _useState[0].inst, forceUpdate = _useState[1];
55
+ useLayoutEffect3(
56
+ function() {
57
+ inst.value = value;
58
+ inst.getSnapshot = getSnapshot;
59
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
60
+ },
61
+ [subscribe2, value, getSnapshot]
62
+ );
63
+ useEffect9(
64
+ function() {
65
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
66
+ return subscribe2(function() {
67
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
68
+ });
69
+ },
70
+ [subscribe2]
71
+ );
72
+ useDebugValue(value);
73
+ return value;
74
+ }
75
+ function checkIfSnapshotChanged(inst) {
76
+ var latestGetSnapshot = inst.getSnapshot;
77
+ inst = inst.value;
78
+ try {
79
+ var nextValue = latestGetSnapshot();
80
+ return !objectIs(inst, nextValue);
81
+ } catch (error) {
82
+ return true;
83
+ }
84
+ }
85
+ function useSyncExternalStore$1(subscribe2, getSnapshot) {
86
+ return getSnapshot();
87
+ }
88
+ var shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
89
+ exports$1.useSyncExternalStore = void 0 !== React16.useSyncExternalStore ? React16.useSyncExternalStore : shim;
90
+ }
91
+ });
92
+
93
+ // node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
94
+ var require_use_sync_external_store_shim_development = __commonJS({
95
+ "node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports$1) {
96
+ "production" !== process.env.NODE_ENV && (function() {
97
+ function is(x, y) {
98
+ return x === y && (0 !== x || 1 / x === 1 / y) || x !== x && y !== y;
99
+ }
100
+ function useSyncExternalStore$2(subscribe2, getSnapshot) {
101
+ didWarnOld18Alpha || void 0 === React16.startTransition || (didWarnOld18Alpha = true, console.error(
102
+ "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
103
+ ));
104
+ var value = getSnapshot();
105
+ if (!didWarnUncachedGetSnapshot) {
106
+ var cachedValue = getSnapshot();
107
+ objectIs(value, cachedValue) || (console.error(
108
+ "The result of getSnapshot should be cached to avoid an infinite loop"
109
+ ), didWarnUncachedGetSnapshot = true);
110
+ }
111
+ cachedValue = useState9({
112
+ inst: { value, getSnapshot }
113
+ });
114
+ var inst = cachedValue[0].inst, forceUpdate = cachedValue[1];
115
+ useLayoutEffect3(
116
+ function() {
117
+ inst.value = value;
118
+ inst.getSnapshot = getSnapshot;
119
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
120
+ },
121
+ [subscribe2, value, getSnapshot]
122
+ );
123
+ useEffect9(
124
+ function() {
125
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
126
+ return subscribe2(function() {
127
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
128
+ });
129
+ },
130
+ [subscribe2]
131
+ );
132
+ useDebugValue(value);
133
+ return value;
134
+ }
135
+ function checkIfSnapshotChanged(inst) {
136
+ var latestGetSnapshot = inst.getSnapshot;
137
+ inst = inst.value;
138
+ try {
139
+ var nextValue = latestGetSnapshot();
140
+ return !objectIs(inst, nextValue);
141
+ } catch (error) {
142
+ return true;
143
+ }
144
+ }
145
+ function useSyncExternalStore$1(subscribe2, getSnapshot) {
146
+ return getSnapshot();
147
+ }
148
+ "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
149
+ var React16 = __require("react"), objectIs = "function" === typeof Object.is ? Object.is : is, useState9 = React16.useState, useEffect9 = React16.useEffect, useLayoutEffect3 = React16.useLayoutEffect, useDebugValue = React16.useDebugValue, didWarnOld18Alpha = false, didWarnUncachedGetSnapshot = false, shim = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
150
+ exports$1.useSyncExternalStore = void 0 !== React16.useSyncExternalStore ? React16.useSyncExternalStore : shim;
151
+ "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
152
+ })();
153
+ }
154
+ });
155
+
156
+ // node_modules/use-sync-external-store/shim/index.js
157
+ var require_shim = __commonJS({
158
+ "node_modules/use-sync-external-store/shim/index.js"(exports$1, module) {
159
+ if (process.env.NODE_ENV === "production") {
160
+ module.exports = require_use_sync_external_store_shim_production();
161
+ } else {
162
+ module.exports = require_use_sync_external_store_shim_development();
163
+ }
164
+ }
165
+ });
166
+ function cn(...inputs) {
167
+ return twMerge(clsx(inputs));
168
+ }
169
+ function createContextScope(scopeName, createContextScopeDeps = []) {
170
+ let defaultContexts = [];
171
+ function createContext3(rootComponentName, defaultContext) {
172
+ const BaseContext = React5.createContext(defaultContext);
173
+ const index = defaultContexts.length;
174
+ defaultContexts = [...defaultContexts, defaultContext];
175
+ const Provider = (props) => {
176
+ const { scope, children, ...context } = props;
177
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
178
+ const value = React5.useMemo(() => context, Object.values(context));
179
+ return /* @__PURE__ */ jsx(Context.Provider, { value, children });
180
+ };
181
+ Provider.displayName = rootComponentName + "Provider";
182
+ function useContext2(consumerName, scope) {
183
+ const Context = scope?.[scopeName]?.[index] || BaseContext;
184
+ const context = React5.useContext(Context);
185
+ if (context) return context;
186
+ if (defaultContext !== void 0) return defaultContext;
187
+ throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
188
+ }
189
+ return [Provider, useContext2];
190
+ }
191
+ const createScope = () => {
192
+ const scopeContexts = defaultContexts.map((defaultContext) => {
193
+ return React5.createContext(defaultContext);
194
+ });
195
+ return function useScope(scope) {
196
+ const contexts = scope?.[scopeName] || scopeContexts;
197
+ return React5.useMemo(
198
+ () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
199
+ [scope, contexts]
200
+ );
201
+ };
202
+ };
203
+ createScope.scopeName = scopeName;
204
+ return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
205
+ }
206
+ function composeContextScopes(...scopes) {
207
+ const baseScope = scopes[0];
208
+ if (scopes.length === 1) return baseScope;
209
+ const createScope = () => {
210
+ const scopeHooks = scopes.map((createScope2) => ({
211
+ useScope: createScope2(),
212
+ scopeName: createScope2.scopeName
213
+ }));
214
+ return function useComposedScopes(overrideScopes) {
215
+ const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
216
+ const scopeProps = useScope(overrideScopes);
217
+ const currentScope = scopeProps[`__scope${scopeName}`];
218
+ return { ...nextScopes2, ...currentScope };
219
+ }, {});
220
+ return React5.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
221
+ };
222
+ };
223
+ createScope.scopeName = baseScope.scopeName;
224
+ return createScope;
225
+ }
226
+ function useCallbackRef(callback) {
227
+ const callbackRef = React5.useRef(callback);
228
+ React5.useEffect(() => {
229
+ callbackRef.current = callback;
230
+ });
231
+ return React5.useMemo(() => (...args) => callbackRef.current?.(...args), []);
232
+ }
233
+ var useLayoutEffect2 = globalThis?.document ? React5.useLayoutEffect : () => {
234
+ };
235
+ function setRef(ref, value) {
236
+ if (typeof ref === "function") {
237
+ return ref(value);
238
+ } else if (ref !== null && ref !== void 0) {
239
+ ref.current = value;
240
+ }
241
+ }
242
+ function composeRefs(...refs) {
243
+ return (node) => {
244
+ let hasCleanup = false;
245
+ const cleanups = refs.map((ref) => {
246
+ const cleanup = setRef(ref, node);
247
+ if (!hasCleanup && typeof cleanup == "function") {
248
+ hasCleanup = true;
249
+ }
250
+ return cleanup;
251
+ });
252
+ if (hasCleanup) {
253
+ return () => {
254
+ for (let i = 0; i < cleanups.length; i++) {
255
+ const cleanup = cleanups[i];
256
+ if (typeof cleanup == "function") {
257
+ cleanup();
258
+ } else {
259
+ setRef(refs[i], null);
260
+ }
261
+ }
262
+ };
263
+ }
264
+ };
265
+ }
266
+ function useComposedRefs(...refs) {
267
+ return React5.useCallback(composeRefs(...refs), refs);
268
+ }
269
+ // @__NO_SIDE_EFFECTS__
270
+ function createSlot(ownerName) {
271
+ const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
272
+ const Slot2 = React5.forwardRef((props, forwardedRef) => {
273
+ const { children, ...slotProps } = props;
274
+ const childrenArray = React5.Children.toArray(children);
275
+ const slottable = childrenArray.find(isSlottable);
276
+ if (slottable) {
277
+ const newElement = slottable.props.children;
278
+ const newChildren = childrenArray.map((child) => {
279
+ if (child === slottable) {
280
+ if (React5.Children.count(newElement) > 1) return React5.Children.only(null);
281
+ return React5.isValidElement(newElement) ? newElement.props.children : null;
282
+ } else {
283
+ return child;
284
+ }
285
+ });
286
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React5.isValidElement(newElement) ? React5.cloneElement(newElement, void 0, newChildren) : null });
287
+ }
288
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
289
+ });
290
+ Slot2.displayName = `${ownerName}.Slot`;
291
+ return Slot2;
292
+ }
293
+ var Slot = /* @__PURE__ */ createSlot("Slot");
294
+ // @__NO_SIDE_EFFECTS__
295
+ function createSlotClone(ownerName) {
296
+ const SlotClone = React5.forwardRef((props, forwardedRef) => {
297
+ const { children, ...slotProps } = props;
298
+ if (React5.isValidElement(children)) {
299
+ const childrenRef = getElementRef(children);
300
+ const props2 = mergeProps(slotProps, children.props);
301
+ if (children.type !== React5.Fragment) {
302
+ props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
303
+ }
304
+ return React5.cloneElement(children, props2);
305
+ }
306
+ return React5.Children.count(children) > 1 ? React5.Children.only(null) : null;
307
+ });
308
+ SlotClone.displayName = `${ownerName}.SlotClone`;
309
+ return SlotClone;
310
+ }
311
+ var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
312
+ function isSlottable(child) {
313
+ return React5.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
314
+ }
315
+ function mergeProps(slotProps, childProps) {
316
+ const overrideProps = { ...childProps };
317
+ for (const propName in childProps) {
318
+ const slotPropValue = slotProps[propName];
319
+ const childPropValue = childProps[propName];
320
+ const isHandler = /^on[A-Z]/.test(propName);
321
+ if (isHandler) {
322
+ if (slotPropValue && childPropValue) {
323
+ overrideProps[propName] = (...args) => {
324
+ const result = childPropValue(...args);
325
+ slotPropValue(...args);
326
+ return result;
327
+ };
328
+ } else if (slotPropValue) {
329
+ overrideProps[propName] = slotPropValue;
330
+ }
331
+ } else if (propName === "style") {
332
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
333
+ } else if (propName === "className") {
334
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
335
+ }
336
+ }
337
+ return { ...slotProps, ...overrideProps };
338
+ }
339
+ function getElementRef(element) {
340
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
341
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
342
+ if (mayWarn) {
343
+ return element.ref;
344
+ }
345
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
346
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
347
+ if (mayWarn) {
348
+ return element.props.ref;
349
+ }
350
+ return element.props.ref || element.ref;
351
+ }
352
+ var NODES = [
353
+ "a",
354
+ "button",
355
+ "div",
356
+ "form",
357
+ "h2",
358
+ "h3",
359
+ "img",
360
+ "input",
361
+ "label",
362
+ "li",
363
+ "nav",
364
+ "ol",
365
+ "p",
366
+ "select",
367
+ "span",
368
+ "svg",
369
+ "ul"
370
+ ];
371
+ var Primitive = NODES.reduce((primitive, node) => {
372
+ const Slot2 = createSlot(`Primitive.${node}`);
373
+ const Node = React5.forwardRef((props, forwardedRef) => {
374
+ const { asChild, ...primitiveProps } = props;
375
+ const Comp = asChild ? Slot2 : node;
376
+ if (typeof window !== "undefined") {
377
+ window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
378
+ }
379
+ return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
380
+ });
381
+ Node.displayName = `Primitive.${node}`;
382
+ return { ...primitive, [node]: Node };
383
+ }, {});
384
+
385
+ // node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs
386
+ var import_shim = __toESM(require_shim());
387
+ function useIsHydrated() {
388
+ return (0, import_shim.useSyncExternalStore)(
389
+ subscribe,
390
+ () => true,
391
+ () => false
392
+ );
393
+ }
394
+ function subscribe() {
395
+ return () => {
396
+ };
397
+ }
398
+ var AVATAR_NAME = "Avatar";
399
+ var [createAvatarContext] = createContextScope(AVATAR_NAME);
400
+ var [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
401
+ var Avatar = React5.forwardRef(
402
+ (props, forwardedRef) => {
403
+ const { __scopeAvatar, ...avatarProps } = props;
404
+ const [imageLoadingStatus, setImageLoadingStatus] = React5.useState("idle");
405
+ return /* @__PURE__ */ jsx(
406
+ AvatarProvider,
407
+ {
408
+ scope: __scopeAvatar,
409
+ imageLoadingStatus,
410
+ onImageLoadingStatusChange: setImageLoadingStatus,
411
+ children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })
412
+ }
413
+ );
414
+ }
415
+ );
416
+ Avatar.displayName = AVATAR_NAME;
417
+ var IMAGE_NAME = "AvatarImage";
418
+ var AvatarImage = React5.forwardRef(
419
+ (props, forwardedRef) => {
420
+ const { __scopeAvatar, src, onLoadingStatusChange = () => {
421
+ }, ...imageProps } = props;
422
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
423
+ const imageLoadingStatus = useImageLoadingStatus(src, imageProps);
424
+ const handleLoadingStatusChange = useCallbackRef((status) => {
425
+ onLoadingStatusChange(status);
426
+ context.onImageLoadingStatusChange(status);
427
+ });
428
+ useLayoutEffect2(() => {
429
+ if (imageLoadingStatus !== "idle") {
430
+ handleLoadingStatusChange(imageLoadingStatus);
431
+ }
432
+ }, [imageLoadingStatus, handleLoadingStatusChange]);
433
+ return imageLoadingStatus === "loaded" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;
434
+ }
435
+ );
436
+ AvatarImage.displayName = IMAGE_NAME;
437
+ var FALLBACK_NAME = "AvatarFallback";
438
+ var AvatarFallback = React5.forwardRef(
439
+ (props, forwardedRef) => {
440
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
441
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
442
+ const [canRender, setCanRender] = React5.useState(delayMs === void 0);
443
+ React5.useEffect(() => {
444
+ if (delayMs !== void 0) {
445
+ const timerId = window.setTimeout(() => setCanRender(true), delayMs);
446
+ return () => window.clearTimeout(timerId);
447
+ }
448
+ }, [delayMs]);
449
+ return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;
450
+ }
451
+ );
452
+ AvatarFallback.displayName = FALLBACK_NAME;
453
+ function resolveLoadingStatus(image, src) {
454
+ if (!image) {
455
+ return "idle";
456
+ }
457
+ if (!src) {
458
+ return "error";
459
+ }
460
+ if (image.src !== src) {
461
+ image.src = src;
462
+ }
463
+ return image.complete && image.naturalWidth > 0 ? "loaded" : "loading";
464
+ }
465
+ function useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {
466
+ const isHydrated = useIsHydrated();
467
+ const imageRef = React5.useRef(null);
468
+ const image = (() => {
469
+ if (!isHydrated) return null;
470
+ if (!imageRef.current) {
471
+ imageRef.current = new window.Image();
472
+ }
473
+ return imageRef.current;
474
+ })();
475
+ const [loadingStatus, setLoadingStatus] = React5.useState(
476
+ () => resolveLoadingStatus(image, src)
477
+ );
478
+ useLayoutEffect2(() => {
479
+ setLoadingStatus(resolveLoadingStatus(image, src));
480
+ }, [image, src]);
481
+ useLayoutEffect2(() => {
482
+ const updateStatus = (status) => () => {
483
+ setLoadingStatus(status);
484
+ };
485
+ if (!image) return;
486
+ const handleLoad = updateStatus("loaded");
487
+ const handleError = updateStatus("error");
488
+ image.addEventListener("load", handleLoad);
489
+ image.addEventListener("error", handleError);
490
+ if (referrerPolicy) {
491
+ image.referrerPolicy = referrerPolicy;
492
+ }
493
+ if (typeof crossOrigin === "string") {
494
+ image.crossOrigin = crossOrigin;
495
+ }
496
+ return () => {
497
+ image.removeEventListener("load", handleLoad);
498
+ image.removeEventListener("error", handleError);
499
+ };
500
+ }, [image, crossOrigin, referrerPolicy]);
501
+ return loadingStatus;
502
+ }
503
+ var Root = Avatar;
504
+ var Image = AvatarImage;
505
+ var Fallback = AvatarFallback;
506
+ var avatarStatusVariants = cva(
507
+ "flex items-center rounded-full size-2 border-2 border-background",
508
+ {
509
+ variants: {
510
+ variant: {
511
+ online: "bg-green-600",
512
+ offline: "bg-zinc-600 dark:bg-zinc-300",
513
+ busy: "bg-yellow-600",
514
+ away: "bg-blue-600"
515
+ }
516
+ },
517
+ defaultVariants: {
518
+ variant: "online"
519
+ }
520
+ }
521
+ );
522
+ function Avatar2({
523
+ className,
524
+ ...props
525
+ }) {
526
+ return /* @__PURE__ */ jsx(
527
+ Root,
528
+ {
529
+ "data-slot": "avatar",
530
+ className: cn("relative flex shrink-0 size-10", className),
531
+ ...props
532
+ }
533
+ );
534
+ }
535
+ function AvatarImage2({
536
+ className,
537
+ ...props
538
+ }) {
539
+ return /* @__PURE__ */ jsx("div", { className: cn("relative overflow-hidden rounded-full", className), children: /* @__PURE__ */ jsx(
540
+ Image,
541
+ {
542
+ "data-slot": "avatar-image",
543
+ className: cn("aspect-square h-full w-full"),
544
+ ...props
545
+ }
546
+ ) });
547
+ }
548
+ function AvatarFallback2({
549
+ className,
550
+ ...props
551
+ }) {
552
+ return /* @__PURE__ */ jsx(
553
+ Fallback,
554
+ {
555
+ "data-slot": "avatar-fallback",
556
+ className: cn(
557
+ "flex h-full w-full items-center justify-center rounded-full border border-border bg-accent text-accent-foreground text-xs",
558
+ className
559
+ ),
560
+ ...props
561
+ }
562
+ );
563
+ }
564
+ function AvatarIndicator({
565
+ className,
566
+ ...props
567
+ }) {
568
+ return /* @__PURE__ */ jsx(
569
+ "div",
570
+ {
571
+ "data-slot": "avatar-indicator",
572
+ className: cn(
573
+ "absolute flex size-6 items-center justify-center",
574
+ className
575
+ ),
576
+ ...props
577
+ }
578
+ );
579
+ }
580
+ function AvatarStatus({
581
+ className,
582
+ variant,
583
+ ...props
584
+ }) {
585
+ return /* @__PURE__ */ jsx(
586
+ "div",
587
+ {
588
+ "data-slot": "avatar-status",
589
+ className: cn(avatarStatusVariants({ variant }), className),
590
+ ...props
591
+ }
592
+ );
593
+ }
594
+ var badgeVariants = cva(
595
+ "inline-flex items-center justify-center border border-transparent font-medium focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:-ms-px [&_svg]:shrink-0",
596
+ {
597
+ variants: {
598
+ variant: {
599
+ primary: "bg-primary text-primary-foreground",
600
+ secondary: "bg-secondary text-secondary-foreground",
601
+ success: "bg-[var(--color-success-accent,var(--color-green-500))] text-[var(--color-success-foreground,var(--color-white))]",
602
+ warning: "bg-[var(--color-warning-accent,var(--color-yellow-500))] text-[var(--color-warning-foreground,var(--color-white))]",
603
+ info: "bg-[var(--color-info-accent,var(--color-violet-500))] text-[var(--color-info-foreground,var(--color-white))]",
604
+ outline: "bg-transparent border border-border text-secondary-foreground",
605
+ destructive: "bg-destructive text-destructive-foreground"
606
+ },
607
+ appearance: {
608
+ default: "",
609
+ light: "",
610
+ outline: "",
611
+ ghost: "border-transparent bg-transparent"
612
+ },
613
+ disabled: {
614
+ true: "opacity-50 pointer-events-none"
615
+ },
616
+ size: {
617
+ lg: "rounded-md px-[0.5rem] h-7 min-w-7 gap-1.5 text-xs [&_svg]:size-3.5",
618
+ md: "rounded-md px-[0.45rem] h-6 min-w-6 gap-1.5 text-xs [&_svg]:size-3.5 ",
619
+ sm: "rounded-sm px-[0.325rem] h-5 min-w-5 gap-1 text-[0.6875rem] leading-[0.75rem] [&_svg]:size-3",
620
+ xs: "rounded-sm px-[0.25rem] h-4 min-w-4 gap-1 text-[0.625rem] leading-[0.5rem] [&_svg]:size-3"
621
+ },
622
+ shape: {
623
+ default: "",
624
+ circle: "rounded-full"
625
+ }
626
+ },
627
+ compoundVariants: [
628
+ /* Light */
629
+ {
630
+ variant: "primary",
631
+ appearance: "light",
632
+ className: "text-[var(--color-primary-accent,var(--color-blue-700))] bg-[var(--color-primary-soft,var(--color-blue-50))] dark:bg-[var(--color-primary-soft,var(--color-blue-950))] dark:text-[var(--color-primary-soft,var(--color-blue-600))]"
633
+ },
634
+ {
635
+ variant: "secondary",
636
+ appearance: "light",
637
+ className: "bg-secondary dark:bg-secondary/50 text-secondary-foreground"
638
+ },
639
+ {
640
+ variant: "success",
641
+ appearance: "light",
642
+ className: "text-[var(--color-success-accent,var(--color-green-800))] bg-[var(--color-success-soft,var(--color-green-100))] dark:bg-[var(--color-success-soft,var(--color-green-950))] dark:text-[var(--color-success-soft,var(--color-green-600))]"
643
+ },
644
+ {
645
+ variant: "warning",
646
+ appearance: "light",
647
+ className: "text-[var(--color-warning-accent,var(--color-yellow-700))] bg-[var(--color-warning-soft,var(--color-yellow-100))] dark:bg-[var(--color-warning-soft,var(--color-yellow-950))] dark:text-[var(--color-warning-soft,var(--color-yellow-600))]"
648
+ },
649
+ {
650
+ variant: "info",
651
+ appearance: "light",
652
+ className: "text-[var(--color-info-accent,var(--color-violet-700))] bg-[var(--color-info-soft,var(--color-violet-100))] dark:bg-[var(--color-info-soft,var(--color-violet-950))] dark:text-[var(--color-info-soft,var(--color-violet-400))]"
653
+ },
654
+ {
655
+ variant: "destructive",
656
+ appearance: "light",
657
+ className: "text-[var(--color-destructive-accent,var(--color-red-700))] bg-[var(--color-destructive-soft,var(--color-red-50))] dark:bg-[var(--color-destructive-soft,var(--color-red-950))] dark:text-[var(--color-destructive-soft,var(--color-red-600))]"
658
+ },
659
+ /* Outline */
660
+ {
661
+ variant: "primary",
662
+ appearance: "outline",
663
+ className: "text-[var(--color-primary-accent,var(--color-blue-700))] border-[var(--color-primary-soft,var(--color-blue-100))] bg-[var(--color-primary-soft,var(--color-blue-50))] dark:bg-[var(--color-primary-soft,var(--color-blue-950))] dark:border-[var(--color-primary-soft,var(--color-blue-900))] dark:text-[var(--color-primary-soft,var(--color-blue-600))]"
664
+ },
665
+ {
666
+ variant: "success",
667
+ appearance: "outline",
668
+ className: "text-[var(--color-success-accent,var(--color-green-700))] border-[var(--color-success-soft,var(--color-green-200))] bg-[var(--color-success-soft,var(--color-green-50))] dark:bg-[var(--color-success-soft,var(--color-green-950))] dark:border-[var(--color-success-soft,var(--color-green-900))] dark:text-[var(--color-success-soft,var(--color-green-600))]"
669
+ },
670
+ {
671
+ variant: "warning",
672
+ appearance: "outline",
673
+ className: "text-[var(--color-warning-accent,var(--color-yellow-700))] border-[var(--color-warning-soft,var(--color-yellow-200))] bg-[var(--color-warning-soft,var(--color-yellow-50))] dark:bg-[var(--color-warning-soft,var(--color-yellow-950))] dark:border-[var(--color-warning-soft,var(--color-yellow-900))] dark:text-[var(--color-warning-soft,var(--color-yellow-600))]"
674
+ },
675
+ {
676
+ variant: "info",
677
+ appearance: "outline",
678
+ className: "text-[var(--color-info-accent,var(--color-violet-700))] border-[var(--color-info-soft,var(--color-violet-100))] bg-[var(--color-info-soft,var(--color-violet-50))] dark:bg-[var(--color-info-soft,var(--color-violet-950))] dark:border-[var(--color-info-soft,var(--color-violet-900))] dark:text-[var(--color-info-soft,var(--color-violet-400))]"
679
+ },
680
+ {
681
+ variant: "destructive",
682
+ appearance: "outline",
683
+ className: "text-[var(--color-destructive-accent,var(--color-red-700))] border-[var(--color-destructive-soft,var(--color-red-100))] bg-[var(--color-destructive-soft,var(--color-red-50))] dark:bg-[var(--color-destructive-soft,var(--color-red-950))] dark:border-[var(--color-destructive-soft,var(--color-red-900))] dark:text-[var(--color-destructive-soft,var(--color-red-600))]"
684
+ },
685
+ /* Ghost */
686
+ {
687
+ variant: "primary",
688
+ appearance: "ghost",
689
+ className: "text-primary"
690
+ },
691
+ {
692
+ variant: "secondary",
693
+ appearance: "ghost",
694
+ className: "text-secondary-foreground"
695
+ },
696
+ {
697
+ variant: "success",
698
+ appearance: "ghost",
699
+ className: "text-[var(--color-success-accent,var(--color-green-500))]"
700
+ },
701
+ {
702
+ variant: "warning",
703
+ appearance: "ghost",
704
+ className: "text-[var(--color-warning-accent,var(--color-yellow-500))]"
705
+ },
706
+ {
707
+ variant: "info",
708
+ appearance: "ghost",
709
+ className: "text-[var(--color-info-accent,var(--color-violet-500))]"
710
+ },
711
+ {
712
+ variant: "destructive",
713
+ appearance: "ghost",
714
+ className: "text-destructive"
715
+ },
716
+ { size: "lg", appearance: "ghost", className: "px-0" },
717
+ { size: "md", appearance: "ghost", className: "px-0" },
718
+ { size: "sm", appearance: "ghost", className: "px-0" },
719
+ { size: "xs", appearance: "ghost", className: "px-0" }
720
+ ],
721
+ defaultVariants: {
722
+ variant: "primary",
723
+ appearance: "default",
724
+ size: "md"
725
+ }
726
+ }
727
+ );
728
+ var badgeButtonVariants = cva(
729
+ "cursor-pointer transition-all inline-flex items-center justify-center leading-none size-3.5 [&>svg]:opacity-100! [&>svg]:size-3.5! p-0 rounded-md -me-0.5 opacity-60 hover:opacity-100",
730
+ {
731
+ variants: {
732
+ variant: {
733
+ default: ""
734
+ }
735
+ },
736
+ defaultVariants: {
737
+ variant: "default"
738
+ }
739
+ }
740
+ );
741
+ function Badge({
742
+ className,
743
+ variant,
744
+ size,
745
+ appearance,
746
+ shape,
747
+ asChild = false,
748
+ disabled,
749
+ ...props
750
+ }) {
751
+ const Comp = asChild ? Slot : "span";
752
+ return /* @__PURE__ */ jsx(
753
+ Comp,
754
+ {
755
+ "data-slot": "badge",
756
+ className: cn(
757
+ badgeVariants({ variant, size, appearance, shape, disabled }),
758
+ className
759
+ ),
760
+ ...props
761
+ }
762
+ );
763
+ }
764
+ function BadgeButton({
765
+ className,
766
+ variant,
767
+ asChild = false,
768
+ ...props
769
+ }) {
770
+ const Comp = asChild ? Slot : "span";
771
+ return /* @__PURE__ */ jsx(
772
+ Comp,
773
+ {
774
+ "data-slot": "badge-button",
775
+ className: cn(badgeButtonVariants({ variant, className })),
776
+ role: "button",
777
+ ...props
778
+ }
779
+ );
780
+ }
781
+ function BadgeDot({ className, ...props }) {
782
+ return /* @__PURE__ */ jsx(
783
+ "span",
784
+ {
785
+ "data-slot": "badge-dot",
786
+ className: cn(
787
+ "size-1.5 rounded-full bg-[currentColor] opacity-75",
788
+ className
789
+ ),
790
+ ...props
791
+ }
792
+ );
793
+ }
794
+ var buttonVariants = cva(
795
+ "cursor-pointer group whitespace-nowrap focus-visible:outline-hidden inline-flex items-center justify-center has-data-[arrow=true]:justify-between whitespace-nowrap text-sm font-medium ring-offset-background transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-60 [&_svg]:shrink-0",
796
+ {
797
+ variants: {
798
+ variant: {
799
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90 data-[state=open]:bg-primary/90",
800
+ mono: "bg-zinc-950 text-white dark:bg-zinc-300 dark:text-black hover:bg-zinc-950/90 dark:hover:bg-zinc-300/90 data-[state=open]:bg-zinc-950/90 dark:data-[state=open]:bg-zinc-300/90",
801
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 data-[state=open]:bg-destructive/90",
802
+ success: "bg-emerald-500 text-white hover:bg-emerald-600 data-[state=open]:bg-emerald-600",
803
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/90 data-[state=open]:bg-secondary/90",
804
+ outline: "bg-background text-accent-foreground border border-input hover:bg-accent data-[state=open]:bg-accent",
805
+ dashed: "text-accent-foreground border border-input border-dashed bg-background hover:bg-accent hover:text-accent-foreground data-[state=open]:text-accent-foreground",
806
+ ghost: "text-accent-foreground hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
807
+ dim: "text-muted-foreground hover:text-foreground data-[state=open]:text-foreground",
808
+ foreground: "",
809
+ inverse: ""
810
+ },
811
+ appearance: {
812
+ default: "",
813
+ ghost: ""
814
+ },
815
+ underline: {
816
+ solid: "",
817
+ dashed: ""
818
+ },
819
+ underlined: {
820
+ solid: "",
821
+ dashed: ""
822
+ },
823
+ size: {
824
+ lg: "h-10 rounded-md px-4 text-sm gap-1.5 [&_svg:not([class*=size-])]:size-4",
825
+ md: "h-8.5 rounded-md px-3 gap-1.5 text-[0.8125rem] leading-(--text-sm--line-height) [&_svg:not([class*=size-])]:size-4",
826
+ sm: "h-7 rounded-md px-2.5 gap-1.25 text-xs [&_svg:not([class*=size-])]:size-3.5",
827
+ icon: "size-8.5 rounded-md [&_svg:not([class*=size-])]:size-4 shrink-0"
828
+ },
829
+ autoHeight: {
830
+ true: "",
831
+ false: ""
832
+ },
833
+ shape: {
834
+ default: "",
835
+ circle: "rounded-full"
836
+ },
837
+ mode: {
838
+ default: "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
839
+ icon: "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 shrink-0",
840
+ link: "text-primary h-auto p-0 bg-transparent rounded-none hover:bg-transparent data-[state=open]:bg-transparent",
841
+ input: `
842
+ justify-start font-normal hover:bg-background [&_svg]:transition-colors [&_svg]:hover:text-foreground data-[state=open]:bg-background
843
+ focus-visible:border-ring focus-visible:outline-hidden focus-visible:ring-[3px] focus-visible:ring-ring/30
844
+ [[data-state=open]>&]:border-ring [[data-state=open]>&]:outline-hidden [[data-state=open]>&]:ring-[3px]
845
+ [[data-state=open]>&]:ring-ring/30
846
+ aria-invalid:border-destructive/60 aria-invalid:ring-destructive/10 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/20
847
+ in-data-[invalid=true]:border-destructive/60 in-data-[invalid=true]:ring-destructive/10 dark:in-data-[invalid=true]:border-destructive dark:in-data-[invalid=true]:ring-destructive/20
848
+ `
849
+ },
850
+ placeholder: {
851
+ true: "text-muted-foreground",
852
+ false: ""
853
+ }
854
+ },
855
+ compoundVariants: [
856
+ // Icons opacity for default mode
857
+ {
858
+ variant: "ghost",
859
+ mode: "default",
860
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
861
+ },
862
+ {
863
+ variant: "outline",
864
+ mode: "default",
865
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
866
+ },
867
+ {
868
+ variant: "dashed",
869
+ mode: "default",
870
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
871
+ },
872
+ {
873
+ variant: "secondary",
874
+ mode: "default",
875
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
876
+ },
877
+ // Icons opacity for default mode
878
+ {
879
+ variant: "outline",
880
+ mode: "input",
881
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
882
+ },
883
+ {
884
+ variant: "outline",
885
+ mode: "icon",
886
+ className: "[&_svg:not([role=img]):not([class*=text-]):not([class*=opacity-])]:opacity-60"
887
+ },
888
+ // Auto height
889
+ {
890
+ size: "md",
891
+ autoHeight: true,
892
+ className: "h-auto min-h-8.5"
893
+ },
894
+ {
895
+ size: "sm",
896
+ autoHeight: true,
897
+ className: "h-auto min-h-7"
898
+ },
899
+ {
900
+ size: "lg",
901
+ autoHeight: true,
902
+ className: "h-auto min-h-10"
903
+ },
904
+ // Shadow support
905
+ {
906
+ variant: "primary",
907
+ mode: "default",
908
+ appearance: "default",
909
+ className: "shadow-xs shadow-black/5"
910
+ },
911
+ {
912
+ variant: "mono",
913
+ mode: "default",
914
+ appearance: "default",
915
+ className: "shadow-xs shadow-black/5"
916
+ },
917
+ {
918
+ variant: "secondary",
919
+ mode: "default",
920
+ appearance: "default",
921
+ className: "shadow-xs shadow-black/5"
922
+ },
923
+ {
924
+ variant: "outline",
925
+ mode: "default",
926
+ appearance: "default",
927
+ className: "shadow-xs shadow-black/5"
928
+ },
929
+ {
930
+ variant: "dashed",
931
+ mode: "default",
932
+ appearance: "default",
933
+ className: "shadow-xs shadow-black/5"
934
+ },
935
+ {
936
+ variant: "destructive",
937
+ mode: "default",
938
+ appearance: "default",
939
+ className: "shadow-xs shadow-black/5"
940
+ },
941
+ // Shadow support
942
+ {
943
+ variant: "primary",
944
+ mode: "icon",
945
+ appearance: "default",
946
+ className: "shadow-xs shadow-black/5"
947
+ },
948
+ {
949
+ variant: "mono",
950
+ mode: "icon",
951
+ appearance: "default",
952
+ className: "shadow-xs shadow-black/5"
953
+ },
954
+ {
955
+ variant: "secondary",
956
+ mode: "icon",
957
+ appearance: "default",
958
+ className: "shadow-xs shadow-black/5"
959
+ },
960
+ {
961
+ variant: "outline",
962
+ mode: "icon",
963
+ appearance: "default",
964
+ className: "shadow-xs shadow-black/5"
965
+ },
966
+ {
967
+ variant: "dashed",
968
+ mode: "icon",
969
+ appearance: "default",
970
+ className: "shadow-xs shadow-black/5"
971
+ },
972
+ {
973
+ variant: "destructive",
974
+ mode: "icon",
975
+ appearance: "default",
976
+ className: "shadow-xs shadow-black/5"
977
+ },
978
+ // Link
979
+ {
980
+ variant: "primary",
981
+ mode: "link",
982
+ underline: "solid",
983
+ className: "font-medium text-primary hover:text-primary/90 [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-solid"
984
+ },
985
+ {
986
+ variant: "primary",
987
+ mode: "link",
988
+ underline: "dashed",
989
+ className: "font-medium text-primary hover:text-primary/90 [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-dashed decoration-1"
990
+ },
991
+ {
992
+ variant: "primary",
993
+ mode: "link",
994
+ underlined: "solid",
995
+ className: "font-medium text-primary hover:text-primary/90 [&_svg:not([role=img]):not([class*=text-])]:opacity-60 underline underline-offset-4 decoration-solid"
996
+ },
997
+ {
998
+ variant: "primary",
999
+ mode: "link",
1000
+ underlined: "dashed",
1001
+ className: "font-medium text-primary hover:text-primary/90 [&_svg]:opacity-60 underline underline-offset-4 decoration-dashed decoration-1"
1002
+ },
1003
+ {
1004
+ variant: "inverse",
1005
+ mode: "link",
1006
+ underline: "solid",
1007
+ className: "font-medium text-inherit [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-solid"
1008
+ },
1009
+ {
1010
+ variant: "inverse",
1011
+ mode: "link",
1012
+ underline: "dashed",
1013
+ className: "font-medium text-inherit [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-dashed decoration-1"
1014
+ },
1015
+ {
1016
+ variant: "inverse",
1017
+ mode: "link",
1018
+ underlined: "solid",
1019
+ className: "font-medium text-inherit [&_svg:not([role=img]):not([class*=text-])]:opacity-60 underline underline-offset-4 decoration-solid"
1020
+ },
1021
+ {
1022
+ variant: "inverse",
1023
+ mode: "link",
1024
+ underlined: "dashed",
1025
+ className: "font-medium text-inherit [&_svg:not([role=img]):not([class*=text-])]:opacity-60 underline underline-offset-4 decoration-dashed decoration-1"
1026
+ },
1027
+ {
1028
+ variant: "foreground",
1029
+ mode: "link",
1030
+ underline: "solid",
1031
+ className: "font-medium text-foreground [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-solid"
1032
+ },
1033
+ {
1034
+ variant: "foreground",
1035
+ mode: "link",
1036
+ underline: "dashed",
1037
+ className: "font-medium text-foreground [&_svg:not([role=img]):not([class*=text-])]:opacity-60 hover:underline hover:underline-offset-4 hover:decoration-dashed decoration-1"
1038
+ },
1039
+ {
1040
+ variant: "foreground",
1041
+ mode: "link",
1042
+ underlined: "solid",
1043
+ className: "font-medium text-foreground [&_svg:not([role=img]):not([class*=text-])]:opacity-60 underline underline-offset-4 decoration-solid"
1044
+ },
1045
+ {
1046
+ variant: "foreground",
1047
+ mode: "link",
1048
+ underlined: "dashed",
1049
+ className: "font-medium text-foreground [&_svg:not([role=img]):not([class*=text-])]:opacity-60 underline underline-offset-4 decoration-dashed decoration-1"
1050
+ },
1051
+ // Ghost
1052
+ {
1053
+ variant: "primary",
1054
+ appearance: "ghost",
1055
+ className: "bg-transparent text-primary/90 hover:bg-primary/5 data-[state=open]:bg-primary/5"
1056
+ },
1057
+ {
1058
+ variant: "destructive",
1059
+ appearance: "ghost",
1060
+ className: "bg-transparent text-destructive/90 hover:bg-destructive/5 data-[state=open]:bg-destructive/5"
1061
+ },
1062
+ {
1063
+ variant: "success",
1064
+ appearance: "ghost",
1065
+ className: "bg-transparent text-emerald-500 hover:bg-emerald-500/5 data-[state=open]:bg-emerald-500/5"
1066
+ },
1067
+ {
1068
+ variant: "ghost",
1069
+ mode: "icon",
1070
+ className: "text-muted-foreground"
1071
+ },
1072
+ // Size
1073
+ {
1074
+ size: "sm",
1075
+ mode: "icon",
1076
+ className: "w-7 h-7 p-0 [[&_svg:not([class*=size-])]:size-3.5"
1077
+ },
1078
+ {
1079
+ size: "md",
1080
+ mode: "icon",
1081
+ className: "w-8.5 h-8.5 p-0 [&_svg:not([class*=size-])]:size-4"
1082
+ },
1083
+ {
1084
+ size: "icon",
1085
+ className: "w-8.5 h-8.5 p-0 [&_svg:not([class*=size-])]:size-4"
1086
+ },
1087
+ {
1088
+ size: "lg",
1089
+ mode: "icon",
1090
+ className: "w-10 h-10 p-0 [&_svg:not([class*=size-])]:size-4"
1091
+ },
1092
+ // Input mode
1093
+ {
1094
+ mode: "input",
1095
+ placeholder: true,
1096
+ variant: "outline",
1097
+ className: "font-normal text-muted-foreground"
1098
+ },
1099
+ {
1100
+ mode: "input",
1101
+ variant: "outline",
1102
+ size: "sm",
1103
+ className: "gap-1.25"
1104
+ },
1105
+ {
1106
+ mode: "input",
1107
+ variant: "outline",
1108
+ size: "md",
1109
+ className: "gap-1.5"
1110
+ },
1111
+ {
1112
+ mode: "input",
1113
+ variant: "outline",
1114
+ size: "lg",
1115
+ className: "gap-1.5"
1116
+ }
1117
+ ],
1118
+ defaultVariants: {
1119
+ variant: "primary",
1120
+ mode: "default",
1121
+ size: "md",
1122
+ shape: "default",
1123
+ appearance: "default"
1124
+ }
1125
+ }
1126
+ );
1127
+ function Button({
1128
+ className,
1129
+ selected,
1130
+ variant,
1131
+ shape,
1132
+ appearance,
1133
+ mode,
1134
+ size,
1135
+ autoHeight,
1136
+ underlined,
1137
+ underline,
1138
+ asChild = false,
1139
+ placeholder = false,
1140
+ ...props
1141
+ }) {
1142
+ const Comp = asChild ? Slot : "button";
1143
+ return /* @__PURE__ */ jsx(
1144
+ Comp,
1145
+ {
1146
+ "data-slot": "button",
1147
+ className: cn(
1148
+ buttonVariants({
1149
+ variant,
1150
+ size,
1151
+ shape,
1152
+ appearance,
1153
+ mode,
1154
+ autoHeight,
1155
+ placeholder,
1156
+ underlined,
1157
+ underline,
1158
+ className
1159
+ }),
1160
+ asChild && props.disabled && "pointer-events-none opacity-50"
1161
+ ),
1162
+ ...selected && { "data-state": "open" },
1163
+ ...props
1164
+ }
1165
+ );
1166
+ }
1167
+ function ButtonArrow({
1168
+ icon: Icon = ChevronDown,
1169
+ className,
1170
+ ...props
1171
+ }) {
1172
+ return /* @__PURE__ */ jsx(
1173
+ Icon,
1174
+ {
1175
+ "data-slot": "button-arrow",
1176
+ className: cn("ms-auto -me-1", className),
1177
+ ...props
1178
+ }
1179
+ );
1180
+ }
1181
+ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
1182
+ return function handleEvent(event) {
1183
+ originalEventHandler?.(event);
1184
+ if (checkForDefaultPrevented === false || !event.defaultPrevented) {
1185
+ return ourEventHandler?.(event);
1186
+ }
1187
+ };
1188
+ }
1189
+ var useInsertionEffect = React5[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
1190
+ function useControllableState({
1191
+ prop,
1192
+ defaultProp,
1193
+ onChange = () => {
1194
+ },
1195
+ caller
1196
+ }) {
1197
+ const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
1198
+ defaultProp,
1199
+ onChange
1200
+ });
1201
+ const isControlled = prop !== void 0;
1202
+ const value = isControlled ? prop : uncontrolledProp;
1203
+ {
1204
+ const isControlledRef = React5.useRef(prop !== void 0);
1205
+ React5.useEffect(() => {
1206
+ const wasControlled = isControlledRef.current;
1207
+ if (wasControlled !== isControlled) {
1208
+ const from = wasControlled ? "controlled" : "uncontrolled";
1209
+ const to = isControlled ? "controlled" : "uncontrolled";
1210
+ console.warn(
1211
+ `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
1212
+ );
1213
+ }
1214
+ isControlledRef.current = isControlled;
1215
+ }, [isControlled, caller]);
1216
+ }
1217
+ const setValue = React5.useCallback(
1218
+ (nextValue) => {
1219
+ if (isControlled) {
1220
+ const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
1221
+ if (value2 !== prop) {
1222
+ onChangeRef.current?.(value2);
1223
+ }
1224
+ } else {
1225
+ setUncontrolledProp(nextValue);
1226
+ }
1227
+ },
1228
+ [isControlled, prop, setUncontrolledProp, onChangeRef]
1229
+ );
1230
+ return [value, setValue];
1231
+ }
1232
+ function useUncontrolledState({
1233
+ defaultProp,
1234
+ onChange
1235
+ }) {
1236
+ const [value, setValue] = React5.useState(defaultProp);
1237
+ const prevValueRef = React5.useRef(value);
1238
+ const onChangeRef = React5.useRef(onChange);
1239
+ useInsertionEffect(() => {
1240
+ onChangeRef.current = onChange;
1241
+ }, [onChange]);
1242
+ React5.useEffect(() => {
1243
+ if (prevValueRef.current !== value) {
1244
+ onChangeRef.current?.(value);
1245
+ prevValueRef.current = value;
1246
+ }
1247
+ }, [value, prevValueRef]);
1248
+ return [value, setValue, onChangeRef];
1249
+ }
1250
+ function isFunction(value) {
1251
+ return typeof value === "function";
1252
+ }
1253
+ function usePrevious(value) {
1254
+ const ref = React5.useRef({ value, previous: value });
1255
+ return React5.useMemo(() => {
1256
+ if (ref.current.value !== value) {
1257
+ ref.current.previous = ref.current.value;
1258
+ ref.current.value = value;
1259
+ }
1260
+ return ref.current.previous;
1261
+ }, [value]);
1262
+ }
1263
+ function useSize(element) {
1264
+ const [size, setSize] = React5.useState(void 0);
1265
+ useLayoutEffect2(() => {
1266
+ if (element) {
1267
+ setSize({ width: element.offsetWidth, height: element.offsetHeight });
1268
+ const resizeObserver = new ResizeObserver((entries) => {
1269
+ if (!Array.isArray(entries)) {
1270
+ return;
1271
+ }
1272
+ if (!entries.length) {
1273
+ return;
1274
+ }
1275
+ const entry = entries[0];
1276
+ let width;
1277
+ let height;
1278
+ if ("borderBoxSize" in entry) {
1279
+ const borderSizeEntry = entry["borderBoxSize"];
1280
+ const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
1281
+ width = borderSize["inlineSize"];
1282
+ height = borderSize["blockSize"];
1283
+ } else {
1284
+ width = element.offsetWidth;
1285
+ height = element.offsetHeight;
1286
+ }
1287
+ setSize({ width, height });
1288
+ });
1289
+ resizeObserver.observe(element, { box: "border-box" });
1290
+ return () => resizeObserver.unobserve(element);
1291
+ } else {
1292
+ setSize(void 0);
1293
+ }
1294
+ }, [element]);
1295
+ return size;
1296
+ }
1297
+ function useStateMachine(initialState, machine) {
1298
+ return React5.useReducer((state, event) => {
1299
+ const nextState = machine[state][event];
1300
+ return nextState ?? state;
1301
+ }, initialState);
1302
+ }
1303
+ var Presence = (props) => {
1304
+ const { present, children } = props;
1305
+ const presence = usePresence(present);
1306
+ const child = typeof children === "function" ? children({ present: presence.isPresent }) : React5.Children.only(children);
1307
+ const ref = useComposedRefs(presence.ref, getElementRef2(child));
1308
+ const forceMount = typeof children === "function";
1309
+ return forceMount || presence.isPresent ? React5.cloneElement(child, { ref }) : null;
1310
+ };
1311
+ Presence.displayName = "Presence";
1312
+ function usePresence(present) {
1313
+ const [node, setNode] = React5.useState();
1314
+ const stylesRef = React5.useRef(null);
1315
+ const prevPresentRef = React5.useRef(present);
1316
+ const prevAnimationNameRef = React5.useRef("none");
1317
+ const initialState = present ? "mounted" : "unmounted";
1318
+ const [state, send] = useStateMachine(initialState, {
1319
+ mounted: {
1320
+ UNMOUNT: "unmounted",
1321
+ ANIMATION_OUT: "unmountSuspended"
1322
+ },
1323
+ unmountSuspended: {
1324
+ MOUNT: "mounted",
1325
+ ANIMATION_END: "unmounted"
1326
+ },
1327
+ unmounted: {
1328
+ MOUNT: "mounted"
1329
+ }
1330
+ });
1331
+ React5.useEffect(() => {
1332
+ const currentAnimationName = getAnimationName(stylesRef.current);
1333
+ prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
1334
+ }, [state]);
1335
+ useLayoutEffect2(() => {
1336
+ const styles = stylesRef.current;
1337
+ const wasPresent = prevPresentRef.current;
1338
+ const hasPresentChanged = wasPresent !== present;
1339
+ if (hasPresentChanged) {
1340
+ const prevAnimationName = prevAnimationNameRef.current;
1341
+ const currentAnimationName = getAnimationName(styles);
1342
+ if (present) {
1343
+ send("MOUNT");
1344
+ } else if (currentAnimationName === "none" || styles?.display === "none") {
1345
+ send("UNMOUNT");
1346
+ } else {
1347
+ const isAnimating = prevAnimationName !== currentAnimationName;
1348
+ if (wasPresent && isAnimating) {
1349
+ send("ANIMATION_OUT");
1350
+ } else {
1351
+ send("UNMOUNT");
1352
+ }
1353
+ }
1354
+ prevPresentRef.current = present;
1355
+ }
1356
+ }, [present, send]);
1357
+ useLayoutEffect2(() => {
1358
+ if (node) {
1359
+ let timeoutId;
1360
+ const ownerWindow = node.ownerDocument.defaultView ?? window;
1361
+ const handleAnimationEnd = (event) => {
1362
+ const currentAnimationName = getAnimationName(stylesRef.current);
1363
+ const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));
1364
+ if (event.target === node && isCurrentAnimation) {
1365
+ send("ANIMATION_END");
1366
+ if (!prevPresentRef.current) {
1367
+ const currentFillMode = node.style.animationFillMode;
1368
+ node.style.animationFillMode = "forwards";
1369
+ timeoutId = ownerWindow.setTimeout(() => {
1370
+ if (node.style.animationFillMode === "forwards") {
1371
+ node.style.animationFillMode = currentFillMode;
1372
+ }
1373
+ });
1374
+ }
1375
+ }
1376
+ };
1377
+ const handleAnimationStart = (event) => {
1378
+ if (event.target === node) {
1379
+ prevAnimationNameRef.current = getAnimationName(stylesRef.current);
1380
+ }
1381
+ };
1382
+ node.addEventListener("animationstart", handleAnimationStart);
1383
+ node.addEventListener("animationcancel", handleAnimationEnd);
1384
+ node.addEventListener("animationend", handleAnimationEnd);
1385
+ return () => {
1386
+ ownerWindow.clearTimeout(timeoutId);
1387
+ node.removeEventListener("animationstart", handleAnimationStart);
1388
+ node.removeEventListener("animationcancel", handleAnimationEnd);
1389
+ node.removeEventListener("animationend", handleAnimationEnd);
1390
+ };
1391
+ } else {
1392
+ send("ANIMATION_END");
1393
+ }
1394
+ }, [node, send]);
1395
+ return {
1396
+ isPresent: ["mounted", "unmountSuspended"].includes(state),
1397
+ ref: React5.useCallback((node2) => {
1398
+ stylesRef.current = node2 ? getComputedStyle(node2) : null;
1399
+ setNode(node2);
1400
+ }, [])
1401
+ };
1402
+ }
1403
+ function getAnimationName(styles) {
1404
+ return styles?.animationName || "none";
1405
+ }
1406
+ function getElementRef2(element) {
1407
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
1408
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1409
+ if (mayWarn) {
1410
+ return element.ref;
1411
+ }
1412
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
1413
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
1414
+ if (mayWarn) {
1415
+ return element.props.ref;
1416
+ }
1417
+ return element.props.ref || element.ref;
1418
+ }
1419
+ var CHECKBOX_NAME = "Checkbox";
1420
+ var [createCheckboxContext] = createContextScope(CHECKBOX_NAME);
1421
+ var [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);
1422
+ function CheckboxProvider(props) {
1423
+ const {
1424
+ __scopeCheckbox,
1425
+ checked: checkedProp,
1426
+ children,
1427
+ defaultChecked,
1428
+ disabled,
1429
+ form,
1430
+ name,
1431
+ onCheckedChange,
1432
+ required,
1433
+ value = "on",
1434
+ // @ts-expect-error
1435
+ internal_do_not_use_render
1436
+ } = props;
1437
+ const [checked, setChecked] = useControllableState({
1438
+ prop: checkedProp,
1439
+ defaultProp: defaultChecked ?? false,
1440
+ onChange: onCheckedChange,
1441
+ caller: CHECKBOX_NAME
1442
+ });
1443
+ const [control, setControl] = React5.useState(null);
1444
+ const [bubbleInput, setBubbleInput] = React5.useState(null);
1445
+ const hasConsumerStoppedPropagationRef = React5.useRef(false);
1446
+ const isFormControl = control ? !!form || !!control.closest("form") : (
1447
+ // We set this to true by default so that events bubble to forms without JS (SSR)
1448
+ true
1449
+ );
1450
+ const context = {
1451
+ checked,
1452
+ disabled,
1453
+ setChecked,
1454
+ control,
1455
+ setControl,
1456
+ name,
1457
+ form,
1458
+ value,
1459
+ hasConsumerStoppedPropagationRef,
1460
+ required,
1461
+ defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,
1462
+ isFormControl,
1463
+ bubbleInput,
1464
+ setBubbleInput
1465
+ };
1466
+ return /* @__PURE__ */ jsx(
1467
+ CheckboxProviderImpl,
1468
+ {
1469
+ scope: __scopeCheckbox,
1470
+ ...context,
1471
+ children: isFunction2(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
1472
+ }
1473
+ );
1474
+ }
1475
+ var TRIGGER_NAME = "CheckboxTrigger";
1476
+ var CheckboxTrigger = React5.forwardRef(
1477
+ ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {
1478
+ const {
1479
+ control,
1480
+ value,
1481
+ disabled,
1482
+ checked,
1483
+ required,
1484
+ setControl,
1485
+ setChecked,
1486
+ hasConsumerStoppedPropagationRef,
1487
+ isFormControl,
1488
+ bubbleInput
1489
+ } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);
1490
+ const composedRefs = useComposedRefs(forwardedRef, setControl);
1491
+ const initialCheckedStateRef = React5.useRef(checked);
1492
+ React5.useEffect(() => {
1493
+ const form = control?.form;
1494
+ if (form) {
1495
+ const reset = () => setChecked(initialCheckedStateRef.current);
1496
+ form.addEventListener("reset", reset);
1497
+ return () => form.removeEventListener("reset", reset);
1498
+ }
1499
+ }, [control, setChecked]);
1500
+ return /* @__PURE__ */ jsx(
1501
+ Primitive.button,
1502
+ {
1503
+ type: "button",
1504
+ role: "checkbox",
1505
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
1506
+ "aria-required": required,
1507
+ "data-state": getState(checked),
1508
+ "data-disabled": disabled ? "" : void 0,
1509
+ disabled,
1510
+ value,
1511
+ ...checkboxProps,
1512
+ ref: composedRefs,
1513
+ onKeyDown: composeEventHandlers(onKeyDown, (event) => {
1514
+ if (event.key === "Enter") event.preventDefault();
1515
+ }),
1516
+ onClick: composeEventHandlers(onClick, (event) => {
1517
+ setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);
1518
+ if (bubbleInput && isFormControl) {
1519
+ hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
1520
+ if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
1521
+ }
1522
+ })
1523
+ }
1524
+ );
1525
+ }
1526
+ );
1527
+ CheckboxTrigger.displayName = TRIGGER_NAME;
1528
+ var Checkbox = React5.forwardRef(
1529
+ (props, forwardedRef) => {
1530
+ const {
1531
+ __scopeCheckbox,
1532
+ name,
1533
+ checked,
1534
+ defaultChecked,
1535
+ required,
1536
+ disabled,
1537
+ value,
1538
+ onCheckedChange,
1539
+ form,
1540
+ ...checkboxProps
1541
+ } = props;
1542
+ return /* @__PURE__ */ jsx(
1543
+ CheckboxProvider,
1544
+ {
1545
+ __scopeCheckbox,
1546
+ checked,
1547
+ defaultChecked,
1548
+ disabled,
1549
+ required,
1550
+ onCheckedChange,
1551
+ name,
1552
+ form,
1553
+ value,
1554
+ internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [
1555
+ /* @__PURE__ */ jsx(
1556
+ CheckboxTrigger,
1557
+ {
1558
+ ...checkboxProps,
1559
+ ref: forwardedRef,
1560
+ __scopeCheckbox
1561
+ }
1562
+ ),
1563
+ isFormControl && /* @__PURE__ */ jsx(
1564
+ CheckboxBubbleInput,
1565
+ {
1566
+ __scopeCheckbox
1567
+ }
1568
+ )
1569
+ ] })
1570
+ }
1571
+ );
1572
+ }
1573
+ );
1574
+ Checkbox.displayName = CHECKBOX_NAME;
1575
+ var INDICATOR_NAME = "CheckboxIndicator";
1576
+ var CheckboxIndicator = React5.forwardRef(
1577
+ (props, forwardedRef) => {
1578
+ const { __scopeCheckbox, forceMount, ...indicatorProps } = props;
1579
+ const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);
1580
+ return /* @__PURE__ */ jsx(
1581
+ Presence,
1582
+ {
1583
+ present: forceMount || isIndeterminate(context.checked) || context.checked === true,
1584
+ children: /* @__PURE__ */ jsx(
1585
+ Primitive.span,
1586
+ {
1587
+ "data-state": getState(context.checked),
1588
+ "data-disabled": context.disabled ? "" : void 0,
1589
+ ...indicatorProps,
1590
+ ref: forwardedRef,
1591
+ style: { pointerEvents: "none", ...props.style }
1592
+ }
1593
+ )
1594
+ }
1595
+ );
1596
+ }
1597
+ );
1598
+ CheckboxIndicator.displayName = INDICATOR_NAME;
1599
+ var BUBBLE_INPUT_NAME = "CheckboxBubbleInput";
1600
+ var CheckboxBubbleInput = React5.forwardRef(
1601
+ ({ __scopeCheckbox, ...props }, forwardedRef) => {
1602
+ const {
1603
+ control,
1604
+ hasConsumerStoppedPropagationRef,
1605
+ checked,
1606
+ defaultChecked,
1607
+ required,
1608
+ disabled,
1609
+ name,
1610
+ value,
1611
+ form,
1612
+ bubbleInput,
1613
+ setBubbleInput
1614
+ } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);
1615
+ const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
1616
+ const prevChecked = usePrevious(checked);
1617
+ const controlSize = useSize(control);
1618
+ React5.useEffect(() => {
1619
+ const input = bubbleInput;
1620
+ if (!input) return;
1621
+ const inputProto = window.HTMLInputElement.prototype;
1622
+ const descriptor = Object.getOwnPropertyDescriptor(
1623
+ inputProto,
1624
+ "checked"
1625
+ );
1626
+ const setChecked = descriptor.set;
1627
+ const bubbles = !hasConsumerStoppedPropagationRef.current;
1628
+ if (prevChecked !== checked && setChecked) {
1629
+ const event = new Event("click", { bubbles });
1630
+ input.indeterminate = isIndeterminate(checked);
1631
+ setChecked.call(input, isIndeterminate(checked) ? false : checked);
1632
+ input.dispatchEvent(event);
1633
+ }
1634
+ }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);
1635
+ const defaultCheckedRef = React5.useRef(isIndeterminate(checked) ? false : checked);
1636
+ return /* @__PURE__ */ jsx(
1637
+ Primitive.input,
1638
+ {
1639
+ type: "checkbox",
1640
+ "aria-hidden": true,
1641
+ defaultChecked: defaultChecked ?? defaultCheckedRef.current,
1642
+ required,
1643
+ disabled,
1644
+ name,
1645
+ value,
1646
+ form,
1647
+ ...props,
1648
+ tabIndex: -1,
1649
+ ref: composedRefs,
1650
+ style: {
1651
+ ...props.style,
1652
+ ...controlSize,
1653
+ position: "absolute",
1654
+ pointerEvents: "none",
1655
+ opacity: 0,
1656
+ margin: 0,
1657
+ // We transform because the input is absolutely positioned but we have
1658
+ // rendered it **after** the button. This pulls it back to sit on top
1659
+ // of the button.
1660
+ transform: "translateX(-100%)"
1661
+ }
1662
+ }
1663
+ );
1664
+ }
1665
+ );
1666
+ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
1667
+ function isFunction2(value) {
1668
+ return typeof value === "function";
1669
+ }
1670
+ function isIndeterminate(checked) {
1671
+ return checked === "indeterminate";
1672
+ }
1673
+ function getState(checked) {
1674
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
1675
+ }
1676
+ var checkboxVariants = cva(
1677
+ `
1678
+ group peer bg-background shrink-0 rounded-md border border-input ring-offset-background focus-visible:outline-none
1679
+ focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50
1680
+ aria-invalid:border-destructive/60 aria-invalid:ring-destructive/10 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/20
1681
+ [[data-invalid=true]_&]:border-destructive/60 [[data-invalid=true]_&]:ring-destructive/10 dark:[[data-invalid=true]_&]:border-destructive dark:[[data-invalid=true]_&]:ring-destructive/20,
1682
+ data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:border-primary data-[state=indeterminate]:text-primary-foreground
1683
+ `,
1684
+ {
1685
+ variants: {
1686
+ size: {
1687
+ sm: "size-4.5 [&_svg]:size-3",
1688
+ md: "size-5 [&_svg]:size-3.5",
1689
+ lg: "size-5.5 [&_svg]:size-4"
1690
+ }
1691
+ },
1692
+ defaultVariants: {
1693
+ size: "md"
1694
+ }
1695
+ }
1696
+ );
1697
+ function Checkbox2({
1698
+ className,
1699
+ size,
1700
+ ...props
1701
+ }) {
1702
+ return /* @__PURE__ */ jsx(
1703
+ Checkbox,
1704
+ {
1705
+ "data-slot": "checkbox",
1706
+ className: cn(checkboxVariants({ size }), className),
1707
+ ...props,
1708
+ children: /* @__PURE__ */ jsxs(
1709
+ CheckboxIndicator,
1710
+ {
1711
+ className: cn("flex items-center justify-center text-current"),
1712
+ children: [
1713
+ /* @__PURE__ */ jsx(Check, { className: "group-data-[state=indeterminate]:hidden" }),
1714
+ /* @__PURE__ */ jsx(Minus, { className: "hidden group-data-[state=indeterminate]:block" })
1715
+ ]
1716
+ }
1717
+ )
1718
+ }
1719
+ );
1720
+ }
1721
+ var Icons = {
1722
+ google: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1723
+ "path",
1724
+ {
1725
+ fill: "currentColor",
1726
+ d: "M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"
1727
+ }
1728
+ ) }),
1729
+ googleColorful: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", role: "img", ...props, children: [
1730
+ /* @__PURE__ */ jsx(
1731
+ "path",
1732
+ {
1733
+ d: "M16.2449 13.8184V18.4657H22.8349C22.5455 19.9602 21.6771 21.2257 20.3747 22.0766L24.3487 25.0985C26.6642 23.004 28 19.9276 28 16.273C28 15.4221 27.9221 14.6039 27.7773 13.8185L16.2449 13.8184Z",
1734
+ fill: "#4285F4"
1735
+ }
1736
+ ),
1737
+ /* @__PURE__ */ jsx(
1738
+ "path",
1739
+ {
1740
+ d: "M5.3137 10.6221C4.47886 12.2366 4.00024 14.0584 4.00024 16.0002C4.00024 17.942 4.47886 19.7639 5.3137 21.3784C5.3137 21.3892 9.388 18.2802 9.388 18.2802C9.14311 17.5602 8.99835 16.7966 8.99835 16.0001C8.99835 15.2036 9.14311 14.44 9.388 13.72L5.3137 10.6221Z",
1741
+ fill: "#FBBC05"
1742
+ }
1743
+ ),
1744
+ /* @__PURE__ */ jsx(
1745
+ "path",
1746
+ {
1747
+ d: "M16.2448 8.77821C18.0482 8.77821 19.6511 9.3891 20.9313 10.5673L24.4378 7.13097C22.3116 5.18917 19.551 4 16.2448 4C11.4582 4 7.32833 6.69456 5.31348 10.6219L9.38766 13.7201C10.3561 10.8837 13.0611 8.77821 16.2448 8.77821Z",
1748
+ fill: "#EA4335"
1749
+ }
1750
+ ),
1751
+ /* @__PURE__ */ jsx(
1752
+ "path",
1753
+ {
1754
+ d: "M9.38238 18.2842L8.48609 18.9566L5.31348 21.3784C7.32833 25.2947 11.4579 28.0002 16.2445 28.0002C19.5506 28.0002 22.3224 26.9311 24.3484 25.0984L20.3744 22.0766C19.2835 22.7966 17.892 23.233 16.2445 23.233C13.0609 23.233 10.3559 21.1275 9.38739 18.2911L9.38238 18.2842Z",
1755
+ fill: "#34A853"
1756
+ }
1757
+ )
1758
+ ] }),
1759
+ twitter: (props) => /* @__PURE__ */ jsx("svg", { ...props, viewBox: "0 0 1200 1227", children: /* @__PURE__ */ jsx(
1760
+ "path",
1761
+ {
1762
+ fill: "currentcolor",
1763
+ d: "M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z"
1764
+ }
1765
+ ) }),
1766
+ facebook: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 32 32", fill: "none", ...props, children: /* @__PURE__ */ jsx(
1767
+ "path",
1768
+ {
1769
+ d: "M16 4C9.4 4 4 9.42714 4 16.0603C4 22.0121 8.404 26.9568 14.08 28V19.4372H11.08V16.0603H14.08V13.407C14.08 10.392 16 8.70352 18.76 8.70352C19.6 8.70352 20.56 8.82412 21.4 8.94472V12.0201H19.84C18.4 12.0201 18.04 12.7437 18.04 13.7085V16.0603H21.22L20.68 19.4372H18.04V27.9879C23.71 26.9387 28 22.0121 28 16.0603C28 9.42714 22.6 4 16 4Z",
1770
+ fill: "currentColor"
1771
+ }
1772
+ ) }),
1773
+ facebookColorful: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 32 32", fill: "none", role: "img", ...props, children: [
1774
+ /* @__PURE__ */ jsx(
1775
+ "path",
1776
+ {
1777
+ d: "M16 4C9.4 4 4 9.42714 4 16.0603C4 22.0121 8.404 26.9568 14.08 28V19.4372H11.08V16.0603H14.08V13.407C14.08 10.392 16 8.70352 18.76 8.70352C19.6 8.70352 20.56 8.82412 21.4 8.94472V12.0201H19.84C18.4 12.0201 18.04 12.7437 18.04 13.7085V16.0603H21.22L20.68 19.4372H18.04V27.9879C23.71 26.9387 28 22.0121 28 16.0603C28 9.42714 22.6 4 16 4Z",
1778
+ fill: "url(#paint0_linear_177_3289)"
1779
+ }
1780
+ ),
1781
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
1782
+ "linearGradient",
1783
+ {
1784
+ id: "paint0_linear_177_3289",
1785
+ x1: "16",
1786
+ y1: "27.2824",
1787
+ x2: "16",
1788
+ y2: "4",
1789
+ gradientUnits: "userSpaceOnUse",
1790
+ children: [
1791
+ /* @__PURE__ */ jsx("stop", { stopColor: "#0062E0" }),
1792
+ /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#19AFFF" })
1793
+ ]
1794
+ }
1795
+ ) })
1796
+ ] }),
1797
+ linkedin: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 32 32", fill: "none", ...props, children: /* @__PURE__ */ jsx(
1798
+ "path",
1799
+ {
1800
+ d: "M16 4C9.4 4 4 9.42714 4 16.0603C4 22.0121 8.404 26.9568 14.08 28V19.4372H11.08V16.0603H14.08V13.407C14.08 10.392 16 8.70352 18.76 8.70352C19.6 8.70352 20.56 8.82412 21.4 8.94472V12.0201H19.84C18.4 12.0201 18.04 12.7437 18.04 13.7085V16.0603H21.22L20.68 19.4372H18.04V27.9879C23.71 26.9387 28 22.0121 28 16.0603C28 9.42714 22.6 4 16 4Z",
1801
+ fill: "currentColor"
1802
+ }
1803
+ ) }),
1804
+ linkedinColorful: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 32 32", fill: "none", ...props, children: /* @__PURE__ */ jsx(
1805
+ "path",
1806
+ {
1807
+ fillRule: "evenodd",
1808
+ clipRule: "evenodd",
1809
+ d: "M25.3333 4H6.66667C5.19333 4 4 5.19333 4 6.66667V25.3333C4 26.8067 5.19333 28 6.66667 28H25.3333C26.8067 28 28 26.8067 28 25.3333V6.66667C28 5.19333 26.8067 4 25.3333 4ZM11.2567 24.6667H7.67667V13.11H11.2567V24.6667ZM9.45 11.5967C8.28 11.5967 7.33333 10.6433 7.33333 9.46333C7.33333 8.28333 8.28 7.33 9.45 7.33C10.62 7.33 11.5667 8.28333 11.5667 9.46333C11.5667 10.6433 10.62 11.5967 9.45 11.5967ZM24.6667 24.6667H21.1067V18.6C21.1067 16.9367 20.4733 16.0067 19.16 16.0067C17.7267 16.0067 16.98 16.9733 16.98 18.6V24.6667H13.5467V13.11H16.98V14.6667C16.98 14.6667 18.0133 12.7567 20.4633 12.7567C22.9133 12.7567 24.67 14.2533 24.67 17.35V24.6667H24.6667Z",
1810
+ fill: "#0077B5"
1811
+ }
1812
+ ) }),
1813
+ github: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 438.549 438.549", ...props, children: /* @__PURE__ */ jsx(
1814
+ "path",
1815
+ {
1816
+ fill: "currentColor",
1817
+ d: "M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
1818
+ }
1819
+ ) }),
1820
+ radix: (props) => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 25 25", fill: "none", ...props, children: [
1821
+ /* @__PURE__ */ jsx(
1822
+ "path",
1823
+ {
1824
+ d: "M12 25C7.58173 25 4 21.4183 4 17C4 12.5817 7.58173 9 12 9V25Z",
1825
+ fill: "currentcolor"
1826
+ }
1827
+ ),
1828
+ /* @__PURE__ */ jsx("path", { d: "M12 0H4V8H12V0Z", fill: "currentcolor" }),
1829
+ /* @__PURE__ */ jsx(
1830
+ "path",
1831
+ {
1832
+ d: "M17 8C19.2091 8 21 6.20914 21 4C21 1.79086 19.2091 0 17 0C14.7909 0 13 1.79086 13 4C13 6.20914 14.7909 8 17 8Z",
1833
+ fill: "currentcolor"
1834
+ }
1835
+ )
1836
+ ] }),
1837
+ aria: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", ...props, children: /* @__PURE__ */ jsx("path", { d: "M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z" }) }),
1838
+ npm: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1839
+ "path",
1840
+ {
1841
+ d: "M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z",
1842
+ fill: "currentColor"
1843
+ }
1844
+ ) }),
1845
+ yarn: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1846
+ "path",
1847
+ {
1848
+ d: "M12 0C5.375 0 0 5.375 0 12s5.375 12 12 12 12-5.375 12-12S18.625 0 12 0zm.768 4.105c.183 0 .363.053.525.157.125.083.287.185.755 1.154.31-.088.468-.042.551-.019.204.056.366.19.463.375.477.917.542 2.553.334 3.605-.241 1.232-.755 2.029-1.131 2.576.324.329.778.899 1.117 1.825.278.774.31 1.478.273 2.015a5.51 5.51 0 0 0 .602-.329c.593-.366 1.487-.917 2.553-.931.714-.009 1.269.445 1.353 1.103a1.23 1.23 0 0 1-.945 1.362c-.649.158-.95.278-1.821.843-1.232.797-2.539 1.242-3.012 1.39a1.686 1.686 0 0 1-.704.343c-.737.181-3.266.315-3.466.315h-.046c-.783 0-1.214-.241-1.45-.491-.658.329-1.51.19-2.122-.134a1.078 1.078 0 0 1-.58-1.153 1.243 1.243 0 0 1-.153-.195c-.162-.25-.528-.936-.454-1.946.056-.723.556-1.367.88-1.71a5.522 5.522 0 0 1 .408-2.256c.306-.727.885-1.348 1.32-1.737-.32-.537-.644-1.367-.329-2.21.227-.602.412-.936.82-1.08h-.005c.199-.074.389-.153.486-.259a3.418 3.418 0 0 1 2.298-1.103c.037-.093.079-.185.125-.283.31-.658.639-1.029 1.024-1.168a.94.94 0 0 1 .328-.06zm.006.7c-.507.016-1.001 1.519-1.001 1.519s-1.27-.204-2.266.871c-.199.218-.468.334-.746.44-.079.028-.176.023-.417.672-.371.991.625 2.094.625 2.094s-1.186.839-1.626 1.881c-.486 1.144-.338 2.261-.338 2.261s-.843.732-.899 1.487c-.051.663.139 1.2.343 1.515.227.343.51.176.51.176s-.561.653-.037.931c.477.25 1.283.394 1.71-.037.31-.31.371-1.001.486-1.283.028-.065.12.111.209.199.097.093.264.195.264.195s-.755.324-.445 1.066c.102.246.468.403 1.066.398.222-.005 2.664-.139 3.313-.296.375-.088.505-.283.505-.283s1.566-.431 2.998-1.357c.917-.598 1.293-.76 2.034-.936.612-.148.57-1.098-.241-1.084-.839.009-1.575.44-2.196.825-1.163.718-1.742.672-1.742.672l-.018-.032c-.079-.13.371-1.293-.134-2.678-.547-1.515-1.413-1.881-1.344-1.997.297-.5 1.038-1.297 1.334-2.78.176-.899.13-2.377-.269-3.151-.074-.144-.732.241-.732.241s-.616-1.371-.788-1.483a.271.271 0 0 0-.157-.046z",
1849
+ fill: "currentColor"
1850
+ }
1851
+ ) }),
1852
+ pnpm: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1853
+ "path",
1854
+ {
1855
+ d: "M0 0v7.5h7.5V0zm8.25 0v7.5h7.498V0zm8.25 0v7.5H24V0zM8.25 8.25v7.5h7.498v-7.5zm8.25 0v7.5H24v-7.5zM0 16.5V24h7.5v-7.5zm8.25 0V24h7.498v-7.5zm8.25 0V24H24v-7.5z",
1856
+ fill: "currentColor"
1857
+ }
1858
+ ) }),
1859
+ react: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1860
+ "path",
1861
+ {
1862
+ d: "M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z",
1863
+ fill: "currentColor"
1864
+ }
1865
+ ) }),
1866
+ nextjs: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 15 15", ...props, children: /* @__PURE__ */ jsx(
1867
+ "path",
1868
+ {
1869
+ fill: "currentColor",
1870
+ fillRule: "evenodd",
1871
+ clipRule: "evenodd",
1872
+ d: "M0 7.5C0 3.35786 3.35786 0 7.5 0C11.6421 0 15 3.35786 15 7.5C15 10.087 13.6902 12.3681 11.6975 13.7163L4.90687 4.20942C4.78053 4.03255 4.5544 3.95756 4.34741 4.02389C4.14042 4.09022 4 4.28268 4 4.50004V12H5V6.06027L10.8299 14.2221C9.82661 14.7201 8.696 15 7.5 15C3.35786 15 0 11.6421 0 7.5ZM10 10V4H11V10H10Z"
1873
+ }
1874
+ ) }),
1875
+ prisma: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "-27 0 310 310", ...props, children: /* @__PURE__ */ jsx(
1876
+ "path",
1877
+ {
1878
+ fill: "currentColor",
1879
+ d: "M254.312882,235.518775 L148.000961,9.74987264 C145.309805,4.08935083 139.731924,0.359884549 133.472618,0.0359753113 C127.198908,-0.384374336 121.212054,2.71925839 117.939655,8.08838662 L2.63252565,194.847143 C-0.947129465,200.604248 -0.871814894,207.912774 2.8257217,213.594888 L59.2003287,300.896318 C63.5805009,307.626626 71.8662281,310.673635 79.5631922,308.384597 L243.161606,259.992851 C248.145475,258.535702 252.252801,254.989363 254.421072,250.271225 C256.559881,245.57581 256.523135,240.176915 254.32061,235.511047 L254.312882,235.518775 Z M230.511129,245.201761 L91.6881763,286.252058 C87.4533189,287.511696 83.388474,283.840971 84.269448,279.567474 L133.866738,42.0831633 C134.794079,37.6396542 140.929985,36.9364206 142.869673,41.0476325 L234.684164,236.021085 C235.505704,237.779423 235.515611,239.809427 234.711272,241.575701 C233.906934,243.341974 232.369115,244.667163 230.503401,245.201761 L230.511129,245.201761 Z",
1880
+ fillRule: "nonzero"
1881
+ }
1882
+ ) }),
1883
+ radixUi: (props) => /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "4 0 17 25", ...props, children: /* @__PURE__ */ jsx(
1884
+ "path",
1885
+ {
1886
+ d: "M12 25a8 8 0 1 1 0-16v16zM12 0H4v8h8V0zM17 8a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",
1887
+ fill: "currentcolor"
1888
+ }
1889
+ ) }),
1890
+ supabaseColorful: (props) => /* @__PURE__ */ jsxs("svg", { width: "109", height: "113", viewBox: "0 0 109 113", fill: "none", ...props, children: [
1891
+ /* @__PURE__ */ jsx(
1892
+ "path",
1893
+ {
1894
+ d: "M63.7076 110.284C60.8481 113.885 55.0502 111.912 54.9813 107.314L53.9738 40.0627L99.1935 40.0627C107.384 40.0627 111.952 49.5228 106.859 55.9374L63.7076 110.284Z",
1895
+ fill: "url(#paint0_linear)"
1896
+ }
1897
+ ),
1898
+ /* @__PURE__ */ jsx(
1899
+ "path",
1900
+ {
1901
+ d: "M63.7076 110.284C60.8481 113.885 55.0502 111.912 54.9813 107.314L53.9738 40.0627L99.1935 40.0627C107.384 40.0627 111.952 49.5228 106.859 55.9374L63.7076 110.284Z",
1902
+ fill: "url(#paint1_linear)",
1903
+ "fill-opacity": "0.2"
1904
+ }
1905
+ ),
1906
+ /* @__PURE__ */ jsx(
1907
+ "path",
1908
+ {
1909
+ d: "M45.317 2.07103C48.1765 -1.53037 53.9745 0.442937 54.0434 5.041L54.4849 72.2922H9.83113C1.64038 72.2922 -2.92775 62.8321 2.1655 56.4175L45.317 2.07103Z",
1910
+ fill: "#3ECF8E"
1911
+ }
1912
+ ),
1913
+ /* @__PURE__ */ jsxs("defs", { children: [
1914
+ /* @__PURE__ */ jsxs(
1915
+ "linearGradient",
1916
+ {
1917
+ id: "paint0_linear",
1918
+ x1: "53.9738",
1919
+ y1: "54.974",
1920
+ x2: "94.1635",
1921
+ y2: "71.8295",
1922
+ gradientUnits: "userSpaceOnUse",
1923
+ children: [
1924
+ /* @__PURE__ */ jsx("stop", { "stop-color": "#249361" }),
1925
+ /* @__PURE__ */ jsx("stop", { offset: "1", "stop-color": "#3ECF8E" })
1926
+ ]
1927
+ }
1928
+ ),
1929
+ /* @__PURE__ */ jsxs(
1930
+ "linearGradient",
1931
+ {
1932
+ id: "paint1_linear",
1933
+ x1: "36.1558",
1934
+ y1: "30.578",
1935
+ x2: "54.4844",
1936
+ y2: "65.0806",
1937
+ gradientUnits: "userSpaceOnUse",
1938
+ children: [
1939
+ /* @__PURE__ */ jsx("stop", {}),
1940
+ /* @__PURE__ */ jsx("stop", { offset: "1", "stop-opacity": "0" })
1941
+ ]
1942
+ }
1943
+ )
1944
+ ] })
1945
+ ] }),
1946
+ tailwind: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1947
+ "path",
1948
+ {
1949
+ d: "M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z",
1950
+ fill: "currentColor"
1951
+ }
1952
+ ) }),
1953
+ apple: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1954
+ "path",
1955
+ {
1956
+ d: "M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701",
1957
+ fill: "currentColor"
1958
+ }
1959
+ ) }),
1960
+ paypal: (props) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", ...props, children: /* @__PURE__ */ jsx(
1961
+ "path",
1962
+ {
1963
+ d: "M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944.901C5.026.382 5.474 0 5.998 0h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.304 2.42 1.012 4.287-.023.143-.047.288-.077.437-.983 5.05-4.349 6.797-8.647 6.797h-2.19c-.524 0-.968.382-1.05.9l-1.12 7.106zm14.146-14.42a3.35 3.35 0 0 0-.607-.541c-.013.076-.026.175-.041.254-.93 4.778-4.005 7.201-9.138 7.201h-2.19a.563.563 0 0 0-.556.479l-1.187 7.527h-.506l-.24 1.516a.56.56 0 0 0 .554.647h3.882c.46 0 .85-.334.922-.788.06-.26.76-4.852.816-5.09a.932.932 0 0 1 .923-.788h.58c3.76 0 6.705-1.528 7.565-5.946.36-1.847.174-3.388-.777-4.471z",
1964
+ fill: "currentColor"
1965
+ }
1966
+ ) }),
1967
+ postgresql: (props) => /* @__PURE__ */ jsx("svg", { fill: "currentColor", viewBox: "0 0 32 32", ...props, children: /* @__PURE__ */ jsx("path", { d: "M22.839 0c-1.245 0.011-2.479 0.188-3.677 0.536l-0.083 0.027c-0.751-0.131-1.516-0.203-2.276-0.219-1.573-0.027-2.923 0.353-4.011 0.989-1.073-0.369-3.297-1.016-5.641-0.885-1.629 0.088-3.411 0.583-4.735 1.979-1.312 1.391-2.009 3.547-1.864 6.485 0.041 0.807 0.271 2.124 0.656 3.837 0.38 1.709 0.917 3.709 1.589 5.537 0.672 1.823 1.405 3.463 2.552 4.577 0.572 0.557 1.364 1.032 2.296 0.991 0.652-0.027 1.24-0.313 1.751-0.735 0.249 0.328 0.516 0.468 0.755 0.599 0.308 0.167 0.599 0.281 0.907 0.355 0.552 0.14 1.495 0.323 2.599 0.135 0.375-0.063 0.771-0.187 1.167-0.359 0.016 0.437 0.032 0.869 0.047 1.307 0.057 1.38 0.095 2.656 0.505 3.776 0.068 0.183 0.251 1.12 0.969 1.953 0.724 0.833 2.129 1.349 3.739 1.005 1.131-0.24 2.573-0.677 3.532-2.041 0.948-1.344 1.375-3.276 1.459-6.412 0.020-0.172 0.047-0.312 0.072-0.448l0.224 0.021h0.027c1.208 0.052 2.521-0.12 3.62-0.631 0.968-0.448 1.703-0.901 2.239-1.708 0.131-0.199 0.281-0.443 0.319-0.86 0.041-0.411-0.199-1.063-0.595-1.364-0.791-0.604-1.291-0.375-1.828-0.26-0.525 0.115-1.063 0.176-1.599 0.192 1.541-2.593 2.645-5.353 3.276-7.792 0.375-1.443 0.584-2.771 0.599-3.932 0.021-1.161-0.077-2.187-0.771-3.077-2.177-2.776-5.235-3.548-7.599-3.573-0.073 0-0.145 0-0.219 0zM22.776 0.855c2.235-0.021 5.093 0.604 7.145 3.228 0.464 0.589 0.6 1.448 0.584 2.511s-0.213 2.328-0.573 3.719c-0.692 2.699-2.011 5.833-3.859 8.652 0.063 0.047 0.135 0.088 0.208 0.115 0.385 0.161 1.265 0.296 3.025-0.063 0.443-0.095 0.767-0.156 1.105 0.099 0.167 0.14 0.255 0.349 0.244 0.568-0.020 0.161-0.077 0.317-0.177 0.448-0.339 0.509-1.009 0.995-1.869 1.396-0.76 0.353-1.855 0.536-2.817 0.547-0.489 0.005-0.937-0.032-1.319-0.152l-0.020-0.004c-0.147 1.411-0.484 4.203-0.704 5.473-0.176 1.025-0.484 1.844-1.072 2.453-0.589 0.615-1.417 0.979-2.537 1.219-1.385 0.297-2.391-0.021-3.041-0.568s-0.948-1.276-1.125-1.719c-0.124-0.307-0.187-0.703-0.249-1.235-0.063-0.531-0.104-1.177-0.136-1.911-0.041-1.12-0.057-2.24-0.041-3.365-0.577 0.532-1.296 0.88-2.068 1.016-0.921 0.156-1.739 0-2.228-0.12-0.24-0.063-0.475-0.151-0.693-0.271-0.229-0.12-0.443-0.255-0.588-0.527-0.084-0.156-0.109-0.337-0.073-0.509 0.041-0.177 0.145-0.328 0.287-0.443 0.265-0.215 0.615-0.333 1.14-0.443 0.959-0.199 1.297-0.333 1.5-0.496 0.172-0.135 0.371-0.416 0.713-0.828 0-0.015 0-0.036-0.005-0.052-0.619-0.020-1.224-0.181-1.771-0.479-0.197 0.208-1.224 1.292-2.468 2.792-0.521 0.624-1.099 0.984-1.713 1.011-0.609 0.025-1.163-0.281-1.631-0.735-0.937-0.912-1.688-2.48-2.339-4.251s-1.177-3.744-1.557-5.421c-0.375-1.683-0.599-3.037-0.631-3.688-0.14-2.776 0.511-4.645 1.625-5.828s2.641-1.625 4.131-1.713c2.672-0.151 5.213 0.781 5.724 0.979 0.989-0.672 2.265-1.088 3.859-1.063 0.756 0.011 1.505 0.109 2.24 0.292l0.027-0.016c0.323-0.109 0.651-0.208 0.984-0.28 0.907-0.215 1.833-0.324 2.76-0.339zM22.979 1.745h-0.197c-0.76 0.009-1.527 0.099-2.271 0.26 1.661 0.735 2.916 1.864 3.801 3 0.615 0.781 1.12 1.64 1.505 2.557 0.152 0.355 0.251 0.651 0.303 0.88 0.031 0.115 0.047 0.213 0.057 0.312 0 0.052 0.005 0.105-0.021 0.193 0 0.005-0.005 0.016-0.005 0.021 0.043 1.167-0.249 1.957-0.287 3.072-0.025 0.808 0.183 1.756 0.235 2.792 0.047 0.973-0.072 2.041-0.703 3.093 0.052 0.063 0.099 0.125 0.151 0.193 1.672-2.636 2.88-5.547 3.521-8.032 0.344-1.339 0.525-2.552 0.541-3.509 0.016-0.959-0.161-1.657-0.391-1.948-1.792-2.287-4.213-2.871-6.24-2.885zM16.588 2.088c-1.572 0.005-2.703 0.48-3.561 1.193-0.887 0.74-1.48 1.745-1.865 2.781-0.464 1.224-0.625 2.411-0.688 3.219l0.021-0.011c0.475-0.265 1.099-0.536 1.771-0.687 0.667-0.157 1.391-0.204 2.041 0.052 0.657 0.249 1.193 0.848 1.391 1.749 0.939 4.344-0.291 5.959-0.744 7.177-0.172 0.443-0.323 0.891-0.443 1.349 0.057-0.011 0.115-0.027 0.172-0.032 0.323-0.025 0.572 0.079 0.719 0.141 0.459 0.192 0.771 0.588 0.943 1.041 0.041 0.12 0.072 0.244 0.093 0.38 0.016 0.052 0.027 0.109 0.027 0.167-0.052 1.661-0.048 3.323 0.015 4.984 0.032 0.719 0.079 1.349 0.136 1.849 0.057 0.495 0.135 0.875 0.188 1.005 0.171 0.427 0.421 0.984 0.875 1.364 0.448 0.381 1.093 0.631 2.276 0.381 1.025-0.224 1.656-0.527 2.077-0.964 0.423-0.443 0.672-1.052 0.833-1.984 0.245-1.401 0.729-5.464 0.787-6.224-0.025-0.579 0.057-1.021 0.245-1.36 0.187-0.344 0.479-0.557 0.735-0.672 0.124-0.057 0.244-0.093 0.343-0.125-0.104-0.145-0.213-0.291-0.323-0.432-0.364-0.443-0.667-0.937-0.891-1.463-0.104-0.22-0.219-0.439-0.344-0.647-0.176-0.317-0.4-0.719-0.635-1.172-0.469-0.896-0.979-1.989-1.245-3.052-0.265-1.063-0.301-2.161 0.376-2.932 0.599-0.688 1.656-0.973 3.233-0.812-0.047-0.141-0.072-0.261-0.151-0.443-0.359-0.844-0.828-1.636-1.391-2.355-1.339-1.713-3.511-3.412-6.859-3.469zM7.735 2.156c-0.167 0-0.339 0.005-0.505 0.016-1.349 0.079-2.62 0.468-3.532 1.432-0.911 0.969-1.509 2.547-1.38 5.167 0.027 0.5 0.24 1.885 0.609 3.536 0.371 1.652 0.896 3.595 1.527 5.313 0.629 1.713 1.391 3.208 2.12 3.916 0.364 0.349 0.681 0.495 0.968 0.485 0.287-0.016 0.636-0.183 1.063-0.693 0.776-0.937 1.579-1.844 2.412-2.729-1.199-1.047-1.787-2.629-1.552-4.203 0.135-0.984 0.156-1.907 0.135-2.636-0.015-0.708-0.063-1.176-0.063-1.473 0-0.011 0-0.016 0-0.027v-0.005l-0.005-0.009c0-1.537 0.272-3.057 0.792-4.5 0.375-0.996 0.928-2 1.76-2.819-0.817-0.271-2.271-0.676-3.843-0.755-0.167-0.011-0.339-0.016-0.505-0.016zM24.265 9.197c-0.905 0.016-1.411 0.251-1.681 0.552-0.376 0.433-0.412 1.193-0.177 2.131 0.233 0.937 0.719 1.984 1.172 2.855 0.224 0.437 0.443 0.828 0.619 1.145 0.183 0.323 0.313 0.547 0.391 0.745 0.073 0.177 0.157 0.333 0.24 0.479 0.349-0.74 0.412-1.464 0.375-2.224-0.047-0.937-0.265-1.896-0.229-2.864 0.037-1.136 0.261-1.876 0.277-2.751-0.324-0.041-0.657-0.068-0.985-0.068zM13.287 9.355c-0.276 0-0.552 0.036-0.823 0.099-0.537 0.131-1.052 0.328-1.537 0.599-0.161 0.088-0.317 0.188-0.463 0.303l-0.032 0.025c0.011 0.199 0.047 0.667 0.063 1.365 0.016 0.76 0 1.728-0.145 2.776-0.323 2.281 1.333 4.167 3.276 4.172 0.115-0.469 0.301-0.944 0.489-1.443 0.541-1.459 1.604-2.521 0.708-6.677-0.145-0.677-0.437-0.953-0.839-1.109-0.224-0.079-0.457-0.115-0.697-0.109zM23.844 9.625h0.068c0.083 0.005 0.167 0.011 0.239 0.031 0.068 0.016 0.131 0.037 0.183 0.073 0.052 0.031 0.088 0.083 0.099 0.145v0.011c0 0.063-0.016 0.125-0.047 0.183-0.041 0.072-0.088 0.14-0.145 0.197-0.136 0.151-0.319 0.251-0.516 0.281-0.193 0.027-0.385-0.025-0.547-0.135-0.063-0.048-0.125-0.1-0.172-0.157-0.047-0.047-0.073-0.109-0.084-0.172-0.004-0.061 0.011-0.124 0.052-0.171 0.048-0.048 0.1-0.089 0.157-0.12 0.129-0.073 0.301-0.125 0.5-0.152 0.072-0.009 0.145-0.015 0.213-0.020zM13.416 9.849c0.068 0 0.147 0.005 0.22 0.015 0.208 0.032 0.385 0.084 0.525 0.167 0.068 0.032 0.131 0.084 0.177 0.141 0.052 0.063 0.077 0.14 0.073 0.224-0.016 0.077-0.048 0.151-0.1 0.208-0.057 0.068-0.119 0.125-0.192 0.172-0.172 0.125-0.385 0.177-0.599 0.151-0.215-0.036-0.412-0.14-0.557-0.301-0.063-0.068-0.115-0.141-0.157-0.219-0.047-0.073-0.067-0.156-0.057-0.24 0.021-0.14 0.141-0.219 0.256-0.26 0.131-0.043 0.271-0.057 0.411-0.052zM25.495 19.64h-0.005c-0.192 0.073-0.353 0.1-0.489 0.163-0.14 0.052-0.251 0.156-0.317 0.285-0.089 0.152-0.156 0.423-0.136 0.885 0.057 0.043 0.125 0.073 0.199 0.095 0.224 0.068 0.609 0.115 1.036 0.109 0.849-0.011 1.896-0.208 2.453-0.469 0.453-0.208 0.88-0.489 1.255-0.817-1.859 0.38-2.905 0.281-3.552 0.016-0.156-0.068-0.307-0.157-0.443-0.267zM14.787 19.765h-0.027c-0.072 0.005-0.172 0.032-0.375 0.251-0.464 0.52-0.625 0.848-1.005 1.151-0.385 0.307-0.88 0.469-1.875 0.672-0.312 0.063-0.495 0.135-0.615 0.192 0.036 0.032 0.036 0.043 0.093 0.068 0.147 0.084 0.333 0.152 0.485 0.193 0.427 0.104 1.124 0.229 1.859 0.104 0.729-0.125 1.489-0.475 2.141-1.385 0.115-0.156 0.124-0.391 0.031-0.641-0.093-0.244-0.297-0.463-0.437-0.52-0.089-0.043-0.183-0.068-0.276-0.084z" }) })
1968
+ };
1969
+ var MOBILE_BREAKPOINT = 992;
1970
+ function useIsMobile() {
1971
+ const [isMobile, setIsMobile] = React5.useState(
1972
+ void 0
1973
+ );
1974
+ React5.useEffect(() => {
1975
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
1976
+ const onChange = () => {
1977
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
1978
+ };
1979
+ mql.addEventListener("change", onChange);
1980
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
1981
+ return () => mql.removeEventListener("change", onChange);
1982
+ }, []);
1983
+ return !!isMobile;
1984
+ }
1985
+ function useCopyToClipboard({
1986
+ timeout = 2e3,
1987
+ onCopy
1988
+ } = {}) {
1989
+ const [isCopied, setIsCopied] = React5.useState(false);
1990
+ const copyToClipboard = (value) => {
1991
+ if (typeof window === "undefined" || !navigator.clipboard.writeText) {
1992
+ return;
1993
+ }
1994
+ if (!value) return;
1995
+ navigator.clipboard.writeText(value).then(() => {
1996
+ setIsCopied(true);
1997
+ if (onCopy) {
1998
+ onCopy();
1999
+ }
2000
+ setTimeout(() => {
2001
+ setIsCopied(false);
2002
+ }, timeout);
2003
+ }, console.error);
2004
+ };
2005
+ return { isCopied, copyToClipboard };
2006
+ }
2007
+ function useMounted() {
2008
+ const [mounted, setMounted] = React5.useState(false);
2009
+ React5.useEffect(() => {
2010
+ setMounted(true);
2011
+ }, []);
2012
+ return mounted;
2013
+ }
2014
+ /*! Bundled license information:
2015
+
2016
+ use-sync-external-store/cjs/use-sync-external-store-shim.production.js:
2017
+ (**
2018
+ * @license React
2019
+ * use-sync-external-store-shim.production.js
2020
+ *
2021
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
2022
+ *
2023
+ * This source code is licensed under the MIT license found in the
2024
+ * LICENSE file in the root directory of this source tree.
2025
+ *)
2026
+
2027
+ use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
2028
+ (**
2029
+ * @license React
2030
+ * use-sync-external-store-shim.development.js
2031
+ *
2032
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
2033
+ *
2034
+ * This source code is licensed under the MIT license found in the
2035
+ * LICENSE file in the root directory of this source tree.
2036
+ *)
2037
+ */
2038
+
2039
+ export { Avatar2 as Avatar, AvatarFallback2 as AvatarFallback, AvatarImage2 as AvatarImage, AvatarIndicator, AvatarStatus, Badge, BadgeButton, BadgeDot, Button, ButtonArrow, Checkbox2 as Checkbox, Icons, avatarStatusVariants, badgeVariants, buttonVariants, cn, useCopyToClipboard, useIsMobile, useMounted };
2040
+ //# sourceMappingURL=index.js.map
2041
+ //# sourceMappingURL=index.js.map