@algenium/blocks 1.7.0 → 1.8.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.cjs +155 -171
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -9
- package/dist/index.d.ts +12 -9
- package/dist/index.js +154 -170
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -215,16 +215,16 @@ type ThemeSwitcherProps = {
|
|
|
215
215
|
align?: "start" | "center" | "end";
|
|
216
216
|
/** Dropdown side (for mini variant) */
|
|
217
217
|
side?: "top" | "bottom" | "left" | "right";
|
|
218
|
-
/**
|
|
218
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
219
219
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
220
|
-
/**
|
|
220
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
221
221
|
tooltipAlign?: "start" | "center" | "end";
|
|
222
|
-
/**
|
|
222
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
223
223
|
tooltipSideOffset?: number;
|
|
224
224
|
/** Translation labels - consumers can pass their own t() values */
|
|
225
225
|
labels?: ThemeSwitcherLabels;
|
|
226
226
|
};
|
|
227
|
-
declare function ThemeSwitcher({ className, size, shape, variant, align, side,
|
|
227
|
+
declare function ThemeSwitcher({ className, size, shape, variant, align, side, labels: userLabels, }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
228
228
|
|
|
229
229
|
type Language = {
|
|
230
230
|
/** Language key/code (e.g., "en", "es") */
|
|
@@ -274,14 +274,14 @@ type LanguageSwitcherProps = {
|
|
|
274
274
|
align?: "start" | "center" | "end";
|
|
275
275
|
/** Dropdown side */
|
|
276
276
|
side?: "top" | "bottom" | "left" | "right";
|
|
277
|
-
/**
|
|
277
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
278
278
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
279
|
-
/**
|
|
279
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
280
280
|
tooltipAlign?: "start" | "center" | "end";
|
|
281
|
-
/**
|
|
281
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
282
282
|
tooltipSideOffset?: number;
|
|
283
283
|
};
|
|
284
|
-
declare function LanguageSwitcher({ languages: propLanguages, currentLanguage: propCurrentLanguage, onLanguageChange: propOnLanguageChange, labels, className, size, shape, variant, showIcon, align, side,
|
|
284
|
+
declare function LanguageSwitcher({ languages: propLanguages, currentLanguage: propCurrentLanguage, onLanguageChange: propOnLanguageChange, labels, className, size, shape, variant, showIcon, align, side, }: LanguageSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
285
285
|
|
|
286
286
|
type EnvironmentSwitcherLabels = {
|
|
287
287
|
/** Tooltip / aria for the control */
|
|
@@ -336,11 +336,14 @@ type EnvironmentSwitcherProps = {
|
|
|
336
336
|
variant?: "default" | "mini";
|
|
337
337
|
align?: "start" | "center" | "end";
|
|
338
338
|
side?: "top" | "bottom" | "left" | "right";
|
|
339
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
339
340
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
341
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
340
342
|
tooltipAlign?: "start" | "center" | "end";
|
|
343
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
341
344
|
tooltipSideOffset?: number;
|
|
342
345
|
};
|
|
343
|
-
declare function EnvironmentSwitcher({ className, environment: propEnvironment, onEnvironmentChange: propOnEnvironmentChange, environments: propEnvironments, labels: userLabels, size, shape, variant, align, side,
|
|
346
|
+
declare function EnvironmentSwitcher({ className, environment: propEnvironment, onEnvironmentChange: propOnEnvironmentChange, environments: propEnvironments, labels: userLabels, size, shape, variant, align, side, }: EnvironmentSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
344
347
|
|
|
345
348
|
type EnvironmentBannerLabels = {
|
|
346
349
|
stagingMessage?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -215,16 +215,16 @@ type ThemeSwitcherProps = {
|
|
|
215
215
|
align?: "start" | "center" | "end";
|
|
216
216
|
/** Dropdown side (for mini variant) */
|
|
217
217
|
side?: "top" | "bottom" | "left" | "right";
|
|
218
|
-
/**
|
|
218
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
219
219
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
220
|
-
/**
|
|
220
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
221
221
|
tooltipAlign?: "start" | "center" | "end";
|
|
222
|
-
/**
|
|
222
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
223
223
|
tooltipSideOffset?: number;
|
|
224
224
|
/** Translation labels - consumers can pass their own t() values */
|
|
225
225
|
labels?: ThemeSwitcherLabels;
|
|
226
226
|
};
|
|
227
|
-
declare function ThemeSwitcher({ className, size, shape, variant, align, side,
|
|
227
|
+
declare function ThemeSwitcher({ className, size, shape, variant, align, side, labels: userLabels, }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
228
228
|
|
|
229
229
|
type Language = {
|
|
230
230
|
/** Language key/code (e.g., "en", "es") */
|
|
@@ -274,14 +274,14 @@ type LanguageSwitcherProps = {
|
|
|
274
274
|
align?: "start" | "center" | "end";
|
|
275
275
|
/** Dropdown side */
|
|
276
276
|
side?: "top" | "bottom" | "left" | "right";
|
|
277
|
-
/**
|
|
277
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
278
278
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
279
|
-
/**
|
|
279
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
280
280
|
tooltipAlign?: "start" | "center" | "end";
|
|
281
|
-
/**
|
|
281
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
282
282
|
tooltipSideOffset?: number;
|
|
283
283
|
};
|
|
284
|
-
declare function LanguageSwitcher({ languages: propLanguages, currentLanguage: propCurrentLanguage, onLanguageChange: propOnLanguageChange, labels, className, size, shape, variant, showIcon, align, side,
|
|
284
|
+
declare function LanguageSwitcher({ languages: propLanguages, currentLanguage: propCurrentLanguage, onLanguageChange: propOnLanguageChange, labels, className, size, shape, variant, showIcon, align, side, }: LanguageSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
285
285
|
|
|
286
286
|
type EnvironmentSwitcherLabels = {
|
|
287
287
|
/** Tooltip / aria for the control */
|
|
@@ -336,11 +336,14 @@ type EnvironmentSwitcherProps = {
|
|
|
336
336
|
variant?: "default" | "mini";
|
|
337
337
|
align?: "start" | "center" | "end";
|
|
338
338
|
side?: "top" | "bottom" | "left" | "right";
|
|
339
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
339
340
|
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
341
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
340
342
|
tooltipAlign?: "start" | "center" | "end";
|
|
343
|
+
/** @deprecated No longer used; mini variant no longer renders a tooltip. */
|
|
341
344
|
tooltipSideOffset?: number;
|
|
342
345
|
};
|
|
343
|
-
declare function EnvironmentSwitcher({ className, environment: propEnvironment, onEnvironmentChange: propOnEnvironmentChange, environments: propEnvironments, labels: userLabels, size, shape, variant, align, side,
|
|
346
|
+
declare function EnvironmentSwitcher({ className, environment: propEnvironment, onEnvironmentChange: propOnEnvironmentChange, environments: propEnvironments, labels: userLabels, size, shape, variant, align, side, }: EnvironmentSwitcherProps): react_jsx_runtime.JSX.Element;
|
|
344
347
|
|
|
345
348
|
type EnvironmentBannerLabels = {
|
|
346
349
|
stagingMessage?: string;
|
package/dist/index.js
CHANGED
|
@@ -6,13 +6,13 @@ import { AnimatePresence, motion } from 'framer-motion';
|
|
|
6
6
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { Slot } from '@radix-ui/react-slot';
|
|
9
|
-
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
10
9
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
11
10
|
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
12
11
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
13
12
|
import { Drawer as Drawer$1 } from 'vaul';
|
|
14
13
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
15
14
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
15
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
16
16
|
import { startOfMonth, endOfMonth, eachDayOfInterval, endOfWeek, startOfWeek, format, isSameDay, subMonths, addMonths } from 'date-fns';
|
|
17
17
|
import { DayPicker } from 'react-day-picker';
|
|
18
18
|
import valid from 'card-validator';
|
|
@@ -3084,6 +3084,11 @@ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
|
3084
3084
|
function cn(...inputs) {
|
|
3085
3085
|
return twMerge(clsx(inputs));
|
|
3086
3086
|
}
|
|
3087
|
+
var miniMenuContentClassName = "max-h-none overflow-x-visible overflow-y-visible";
|
|
3088
|
+
var miniMenuContentDefaults = {
|
|
3089
|
+
sideOffset: 8,
|
|
3090
|
+
collisionPadding: 12
|
|
3091
|
+
};
|
|
3087
3092
|
function DropdownMenu({
|
|
3088
3093
|
...props
|
|
3089
3094
|
}) {
|
|
@@ -3382,52 +3387,6 @@ function Button({
|
|
|
3382
3387
|
}
|
|
3383
3388
|
);
|
|
3384
3389
|
}
|
|
3385
|
-
function TooltipProvider({
|
|
3386
|
-
delayDuration = 0,
|
|
3387
|
-
...props
|
|
3388
|
-
}) {
|
|
3389
|
-
return /* @__PURE__ */ jsx(
|
|
3390
|
-
TooltipPrimitive.Provider,
|
|
3391
|
-
{
|
|
3392
|
-
"data-slot": "tooltip-provider",
|
|
3393
|
-
delayDuration,
|
|
3394
|
-
...props
|
|
3395
|
-
}
|
|
3396
|
-
);
|
|
3397
|
-
}
|
|
3398
|
-
function Tooltip({
|
|
3399
|
-
...props
|
|
3400
|
-
}) {
|
|
3401
|
-
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
3402
|
-
}
|
|
3403
|
-
function TooltipTrigger({
|
|
3404
|
-
...props
|
|
3405
|
-
}) {
|
|
3406
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
3407
|
-
}
|
|
3408
|
-
function TooltipContent({
|
|
3409
|
-
className,
|
|
3410
|
-
sideOffset = 0,
|
|
3411
|
-
children,
|
|
3412
|
-
...props
|
|
3413
|
-
}) {
|
|
3414
|
-
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
3415
|
-
TooltipPrimitive.Content,
|
|
3416
|
-
{
|
|
3417
|
-
"data-slot": "tooltip-content",
|
|
3418
|
-
sideOffset,
|
|
3419
|
-
className: cn(
|
|
3420
|
-
"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
3421
|
-
className
|
|
3422
|
-
),
|
|
3423
|
-
...props,
|
|
3424
|
-
children: [
|
|
3425
|
-
children,
|
|
3426
|
-
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
3427
|
-
]
|
|
3428
|
-
}
|
|
3429
|
-
) });
|
|
3430
|
-
}
|
|
3431
3390
|
var defaultLabels = {
|
|
3432
3391
|
theme: "Theme",
|
|
3433
3392
|
system: "System",
|
|
@@ -3471,11 +3430,8 @@ function ThemeSwitcher({
|
|
|
3471
3430
|
size = "sm",
|
|
3472
3431
|
shape = "rounded",
|
|
3473
3432
|
variant = "default",
|
|
3474
|
-
align = "
|
|
3475
|
-
side = "
|
|
3476
|
-
tooltipSide = "bottom",
|
|
3477
|
-
tooltipAlign = "center",
|
|
3478
|
-
tooltipSideOffset = 8,
|
|
3433
|
+
align = "end",
|
|
3434
|
+
side = "bottom",
|
|
3479
3435
|
labels: userLabels
|
|
3480
3436
|
}) {
|
|
3481
3437
|
const { theme, setTheme } = useTheme();
|
|
@@ -3509,43 +3465,42 @@ function ThemeSwitcher({
|
|
|
3509
3465
|
const CurrentIcon = themes.find((t) => t.key === currentTheme)?.icon || Monitor;
|
|
3510
3466
|
if (variant === "mini") {
|
|
3511
3467
|
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
3512
|
-
/* @__PURE__ */
|
|
3513
|
-
|
|
3514
|
-
Button,
|
|
3515
|
-
{
|
|
3516
|
-
"data-testid": "theme-switcher",
|
|
3517
|
-
variant: "ghost",
|
|
3518
|
-
size: "icon",
|
|
3519
|
-
"aria-label": labels.theme,
|
|
3520
|
-
className: cn(sizes.buttonMini, shapeClass, className),
|
|
3521
|
-
children: /* @__PURE__ */ jsx(CurrentIcon, { className: sizes.iconMini })
|
|
3522
|
-
}
|
|
3523
|
-
) }) }),
|
|
3524
|
-
/* @__PURE__ */ jsx(
|
|
3525
|
-
TooltipContent,
|
|
3526
|
-
{
|
|
3527
|
-
side: tooltipSide,
|
|
3528
|
-
align: tooltipAlign,
|
|
3529
|
-
sideOffset: tooltipSideOffset,
|
|
3530
|
-
children: labels.theme
|
|
3531
|
-
}
|
|
3532
|
-
)
|
|
3533
|
-
] }),
|
|
3534
|
-
/* @__PURE__ */ jsx(DropdownMenuContent, { side, align, sideOffset: 8, children: themes.map(({ key, icon: Icon }) => /* @__PURE__ */ jsxs(
|
|
3535
|
-
DropdownMenuItem,
|
|
3468
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
3469
|
+
Button,
|
|
3536
3470
|
{
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
),
|
|
3542
|
-
children:
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3471
|
+
"data-testid": "theme-switcher",
|
|
3472
|
+
variant: "ghost",
|
|
3473
|
+
size: "icon",
|
|
3474
|
+
"aria-label": labels.theme,
|
|
3475
|
+
className: cn(sizes.buttonMini, shapeClass, className),
|
|
3476
|
+
children: /* @__PURE__ */ jsx(CurrentIcon, { className: sizes.iconMini })
|
|
3477
|
+
}
|
|
3478
|
+
) }),
|
|
3479
|
+
/* @__PURE__ */ jsx(
|
|
3480
|
+
DropdownMenuContent,
|
|
3481
|
+
{
|
|
3482
|
+
side,
|
|
3483
|
+
align,
|
|
3484
|
+
sideOffset: miniMenuContentDefaults.sideOffset,
|
|
3485
|
+
collisionPadding: miniMenuContentDefaults.collisionPadding,
|
|
3486
|
+
className: miniMenuContentClassName,
|
|
3487
|
+
children: themes.map(({ key, icon: Icon }) => /* @__PURE__ */ jsxs(
|
|
3488
|
+
DropdownMenuItem,
|
|
3489
|
+
{
|
|
3490
|
+
onClick: () => handleThemeClick(key),
|
|
3491
|
+
className: cn(
|
|
3492
|
+
"gap-2 cursor-pointer",
|
|
3493
|
+
currentTheme === key && "bg-accent text-accent-foreground [&_svg]:text-accent-foreground"
|
|
3494
|
+
),
|
|
3495
|
+
children: [
|
|
3496
|
+
/* @__PURE__ */ jsx(Icon, { className: "h-4 w-4" }),
|
|
3497
|
+
/* @__PURE__ */ jsx("span", { children: labels[key] })
|
|
3498
|
+
]
|
|
3499
|
+
},
|
|
3500
|
+
key
|
|
3501
|
+
))
|
|
3502
|
+
}
|
|
3503
|
+
)
|
|
3549
3504
|
] });
|
|
3550
3505
|
}
|
|
3551
3506
|
return /* @__PURE__ */ jsx(
|
|
@@ -3639,11 +3594,8 @@ function LanguageSwitcher({
|
|
|
3639
3594
|
shape = "rounded",
|
|
3640
3595
|
variant = "default",
|
|
3641
3596
|
showIcon = true,
|
|
3642
|
-
align = "
|
|
3643
|
-
side = "
|
|
3644
|
-
tooltipSide = "bottom",
|
|
3645
|
-
tooltipAlign = "center",
|
|
3646
|
-
tooltipSideOffset = 8
|
|
3597
|
+
align = "end",
|
|
3598
|
+
side = "bottom"
|
|
3647
3599
|
}) {
|
|
3648
3600
|
const context = useLanguageContext();
|
|
3649
3601
|
const contextLanguages = context?.languages?.map((lang) => ({
|
|
@@ -3661,34 +3613,24 @@ function LanguageSwitcher({
|
|
|
3661
3613
|
};
|
|
3662
3614
|
if (variant === "mini") {
|
|
3663
3615
|
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
3664
|
-
/* @__PURE__ */
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
) }) }),
|
|
3675
|
-
/* @__PURE__ */ jsx(
|
|
3676
|
-
TooltipContent,
|
|
3677
|
-
{
|
|
3678
|
-
side: tooltipSide,
|
|
3679
|
-
align: tooltipAlign,
|
|
3680
|
-
sideOffset: tooltipSideOffset,
|
|
3681
|
-
children: defaultLabels4.language
|
|
3682
|
-
}
|
|
3683
|
-
)
|
|
3684
|
-
] }),
|
|
3616
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
3617
|
+
Button,
|
|
3618
|
+
{
|
|
3619
|
+
variant: "ghost",
|
|
3620
|
+
size: "icon",
|
|
3621
|
+
"aria-label": defaultLabels4.language,
|
|
3622
|
+
className: cn(sizes.buttonMini, shapeClass, className),
|
|
3623
|
+
children: /* @__PURE__ */ jsx(Languages, { className: sizes.iconMini })
|
|
3624
|
+
}
|
|
3625
|
+
) }),
|
|
3685
3626
|
/* @__PURE__ */ jsx(
|
|
3686
3627
|
DropdownMenuContent,
|
|
3687
3628
|
{
|
|
3688
3629
|
side,
|
|
3689
3630
|
align,
|
|
3690
|
-
sideOffset:
|
|
3691
|
-
|
|
3631
|
+
sideOffset: miniMenuContentDefaults.sideOffset,
|
|
3632
|
+
collisionPadding: miniMenuContentDefaults.collisionPadding,
|
|
3633
|
+
className: cn(miniMenuContentClassName, "min-w-0 w-auto"),
|
|
3692
3634
|
children: languages.map(({ key, nativeName }) => /* @__PURE__ */ jsx(
|
|
3693
3635
|
DropdownMenuItem,
|
|
3694
3636
|
{
|
|
@@ -3888,10 +3830,7 @@ function EnvironmentSwitcher({
|
|
|
3888
3830
|
shape = "rounded",
|
|
3889
3831
|
variant = "mini",
|
|
3890
3832
|
align = "end",
|
|
3891
|
-
side = "bottom"
|
|
3892
|
-
tooltipSide = "bottom",
|
|
3893
|
-
tooltipAlign = "center",
|
|
3894
|
-
tooltipSideOffset = 8
|
|
3833
|
+
side = "bottom"
|
|
3895
3834
|
}) {
|
|
3896
3835
|
const ctx = useEnvironmentContext();
|
|
3897
3836
|
const labels = { ...defaultLabels2, ...userLabels };
|
|
@@ -3907,53 +3846,18 @@ function EnvironmentSwitcher({
|
|
|
3907
3846
|
};
|
|
3908
3847
|
if (variant === "mini") {
|
|
3909
3848
|
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
3910
|
-
/* @__PURE__ */
|
|
3911
|
-
|
|
3912
|
-
Button,
|
|
3913
|
-
{
|
|
3914
|
-
"data-testid": "environment-switcher",
|
|
3915
|
-
variant: "outline",
|
|
3916
|
-
size: "sm",
|
|
3917
|
-
"aria-label": labels.environment,
|
|
3918
|
-
className: cn(
|
|
3919
|
-
sizes.buttonMini,
|
|
3920
|
-
shapeClass,
|
|
3921
|
-
"font-medium tabular-nums border-border bg-background",
|
|
3922
|
-
className
|
|
3923
|
-
),
|
|
3924
|
-
children: [
|
|
3925
|
-
/* @__PURE__ */ jsx(
|
|
3926
|
-
"span",
|
|
3927
|
-
{
|
|
3928
|
-
className: cn(
|
|
3929
|
-
"rounded-full shrink-0 ring-1 ring-background",
|
|
3930
|
-
sizes.dot,
|
|
3931
|
-
getEnvironmentDotClass(environment)
|
|
3932
|
-
),
|
|
3933
|
-
"aria-hidden": true
|
|
3934
|
-
}
|
|
3935
|
-
),
|
|
3936
|
-
/* @__PURE__ */ jsx("span", { className: "max-w-[5.5rem] truncate", children: getEnvironmentLabel(environment, labels) })
|
|
3937
|
-
]
|
|
3938
|
-
}
|
|
3939
|
-
) }) }),
|
|
3940
|
-
/* @__PURE__ */ jsx(
|
|
3941
|
-
TooltipContent,
|
|
3942
|
-
{
|
|
3943
|
-
side: tooltipSide,
|
|
3944
|
-
align: tooltipAlign,
|
|
3945
|
-
sideOffset: tooltipSideOffset,
|
|
3946
|
-
children: labels.environment
|
|
3947
|
-
}
|
|
3948
|
-
)
|
|
3949
|
-
] }),
|
|
3950
|
-
/* @__PURE__ */ jsx(DropdownMenuContent, { side, align, sideOffset: 8, children: environments.map((env) => /* @__PURE__ */ jsxs(
|
|
3951
|
-
DropdownMenuItem,
|
|
3849
|
+
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
3850
|
+
Button,
|
|
3952
3851
|
{
|
|
3953
|
-
|
|
3852
|
+
"data-testid": "environment-switcher",
|
|
3853
|
+
variant: "outline",
|
|
3854
|
+
size: "sm",
|
|
3855
|
+
"aria-label": labels.environment,
|
|
3954
3856
|
className: cn(
|
|
3955
|
-
|
|
3956
|
-
|
|
3857
|
+
sizes.buttonMini,
|
|
3858
|
+
shapeClass,
|
|
3859
|
+
"font-medium tabular-nums border-border bg-background",
|
|
3860
|
+
className
|
|
3957
3861
|
),
|
|
3958
3862
|
children: [
|
|
3959
3863
|
/* @__PURE__ */ jsx(
|
|
@@ -3962,16 +3866,50 @@ function EnvironmentSwitcher({
|
|
|
3962
3866
|
className: cn(
|
|
3963
3867
|
"rounded-full shrink-0 ring-1 ring-background",
|
|
3964
3868
|
sizes.dot,
|
|
3965
|
-
getEnvironmentDotClass(
|
|
3869
|
+
getEnvironmentDotClass(environment)
|
|
3966
3870
|
),
|
|
3967
3871
|
"aria-hidden": true
|
|
3968
3872
|
}
|
|
3969
3873
|
),
|
|
3970
|
-
/* @__PURE__ */ jsx("span", { children: getEnvironmentLabel(
|
|
3874
|
+
/* @__PURE__ */ jsx("span", { className: "max-w-[5.5rem] truncate", children: getEnvironmentLabel(environment, labels) })
|
|
3971
3875
|
]
|
|
3972
|
-
}
|
|
3973
|
-
|
|
3974
|
-
|
|
3876
|
+
}
|
|
3877
|
+
) }),
|
|
3878
|
+
/* @__PURE__ */ jsx(
|
|
3879
|
+
DropdownMenuContent,
|
|
3880
|
+
{
|
|
3881
|
+
side,
|
|
3882
|
+
align,
|
|
3883
|
+
sideOffset: miniMenuContentDefaults.sideOffset,
|
|
3884
|
+
collisionPadding: miniMenuContentDefaults.collisionPadding,
|
|
3885
|
+
className: miniMenuContentClassName,
|
|
3886
|
+
children: environments.map((env) => /* @__PURE__ */ jsxs(
|
|
3887
|
+
DropdownMenuItem,
|
|
3888
|
+
{
|
|
3889
|
+
onClick: () => handleSelect(env),
|
|
3890
|
+
className: cn(
|
|
3891
|
+
"gap-2 cursor-pointer",
|
|
3892
|
+
environment === env && "bg-accent text-accent-foreground [&_svg]:text-accent-foreground"
|
|
3893
|
+
),
|
|
3894
|
+
children: [
|
|
3895
|
+
/* @__PURE__ */ jsx(
|
|
3896
|
+
"span",
|
|
3897
|
+
{
|
|
3898
|
+
className: cn(
|
|
3899
|
+
"rounded-full shrink-0 ring-1 ring-background",
|
|
3900
|
+
sizes.dot,
|
|
3901
|
+
getEnvironmentDotClass(env)
|
|
3902
|
+
),
|
|
3903
|
+
"aria-hidden": true
|
|
3904
|
+
}
|
|
3905
|
+
),
|
|
3906
|
+
/* @__PURE__ */ jsx("span", { children: getEnvironmentLabel(env, labels) })
|
|
3907
|
+
]
|
|
3908
|
+
},
|
|
3909
|
+
env
|
|
3910
|
+
))
|
|
3911
|
+
}
|
|
3912
|
+
)
|
|
3975
3913
|
] });
|
|
3976
3914
|
}
|
|
3977
3915
|
return /* @__PURE__ */ jsxs(
|
|
@@ -5829,6 +5767,52 @@ function UpcomingEvents({
|
|
|
5829
5767
|
);
|
|
5830
5768
|
}) });
|
|
5831
5769
|
}
|
|
5770
|
+
function TooltipProvider({
|
|
5771
|
+
delayDuration = 0,
|
|
5772
|
+
...props
|
|
5773
|
+
}) {
|
|
5774
|
+
return /* @__PURE__ */ jsx(
|
|
5775
|
+
TooltipPrimitive.Provider,
|
|
5776
|
+
{
|
|
5777
|
+
"data-slot": "tooltip-provider",
|
|
5778
|
+
delayDuration,
|
|
5779
|
+
...props
|
|
5780
|
+
}
|
|
5781
|
+
);
|
|
5782
|
+
}
|
|
5783
|
+
function Tooltip({
|
|
5784
|
+
...props
|
|
5785
|
+
}) {
|
|
5786
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
5787
|
+
}
|
|
5788
|
+
function TooltipTrigger({
|
|
5789
|
+
...props
|
|
5790
|
+
}) {
|
|
5791
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
5792
|
+
}
|
|
5793
|
+
function TooltipContent({
|
|
5794
|
+
className,
|
|
5795
|
+
sideOffset = 0,
|
|
5796
|
+
children,
|
|
5797
|
+
...props
|
|
5798
|
+
}) {
|
|
5799
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
5800
|
+
TooltipPrimitive.Content,
|
|
5801
|
+
{
|
|
5802
|
+
"data-slot": "tooltip-content",
|
|
5803
|
+
sideOffset,
|
|
5804
|
+
className: cn(
|
|
5805
|
+
"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
5806
|
+
className
|
|
5807
|
+
),
|
|
5808
|
+
...props,
|
|
5809
|
+
children: [
|
|
5810
|
+
children,
|
|
5811
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
5812
|
+
]
|
|
5813
|
+
}
|
|
5814
|
+
) });
|
|
5815
|
+
}
|
|
5832
5816
|
function CalendarSubscribeButton({
|
|
5833
5817
|
feedUrl,
|
|
5834
5818
|
label
|