@mesob/ui 0.5.3 → 0.5.5
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/components.d.ts +55 -12
- package/dist/components.js +286 -97
- package/dist/components.js.map +1 -1
- package/dist/providers.d.ts +2 -4
- package/dist/providers.js +7 -27
- package/dist/providers.js.map +1 -1
- package/package.json +3 -3
- package/src/styles/style-lyra.css +2 -2
- package/src/styles/style-maia.css +2 -2
- package/src/styles/style-mira.css +2 -2
- package/src/styles/style-nova.css +2 -2
- package/src/styles/style-vega.css +2 -2
package/dist/components.js
CHANGED
|
@@ -248,7 +248,7 @@ function AppBreadcrumbs({
|
|
|
248
248
|
className
|
|
249
249
|
}) {
|
|
250
250
|
const mesob = useMesob();
|
|
251
|
-
const Link2 = linkProp ?? mesob?.
|
|
251
|
+
const Link2 = linkProp ?? mesob?.navigation?.Link;
|
|
252
252
|
const locale = mesob?.locale;
|
|
253
253
|
const { items } = useBreadcrumbs2(void 0);
|
|
254
254
|
if (items.length === 0) {
|
|
@@ -1457,7 +1457,7 @@ import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
|
1457
1457
|
var DROPDOWN_MENU_POSITIONER_CN = "isolate z-50 outline-none";
|
|
1458
1458
|
var DROPDOWN_MENU_CONTENT_CN = cn(
|
|
1459
1459
|
"cn-dropdown-menu-content cn-dropdown-menu-content-logical cn-menu-target",
|
|
1460
|
-
"z-50 max-h-(--available-height) w-(--anchor-width)",
|
|
1460
|
+
"z-50 max-h-[min(100dvh,var(--available-height,100dvh))] w-[var(--anchor-width,auto)]",
|
|
1461
1461
|
"origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none",
|
|
1462
1462
|
"data-closed:overflow-hidden"
|
|
1463
1463
|
);
|
|
@@ -1749,12 +1749,12 @@ function AppHeaderActions({
|
|
|
1749
1749
|
accountMenuFooter
|
|
1750
1750
|
}) {
|
|
1751
1751
|
const mesob = useMesob2();
|
|
1752
|
-
const LinkComponent = mesob?.
|
|
1752
|
+
const LinkComponent = mesob?.navigation?.Link;
|
|
1753
1753
|
const locale = mesob?.locale;
|
|
1754
1754
|
const hasHrefItems = topMenuItems.some((i) => i.href) || menuItems.some((i) => i.href);
|
|
1755
1755
|
if (hasHrefItems && !LinkComponent) {
|
|
1756
1756
|
throw new Error(
|
|
1757
|
-
"[AppHeaderActions] MesobProvider
|
|
1757
|
+
"[AppHeaderActions] MesobProvider is required for menu items with href"
|
|
1758
1758
|
);
|
|
1759
1759
|
}
|
|
1760
1760
|
const initials = user?.fullName?.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2) || "U";
|
|
@@ -1876,7 +1876,6 @@ import { grant } from "@mesob/common/permission";
|
|
|
1876
1876
|
import { useMesob as useMesob3 } from "@mesob/ui/providers";
|
|
1877
1877
|
import { IconChevronDown } from "@tabler/icons-react";
|
|
1878
1878
|
import { useEffect as useEffect8, useRef as useRef2, useState as useState5 } from "react";
|
|
1879
|
-
import { useToggle } from "react-use";
|
|
1880
1879
|
|
|
1881
1880
|
// src/components/ui/sidebar.tsx
|
|
1882
1881
|
import { useRender as useRender3 } from "@base-ui/react/use-render";
|
|
@@ -2077,8 +2076,27 @@ function TooltipProvider({
|
|
|
2077
2076
|
}
|
|
2078
2077
|
);
|
|
2079
2078
|
}
|
|
2080
|
-
function Tooltip({
|
|
2081
|
-
|
|
2079
|
+
function Tooltip({
|
|
2080
|
+
label,
|
|
2081
|
+
contentProps,
|
|
2082
|
+
triggerProps,
|
|
2083
|
+
children,
|
|
2084
|
+
...props
|
|
2085
|
+
}) {
|
|
2086
|
+
if (label !== void 0) {
|
|
2087
|
+
return /* @__PURE__ */ jsxs12(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children: [
|
|
2088
|
+
/* @__PURE__ */ jsx19(
|
|
2089
|
+
TooltipTrigger,
|
|
2090
|
+
{
|
|
2091
|
+
render: /* @__PURE__ */ jsx19("span", { className: "inline-block" }),
|
|
2092
|
+
...triggerProps,
|
|
2093
|
+
children
|
|
2094
|
+
}
|
|
2095
|
+
),
|
|
2096
|
+
/* @__PURE__ */ jsx19(TooltipContent, { ...contentProps, children: label })
|
|
2097
|
+
] });
|
|
2098
|
+
}
|
|
2099
|
+
return /* @__PURE__ */ jsx19(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children });
|
|
2082
2100
|
}
|
|
2083
2101
|
function TooltipTrigger({ ...props }) {
|
|
2084
2102
|
return /* @__PURE__ */ jsx19(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
@@ -2807,6 +2825,20 @@ function RowContent({
|
|
|
2807
2825
|
)
|
|
2808
2826
|
] });
|
|
2809
2827
|
}
|
|
2828
|
+
function useNavBranchOpen(activeBranch) {
|
|
2829
|
+
const [open, setOpen] = useState5(activeBranch);
|
|
2830
|
+
useEffect8(() => {
|
|
2831
|
+
if (activeBranch) {
|
|
2832
|
+
setOpen(true);
|
|
2833
|
+
} else {
|
|
2834
|
+
setOpen(false);
|
|
2835
|
+
}
|
|
2836
|
+
}, [activeBranch]);
|
|
2837
|
+
const toggle = () => {
|
|
2838
|
+
setOpen((o) => !o);
|
|
2839
|
+
};
|
|
2840
|
+
return { open, toggle };
|
|
2841
|
+
}
|
|
2810
2842
|
function NavItemRow({
|
|
2811
2843
|
item,
|
|
2812
2844
|
level,
|
|
@@ -2815,11 +2847,12 @@ function NavItemRow({
|
|
|
2815
2847
|
onNavClick
|
|
2816
2848
|
}) {
|
|
2817
2849
|
const mesob = useMesob3();
|
|
2818
|
-
const Link2 = mesob?.
|
|
2850
|
+
const Link2 = mesob?.navigation?.Link;
|
|
2819
2851
|
const locale = mesob?.locale;
|
|
2820
|
-
const
|
|
2852
|
+
const activeBranch = hasActiveDescendant(item, pathname);
|
|
2853
|
+
const { open, toggle } = useNavBranchOpen(activeBranch);
|
|
2821
2854
|
const hasChildren = (item.children?.length ?? 0) > 0;
|
|
2822
|
-
const showChildren =
|
|
2855
|
+
const showChildren = open && hasChildren;
|
|
2823
2856
|
const pathMatch = item.pathMatch ?? "prefix";
|
|
2824
2857
|
const isActive = isLinkActive(pathname, item.href, pathMatch);
|
|
2825
2858
|
const lineLeft = 28 + 20 * level;
|
|
@@ -3496,7 +3529,7 @@ function NoDataAvailable({
|
|
|
3496
3529
|
icon
|
|
3497
3530
|
}) {
|
|
3498
3531
|
const mesob = useMesob4();
|
|
3499
|
-
const Link2 = mesob?.
|
|
3532
|
+
const Link2 = mesob?.navigation?.Link;
|
|
3500
3533
|
const locale = mesob?.locale;
|
|
3501
3534
|
const iconMap = {
|
|
3502
3535
|
certificate: IconCertificateOff,
|
|
@@ -4121,7 +4154,7 @@ import { IconCheck as IconCheck2, IconChevronDown as IconChevronDown3, IconChevr
|
|
|
4121
4154
|
import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4122
4155
|
var Select = SelectPrimitive.Root;
|
|
4123
4156
|
var SELECT_TRIGGER_BASE_CN = "flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0";
|
|
4124
|
-
var SELECT_CONTENT_BASE_CN = "cn-menu-target relative isolate z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none";
|
|
4157
|
+
var SELECT_CONTENT_BASE_CN = "cn-menu-target relative isolate z-50 max-h-[min(100dvh,var(--available-height,100dvh))] w-[var(--anchor-width,auto)] origin-(--transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none";
|
|
4125
4158
|
var SELECT_ITEM_BASE_CN = "relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0";
|
|
4126
4159
|
function SelectGroup({ className, ...props }) {
|
|
4127
4160
|
return /* @__PURE__ */ jsx36(
|
|
@@ -4170,7 +4203,7 @@ function SelectContent({
|
|
|
4170
4203
|
sideOffset = 4,
|
|
4171
4204
|
align = "center",
|
|
4172
4205
|
alignOffset = 0,
|
|
4173
|
-
alignItemWithTrigger =
|
|
4206
|
+
alignItemWithTrigger = false,
|
|
4174
4207
|
...props
|
|
4175
4208
|
}) {
|
|
4176
4209
|
return /* @__PURE__ */ jsx36(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx36(
|
|
@@ -4295,11 +4328,10 @@ function EntityDetailHeader({
|
|
|
4295
4328
|
className
|
|
4296
4329
|
}) {
|
|
4297
4330
|
const mesob = useMesob5();
|
|
4298
|
-
const LinkComponent = mesob?.
|
|
4331
|
+
const LinkComponent = mesob?.navigation?.Link;
|
|
4299
4332
|
const pathname = mesob?.pathname ?? "";
|
|
4300
4333
|
const locale = mesob?.locale;
|
|
4301
|
-
const
|
|
4302
|
-
const resolvedBackButton = showBack ? /* @__PURE__ */ jsx37(PageGoBack, { onBack: goBack, label: "Go back" }) : void 0;
|
|
4334
|
+
const resolvedBackButton = showBack && mesob?.goBack ? /* @__PURE__ */ jsx37(PageGoBack, { onBack: mesob.goBack, label: "Go back" }) : void 0;
|
|
4303
4335
|
const hrefBasedActiveTab = useMemo3(() => {
|
|
4304
4336
|
const hasPathname = Boolean(pathname);
|
|
4305
4337
|
const allHaveHref = tabs.every((t) => t.href);
|
|
@@ -7968,7 +8000,6 @@ import { useState as useState22 } from "react";
|
|
|
7968
8000
|
import { Controller as Controller2 } from "react-hook-form";
|
|
7969
8001
|
|
|
7970
8002
|
// src/provider/mesob-provider.tsx
|
|
7971
|
-
import { createNavigation } from "next-intl/navigation";
|
|
7972
8003
|
import { createContext as createContext3, useContext as useContext3, useMemo as useMemo10 } from "react";
|
|
7973
8004
|
import { z as z2 } from "zod";
|
|
7974
8005
|
|
|
@@ -15399,7 +15430,7 @@ function Anchor({
|
|
|
15399
15430
|
...props
|
|
15400
15431
|
}) {
|
|
15401
15432
|
const mesob = useMesob7();
|
|
15402
|
-
const Link2 = mesob?.
|
|
15433
|
+
const Link2 = mesob?.navigation?.Link;
|
|
15403
15434
|
const locale = mesob?.locale;
|
|
15404
15435
|
const useLink = href && !isExternal2(href) && Link2;
|
|
15405
15436
|
const Comp = useLink ? Link2 : "a";
|
|
@@ -15601,7 +15632,7 @@ function AnimatedTabs({
|
|
|
15601
15632
|
linkComponent: linkProp
|
|
15602
15633
|
}) {
|
|
15603
15634
|
const mesob = useMesob8();
|
|
15604
|
-
const LinkComponent = linkProp ?? mesob?.
|
|
15635
|
+
const LinkComponent = linkProp ?? mesob?.navigation?.Link;
|
|
15605
15636
|
const locale = mesob?.locale;
|
|
15606
15637
|
const [internalActiveTab, setInternalActiveTab] = useState36(
|
|
15607
15638
|
defaultTab ?? tabs[0]?.value ?? ""
|
|
@@ -17891,7 +17922,7 @@ import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
|
|
|
17891
17922
|
import { IconCheck as IconCheck4, IconChevronDown as IconChevronDown9 } from "@tabler/icons-react";
|
|
17892
17923
|
import { useMemo as useMemo13, useState as useState40 } from "react";
|
|
17893
17924
|
import { jsx as jsx142, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
17894
|
-
var COMBOBOX_CONTENT_BASE_CN = "cn-menu-target group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) data-[chips=true]:min-w-(--anchor-width)";
|
|
17925
|
+
var COMBOBOX_CONTENT_BASE_CN = "cn-menu-target group/combobox-content relative max-h-[min(100dvh,var(--available-height,100dvh))] w-[var(--anchor-width,auto)] max-w-[min(100vw,var(--available-width,100vw))] min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) data-[chips=true]:min-w-[var(--anchor-width,auto)]";
|
|
17895
17926
|
var COMBOBOX_ITEM_BASE_CN = "relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0";
|
|
17896
17927
|
function Combobox({
|
|
17897
17928
|
options,
|
|
@@ -18084,7 +18115,7 @@ import { jsx as jsx144, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
|
18084
18115
|
var CONTEXT_MENU_POSITIONER_CN = "isolate z-50 outline-none";
|
|
18085
18116
|
var CONTEXT_MENU_CONTENT_CN = cn(
|
|
18086
18117
|
"cn-context-menu-content cn-context-menu-content-logical cn-menu-target",
|
|
18087
|
-
"z-50 max-h-(--available-height)",
|
|
18118
|
+
"z-50 max-h-[min(100dvh,var(--available-height,100dvh))]",
|
|
18088
18119
|
"origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none",
|
|
18089
18120
|
"data-closed:overflow-hidden"
|
|
18090
18121
|
);
|
|
@@ -18189,7 +18220,7 @@ function ContextMenuSubContent({
|
|
|
18189
18220
|
"data-slot": "context-menu-sub-content",
|
|
18190
18221
|
className: cn(
|
|
18191
18222
|
"cn-context-menu-sub-content cn-context-menu-content-logical cn-context-menu-subcontent",
|
|
18192
|
-
"z-50 max-h-(--available-height) w-auto origin-(--transform-origin)",
|
|
18223
|
+
"z-50 max-h-[min(100dvh,var(--available-height,100dvh))] w-auto origin-(--transform-origin)",
|
|
18193
18224
|
"overflow-x-hidden overflow-y-auto outline-none",
|
|
18194
18225
|
className
|
|
18195
18226
|
),
|
|
@@ -18849,6 +18880,7 @@ function DropdownButton({
|
|
|
18849
18880
|
mainButtonClassName,
|
|
18850
18881
|
triggerClassName,
|
|
18851
18882
|
contentClassName,
|
|
18883
|
+
align = "end",
|
|
18852
18884
|
positionerProps,
|
|
18853
18885
|
contentProps,
|
|
18854
18886
|
className,
|
|
@@ -18879,7 +18911,7 @@ function DropdownButton({
|
|
|
18879
18911
|
children
|
|
18880
18912
|
}
|
|
18881
18913
|
),
|
|
18882
|
-
/* @__PURE__ */ jsx151(DropdownMenuPositioner, { ...positionerProps, children: /* @__PURE__ */ jsx151(
|
|
18914
|
+
/* @__PURE__ */ jsx151(DropdownMenuPositioner, { align, ...positionerProps, children: /* @__PURE__ */ jsx151(
|
|
18883
18915
|
DropdownMenuContent,
|
|
18884
18916
|
{
|
|
18885
18917
|
...contentProps,
|
|
@@ -18933,7 +18965,7 @@ function DropdownButton({
|
|
|
18933
18965
|
}
|
|
18934
18966
|
)
|
|
18935
18967
|
] }),
|
|
18936
|
-
/* @__PURE__ */ jsx151(DropdownMenuPositioner, { ...positionerProps, children: /* @__PURE__ */ jsx151(
|
|
18968
|
+
/* @__PURE__ */ jsx151(DropdownMenuPositioner, { align, ...positionerProps, children: /* @__PURE__ */ jsx151(
|
|
18937
18969
|
DropdownMenuContent,
|
|
18938
18970
|
{
|
|
18939
18971
|
...contentProps,
|
|
@@ -20684,7 +20716,7 @@ import { jsx as jsx169, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
|
20684
20716
|
var MENUBAR_POSITIONER_CN = "isolate z-50 outline-none";
|
|
20685
20717
|
var MENUBAR_CONTENT_CN = cn(
|
|
20686
20718
|
"cn-menubar-content cn-menubar-content-logical cn-menu-target",
|
|
20687
|
-
"z-50 max-h-(--available-height)",
|
|
20719
|
+
"z-50 max-h-[min(100dvh,var(--available-height,100dvh))]",
|
|
20688
20720
|
"origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none",
|
|
20689
20721
|
"data-closed:overflow-hidden"
|
|
20690
20722
|
);
|
|
@@ -20936,7 +20968,7 @@ function MenubarSubContent({
|
|
|
20936
20968
|
"data-slot": "menubar-sub-content",
|
|
20937
20969
|
className: cn(
|
|
20938
20970
|
"cn-menubar-sub-content cn-menubar-content-logical",
|
|
20939
|
-
"z-50 max-h-(--available-height) w-auto origin-(--transform-origin)",
|
|
20971
|
+
"z-50 max-h-[min(100dvh,var(--available-height,100dvh))] w-auto origin-(--transform-origin)",
|
|
20940
20972
|
"overflow-x-hidden overflow-y-auto outline-none",
|
|
20941
20973
|
className
|
|
20942
20974
|
),
|
|
@@ -21354,7 +21386,7 @@ function NavLink({
|
|
|
21354
21386
|
...props
|
|
21355
21387
|
}) {
|
|
21356
21388
|
const mesob = useMesob9();
|
|
21357
|
-
const Link2 = mesob?.
|
|
21389
|
+
const Link2 = mesob?.navigation?.Link;
|
|
21358
21390
|
const locale = mesob?.locale;
|
|
21359
21391
|
const useLink = href && !isExternal3(href) && Link2;
|
|
21360
21392
|
const Comp = useLink ? Link2 : "a";
|
|
@@ -22983,10 +23015,165 @@ function Stack({
|
|
|
22983
23015
|
);
|
|
22984
23016
|
}
|
|
22985
23017
|
|
|
23018
|
+
// src/components/ui/status-dropdown-button.tsx
|
|
23019
|
+
import { useCallback as useCallback25, useMemo as useMemo16, useState as useState53 } from "react";
|
|
23020
|
+
import { Fragment as Fragment30, jsx as jsx192, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
23021
|
+
var STATUS_MENU_SEPARATOR = "separator";
|
|
23022
|
+
function resolveConfirmConfig(target, entityLabel) {
|
|
23023
|
+
if (!target.confirm) {
|
|
23024
|
+
return null;
|
|
23025
|
+
}
|
|
23026
|
+
const baseVariant = target.variant === "destructive" ? "destructive" : "default";
|
|
23027
|
+
if (target.confirm === true) {
|
|
23028
|
+
return {
|
|
23029
|
+
title: "Confirm status change",
|
|
23030
|
+
description: entityLabel !== void 0 ? `This will update this ${entityLabel}.` : "You can change it again later.",
|
|
23031
|
+
cancelLabel: "Cancel",
|
|
23032
|
+
confirmLabel: "Continue",
|
|
23033
|
+
confirmVariant: baseVariant
|
|
23034
|
+
};
|
|
23035
|
+
}
|
|
23036
|
+
return {
|
|
23037
|
+
cancelLabel: "Cancel",
|
|
23038
|
+
confirmLabel: "Continue",
|
|
23039
|
+
confirmVariant: baseVariant,
|
|
23040
|
+
...target.confirm
|
|
23041
|
+
};
|
|
23042
|
+
}
|
|
23043
|
+
function buildItems(value, states, transitions, groupLabel, onPick) {
|
|
23044
|
+
const row = transitions !== void 0 && value in transitions ? transitions[value] ?? [] : states.filter((s) => s.value !== value).map((s) => s.value);
|
|
23045
|
+
const items = [];
|
|
23046
|
+
if (groupLabel !== null) {
|
|
23047
|
+
items.push({
|
|
23048
|
+
type: "label",
|
|
23049
|
+
key: "status-group",
|
|
23050
|
+
label: groupLabel === void 0 ? "Change status" : groupLabel
|
|
23051
|
+
});
|
|
23052
|
+
}
|
|
23053
|
+
for (let i = 0; i < row.length; i++) {
|
|
23054
|
+
const slot = row[i];
|
|
23055
|
+
if (slot === STATUS_MENU_SEPARATOR) {
|
|
23056
|
+
items.push({
|
|
23057
|
+
type: "separator",
|
|
23058
|
+
key: `status-sep-${value}-${i}`
|
|
23059
|
+
});
|
|
23060
|
+
continue;
|
|
23061
|
+
}
|
|
23062
|
+
const def = states.find((s) => s.value === slot);
|
|
23063
|
+
if (!def) {
|
|
23064
|
+
continue;
|
|
23065
|
+
}
|
|
23066
|
+
items.push({
|
|
23067
|
+
key: `status-${slot}`,
|
|
23068
|
+
label: def.label,
|
|
23069
|
+
icon: def.icon,
|
|
23070
|
+
variant: def.variant,
|
|
23071
|
+
disabled: def.disabled,
|
|
23072
|
+
inset: def.inset,
|
|
23073
|
+
onSelect: () => onPick(slot)
|
|
23074
|
+
});
|
|
23075
|
+
}
|
|
23076
|
+
return items;
|
|
23077
|
+
}
|
|
23078
|
+
function StatusDropdownButton({
|
|
23079
|
+
value,
|
|
23080
|
+
onStatusChange,
|
|
23081
|
+
states,
|
|
23082
|
+
transitions,
|
|
23083
|
+
groupLabel,
|
|
23084
|
+
labelPrefix,
|
|
23085
|
+
buttonClassName,
|
|
23086
|
+
entityLabel,
|
|
23087
|
+
className,
|
|
23088
|
+
variant,
|
|
23089
|
+
...dropdownProps
|
|
23090
|
+
}) {
|
|
23091
|
+
const [pending, setPending] = useState53(null);
|
|
23092
|
+
const onPick = useCallback25(
|
|
23093
|
+
(next) => {
|
|
23094
|
+
const target = states.find((s) => s.value === next);
|
|
23095
|
+
if (!target) {
|
|
23096
|
+
onStatusChange(next);
|
|
23097
|
+
return;
|
|
23098
|
+
}
|
|
23099
|
+
const cfg = resolveConfirmConfig(target, entityLabel);
|
|
23100
|
+
if (cfg) {
|
|
23101
|
+
setPending({ next, config: cfg });
|
|
23102
|
+
} else {
|
|
23103
|
+
onStatusChange(next);
|
|
23104
|
+
}
|
|
23105
|
+
},
|
|
23106
|
+
[states, entityLabel, onStatusChange]
|
|
23107
|
+
);
|
|
23108
|
+
const items = useMemo16(
|
|
23109
|
+
() => buildItems(value, states, transitions, groupLabel, onPick),
|
|
23110
|
+
[value, states, transitions, groupLabel, onPick]
|
|
23111
|
+
);
|
|
23112
|
+
const current = states.find((s) => s.value === value);
|
|
23113
|
+
return /* @__PURE__ */ jsxs110(Fragment30, { children: [
|
|
23114
|
+
/* @__PURE__ */ jsx192(
|
|
23115
|
+
DropdownButton,
|
|
23116
|
+
{
|
|
23117
|
+
...dropdownProps,
|
|
23118
|
+
className,
|
|
23119
|
+
items,
|
|
23120
|
+
variant,
|
|
23121
|
+
children: /* @__PURE__ */ jsxs110(
|
|
23122
|
+
"span",
|
|
23123
|
+
{
|
|
23124
|
+
className: cn(
|
|
23125
|
+
"inline-flex min-w-0 items-center gap-2",
|
|
23126
|
+
buttonClassName
|
|
23127
|
+
),
|
|
23128
|
+
children: [
|
|
23129
|
+
labelPrefix ? /* @__PURE__ */ jsx192("span", { className: "text-muted-foreground shrink-0", children: labelPrefix }) : null,
|
|
23130
|
+
current?.icon ? /* @__PURE__ */ jsx192("span", { className: "inline-flex shrink-0", children: current.icon }) : null,
|
|
23131
|
+
/* @__PURE__ */ jsx192("span", { className: "min-w-0 truncate", children: current?.label ?? value })
|
|
23132
|
+
]
|
|
23133
|
+
}
|
|
23134
|
+
)
|
|
23135
|
+
}
|
|
23136
|
+
),
|
|
23137
|
+
/* @__PURE__ */ jsx192(
|
|
23138
|
+
AlertDialog,
|
|
23139
|
+
{
|
|
23140
|
+
open: pending !== null,
|
|
23141
|
+
onOpenChange: (open) => {
|
|
23142
|
+
if (!open) {
|
|
23143
|
+
setPending(null);
|
|
23144
|
+
}
|
|
23145
|
+
},
|
|
23146
|
+
children: /* @__PURE__ */ jsxs110(AlertDialogContent, { children: [
|
|
23147
|
+
/* @__PURE__ */ jsxs110(AlertDialogHeader, { children: [
|
|
23148
|
+
/* @__PURE__ */ jsx192(AlertDialogTitle, { children: pending?.config.title ?? "Confirm?" }),
|
|
23149
|
+
pending?.config.description != null ? /* @__PURE__ */ jsx192(AlertDialogDescription, { children: pending.config.description }) : null
|
|
23150
|
+
] }),
|
|
23151
|
+
/* @__PURE__ */ jsxs110(AlertDialogFooter, { children: [
|
|
23152
|
+
/* @__PURE__ */ jsx192(AlertDialogCancel, { children: pending?.config.cancelLabel ?? "Cancel" }),
|
|
23153
|
+
/* @__PURE__ */ jsx192(
|
|
23154
|
+
AlertDialogAction,
|
|
23155
|
+
{
|
|
23156
|
+
variant: pending?.config.confirmVariant ?? "default",
|
|
23157
|
+
onClick: () => {
|
|
23158
|
+
if (pending) {
|
|
23159
|
+
onStatusChange(pending.next);
|
|
23160
|
+
setPending(null);
|
|
23161
|
+
}
|
|
23162
|
+
},
|
|
23163
|
+
children: pending?.config.confirmLabel ?? "Continue"
|
|
23164
|
+
}
|
|
23165
|
+
)
|
|
23166
|
+
] })
|
|
23167
|
+
] })
|
|
23168
|
+
}
|
|
23169
|
+
)
|
|
23170
|
+
] });
|
|
23171
|
+
}
|
|
23172
|
+
|
|
22986
23173
|
// src/components/ui/stepper.tsx
|
|
22987
23174
|
import { IconCheck as IconCheck9 } from "@tabler/icons-react";
|
|
22988
23175
|
import { createContext as createContext8, useContext as useContext9 } from "react";
|
|
22989
|
-
import { jsx as
|
|
23176
|
+
import { jsx as jsx193, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
22990
23177
|
var StepperContext = createContext8({
|
|
22991
23178
|
activeStep: 0,
|
|
22992
23179
|
orientation: "horizontal"
|
|
@@ -22999,7 +23186,7 @@ function Stepper({
|
|
|
22999
23186
|
children,
|
|
23000
23187
|
...props
|
|
23001
23188
|
}) {
|
|
23002
|
-
return /* @__PURE__ */
|
|
23189
|
+
return /* @__PURE__ */ jsx193(StepperContext.Provider, { value: { activeStep, orientation }, children: /* @__PURE__ */ jsx193(
|
|
23003
23190
|
"div",
|
|
23004
23191
|
{
|
|
23005
23192
|
"data-slot": "stepper",
|
|
@@ -23031,7 +23218,7 @@ function Step({
|
|
|
23031
23218
|
} else if (isActive) {
|
|
23032
23219
|
state2 = "active";
|
|
23033
23220
|
}
|
|
23034
|
-
return /* @__PURE__ */
|
|
23221
|
+
return /* @__PURE__ */ jsxs111(
|
|
23035
23222
|
"div",
|
|
23036
23223
|
{
|
|
23037
23224
|
"data-slot": "step",
|
|
@@ -23043,7 +23230,7 @@ function Step({
|
|
|
23043
23230
|
),
|
|
23044
23231
|
...props,
|
|
23045
23232
|
children: [
|
|
23046
|
-
/* @__PURE__ */
|
|
23233
|
+
/* @__PURE__ */ jsxs111(
|
|
23047
23234
|
"div",
|
|
23048
23235
|
{
|
|
23049
23236
|
className: cn(
|
|
@@ -23051,16 +23238,16 @@ function Step({
|
|
|
23051
23238
|
orientation === "horizontal" && "flex-col gap-2"
|
|
23052
23239
|
),
|
|
23053
23240
|
children: [
|
|
23054
|
-
/* @__PURE__ */
|
|
23241
|
+
/* @__PURE__ */ jsx193(
|
|
23055
23242
|
"div",
|
|
23056
23243
|
{
|
|
23057
23244
|
"data-slot": "step-indicator",
|
|
23058
23245
|
"data-state": state2,
|
|
23059
23246
|
className: cn("cn-step-indicator"),
|
|
23060
|
-
children: isCompleted ? /* @__PURE__ */
|
|
23247
|
+
children: isCompleted ? /* @__PURE__ */ jsx193(IconCheck9, { className: "size-5" }) : /* @__PURE__ */ jsx193("span", { children: index + 1 })
|
|
23061
23248
|
}
|
|
23062
23249
|
),
|
|
23063
|
-
(label || description) && /* @__PURE__ */
|
|
23250
|
+
(label || description) && /* @__PURE__ */ jsxs111(
|
|
23064
23251
|
"div",
|
|
23065
23252
|
{
|
|
23066
23253
|
className: cn(
|
|
@@ -23068,15 +23255,15 @@ function Step({
|
|
|
23068
23255
|
orientation === "vertical" && "text-left"
|
|
23069
23256
|
),
|
|
23070
23257
|
children: [
|
|
23071
|
-
label && /* @__PURE__ */
|
|
23072
|
-
description && /* @__PURE__ */
|
|
23258
|
+
label && /* @__PURE__ */ jsx193("div", { className: cn("cn-step-label"), children: label }),
|
|
23259
|
+
description && /* @__PURE__ */ jsx193("div", { className: "cn-step-description", children: description })
|
|
23073
23260
|
]
|
|
23074
23261
|
}
|
|
23075
23262
|
)
|
|
23076
23263
|
]
|
|
23077
23264
|
}
|
|
23078
23265
|
),
|
|
23079
|
-
orientation === "horizontal" && !isLast && /* @__PURE__ */
|
|
23266
|
+
orientation === "horizontal" && !isLast && /* @__PURE__ */ jsx193(
|
|
23080
23267
|
"div",
|
|
23081
23268
|
{
|
|
23082
23269
|
"data-slot": "step-connector",
|
|
@@ -23084,7 +23271,7 @@ function Step({
|
|
|
23084
23271
|
className: cn("cn-step-connector")
|
|
23085
23272
|
}
|
|
23086
23273
|
),
|
|
23087
|
-
orientation === "vertical" && /* @__PURE__ */
|
|
23274
|
+
orientation === "vertical" && /* @__PURE__ */ jsx193("div", { className: "flex flex-1 flex-col gap-2", children })
|
|
23088
23275
|
]
|
|
23089
23276
|
}
|
|
23090
23277
|
);
|
|
@@ -23092,7 +23279,7 @@ function Step({
|
|
|
23092
23279
|
|
|
23093
23280
|
// src/components/ui/switch.tsx
|
|
23094
23281
|
import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
|
|
23095
|
-
import { jsx as
|
|
23282
|
+
import { jsx as jsx194 } from "react/jsx-runtime";
|
|
23096
23283
|
function mapSwitchSize(size) {
|
|
23097
23284
|
return size === "xs" || size === "sm" ? "sm" : "default";
|
|
23098
23285
|
}
|
|
@@ -23103,7 +23290,7 @@ function Switch({
|
|
|
23103
23290
|
...props
|
|
23104
23291
|
}) {
|
|
23105
23292
|
const mappedSize = mapSwitchSize(size);
|
|
23106
|
-
return /* @__PURE__ */
|
|
23293
|
+
return /* @__PURE__ */ jsx194(
|
|
23107
23294
|
SwitchPrimitive.Root,
|
|
23108
23295
|
{
|
|
23109
23296
|
"data-slot": "switch",
|
|
@@ -23115,7 +23302,7 @@ function Switch({
|
|
|
23115
23302
|
className
|
|
23116
23303
|
),
|
|
23117
23304
|
...props,
|
|
23118
|
-
children: /* @__PURE__ */
|
|
23305
|
+
children: /* @__PURE__ */ jsx194(
|
|
23119
23306
|
SwitchPrimitive.Thumb,
|
|
23120
23307
|
{
|
|
23121
23308
|
"data-slot": "switch-thumb",
|
|
@@ -23127,7 +23314,7 @@ function Switch({
|
|
|
23127
23314
|
}
|
|
23128
23315
|
|
|
23129
23316
|
// src/components/ui/table-of-contents.tsx
|
|
23130
|
-
import { jsx as
|
|
23317
|
+
import { jsx as jsx195 } from "react/jsx-runtime";
|
|
23131
23318
|
function TableOfContents({
|
|
23132
23319
|
className,
|
|
23133
23320
|
items,
|
|
@@ -23138,7 +23325,7 @@ function TableOfContents({
|
|
|
23138
23325
|
minDepth = 1,
|
|
23139
23326
|
...props
|
|
23140
23327
|
}) {
|
|
23141
|
-
return /* @__PURE__ */
|
|
23328
|
+
return /* @__PURE__ */ jsx195(
|
|
23142
23329
|
"nav",
|
|
23143
23330
|
{
|
|
23144
23331
|
"data-slot": "table-of-contents",
|
|
@@ -23149,7 +23336,7 @@ function TableOfContents({
|
|
|
23149
23336
|
const depth = item.depth ?? 1;
|
|
23150
23337
|
const paddingLeft = Math.max(0, depth - minDepth) * depthOffset;
|
|
23151
23338
|
const isActive = activeId === item.id;
|
|
23152
|
-
return /* @__PURE__ */
|
|
23339
|
+
return /* @__PURE__ */ jsx195(
|
|
23153
23340
|
UnstyledButton,
|
|
23154
23341
|
{
|
|
23155
23342
|
type: "button",
|
|
@@ -23171,8 +23358,8 @@ function TableOfContents({
|
|
|
23171
23358
|
|
|
23172
23359
|
// src/components/ui/tags-input.tsx
|
|
23173
23360
|
import { IconX as IconX14 } from "@tabler/icons-react";
|
|
23174
|
-
import { useState as
|
|
23175
|
-
import { jsx as
|
|
23361
|
+
import { useState as useState54 } from "react";
|
|
23362
|
+
import { jsx as jsx196, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
23176
23363
|
function TagsInput({
|
|
23177
23364
|
className,
|
|
23178
23365
|
value,
|
|
@@ -23185,8 +23372,8 @@ function TagsInput({
|
|
|
23185
23372
|
disabled = false,
|
|
23186
23373
|
...props
|
|
23187
23374
|
}) {
|
|
23188
|
-
const [internalValue, setInternalValue] =
|
|
23189
|
-
const [inputValue, setInputValue] =
|
|
23375
|
+
const [internalValue, setInternalValue] = useState54(defaultValue);
|
|
23376
|
+
const [inputValue, setInputValue] = useState54("");
|
|
23190
23377
|
const tags = value ?? internalValue;
|
|
23191
23378
|
const addTag = (tag) => {
|
|
23192
23379
|
const trimmed = tag.trim();
|
|
@@ -23230,21 +23417,21 @@ function TagsInput({
|
|
|
23230
23417
|
}
|
|
23231
23418
|
setInputValue(newValue);
|
|
23232
23419
|
};
|
|
23233
|
-
return /* @__PURE__ */
|
|
23420
|
+
return /* @__PURE__ */ jsxs112(
|
|
23234
23421
|
"div",
|
|
23235
23422
|
{
|
|
23236
23423
|
"data-slot": "tags-input",
|
|
23237
23424
|
className: cn("cn-tags-input cn-combobox-chips", className),
|
|
23238
23425
|
...props,
|
|
23239
23426
|
children: [
|
|
23240
|
-
tags.map((tag, index) => /* @__PURE__ */
|
|
23427
|
+
tags.map((tag, index) => /* @__PURE__ */ jsxs112(
|
|
23241
23428
|
"span",
|
|
23242
23429
|
{
|
|
23243
23430
|
"data-slot": "tags-input-tag",
|
|
23244
23431
|
className: "cn-combobox-chip",
|
|
23245
23432
|
children: [
|
|
23246
23433
|
tag,
|
|
23247
|
-
/* @__PURE__ */
|
|
23434
|
+
/* @__PURE__ */ jsxs112(
|
|
23248
23435
|
"button",
|
|
23249
23436
|
{
|
|
23250
23437
|
type: "button",
|
|
@@ -23253,8 +23440,8 @@ function TagsInput({
|
|
|
23253
23440
|
disabled,
|
|
23254
23441
|
className: "cn-combobox-chip-remove",
|
|
23255
23442
|
children: [
|
|
23256
|
-
/* @__PURE__ */
|
|
23257
|
-
/* @__PURE__ */
|
|
23443
|
+
/* @__PURE__ */ jsx196("span", { className: "sr-only", children: "Remove" }),
|
|
23444
|
+
/* @__PURE__ */ jsx196(IconX14, { className: "size-3" })
|
|
23258
23445
|
]
|
|
23259
23446
|
}
|
|
23260
23447
|
)
|
|
@@ -23262,7 +23449,7 @@ function TagsInput({
|
|
|
23262
23449
|
},
|
|
23263
23450
|
allowDuplicates ? `${tag}-${index}` : tag
|
|
23264
23451
|
)),
|
|
23265
|
-
/* @__PURE__ */
|
|
23452
|
+
/* @__PURE__ */ jsx196(
|
|
23266
23453
|
"input",
|
|
23267
23454
|
{
|
|
23268
23455
|
type: "text",
|
|
@@ -23281,7 +23468,7 @@ function TagsInput({
|
|
|
23281
23468
|
|
|
23282
23469
|
// src/components/ui/text-input.tsx
|
|
23283
23470
|
import { forwardRef as forwardRef16 } from "react";
|
|
23284
|
-
import { jsx as
|
|
23471
|
+
import { jsx as jsx197, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
23285
23472
|
var TextInput = forwardRef16(
|
|
23286
23473
|
({
|
|
23287
23474
|
label,
|
|
@@ -23310,14 +23497,14 @@ var TextInput = forwardRef16(
|
|
|
23310
23497
|
xl: "h-12"
|
|
23311
23498
|
};
|
|
23312
23499
|
const hasWrapper = label || description || error || required || withAsterisk;
|
|
23313
|
-
const inputElement = /* @__PURE__ */
|
|
23500
|
+
const inputElement = /* @__PURE__ */ jsxs113(
|
|
23314
23501
|
InputGroup,
|
|
23315
23502
|
{
|
|
23316
23503
|
disabled,
|
|
23317
23504
|
className: cn(size && groupSizeClasses[size]),
|
|
23318
23505
|
children: [
|
|
23319
|
-
leftSection && /* @__PURE__ */
|
|
23320
|
-
/* @__PURE__ */
|
|
23506
|
+
leftSection && /* @__PURE__ */ jsx197(InputGroupAddon, { align: "inline-start", className: "pointer-events-none", children: leftSection }),
|
|
23507
|
+
/* @__PURE__ */ jsx197(
|
|
23321
23508
|
InputGroupInput,
|
|
23322
23509
|
{
|
|
23323
23510
|
ref,
|
|
@@ -23328,7 +23515,7 @@ var TextInput = forwardRef16(
|
|
|
23328
23515
|
...inputProps
|
|
23329
23516
|
}
|
|
23330
23517
|
),
|
|
23331
|
-
rightSection && /* @__PURE__ */
|
|
23518
|
+
rightSection && /* @__PURE__ */ jsx197(
|
|
23332
23519
|
InputGroupAddon,
|
|
23333
23520
|
{
|
|
23334
23521
|
align: "inline-end",
|
|
@@ -23344,7 +23531,7 @@ var TextInput = forwardRef16(
|
|
|
23344
23531
|
if (!hasWrapper) {
|
|
23345
23532
|
return inputElement;
|
|
23346
23533
|
}
|
|
23347
|
-
return /* @__PURE__ */
|
|
23534
|
+
return /* @__PURE__ */ jsx197(
|
|
23348
23535
|
InputWrapper,
|
|
23349
23536
|
{
|
|
23350
23537
|
label,
|
|
@@ -23367,7 +23554,7 @@ TextInput.displayName = "TextInput";
|
|
|
23367
23554
|
|
|
23368
23555
|
// src/components/ui/theme-icon.tsx
|
|
23369
23556
|
import { cva as cva25 } from "class-variance-authority";
|
|
23370
|
-
import { jsx as
|
|
23557
|
+
import { jsx as jsx198 } from "react/jsx-runtime";
|
|
23371
23558
|
var themeIconVariants = cva25(
|
|
23372
23559
|
"cn-theme-icon inline-flex items-center justify-center shrink-0 transition-colors",
|
|
23373
23560
|
{
|
|
@@ -23500,7 +23687,7 @@ function ThemeIcon({
|
|
|
23500
23687
|
children,
|
|
23501
23688
|
...props
|
|
23502
23689
|
}) {
|
|
23503
|
-
return /* @__PURE__ */
|
|
23690
|
+
return /* @__PURE__ */ jsx198(
|
|
23504
23691
|
"div",
|
|
23505
23692
|
{
|
|
23506
23693
|
"data-slot": "theme-icon",
|
|
@@ -23515,9 +23702,9 @@ function ThemeIcon({
|
|
|
23515
23702
|
}
|
|
23516
23703
|
|
|
23517
23704
|
// src/components/ui/timeline.tsx
|
|
23518
|
-
import { jsx as
|
|
23705
|
+
import { jsx as jsx199 } from "react/jsx-runtime";
|
|
23519
23706
|
function Timeline({ className, ...props }) {
|
|
23520
|
-
return /* @__PURE__ */
|
|
23707
|
+
return /* @__PURE__ */ jsx199(
|
|
23521
23708
|
"ol",
|
|
23522
23709
|
{
|
|
23523
23710
|
"data-slot": "timeline",
|
|
@@ -23527,7 +23714,7 @@ function Timeline({ className, ...props }) {
|
|
|
23527
23714
|
);
|
|
23528
23715
|
}
|
|
23529
23716
|
function TimelineItem({ className, ...props }) {
|
|
23530
|
-
return /* @__PURE__ */
|
|
23717
|
+
return /* @__PURE__ */ jsx199(
|
|
23531
23718
|
"li",
|
|
23532
23719
|
{
|
|
23533
23720
|
"data-slot": "timeline-item",
|
|
@@ -23541,7 +23728,7 @@ function TimelineDot({
|
|
|
23541
23728
|
variant = "default",
|
|
23542
23729
|
...props
|
|
23543
23730
|
}) {
|
|
23544
|
-
return /* @__PURE__ */
|
|
23731
|
+
return /* @__PURE__ */ jsx199(
|
|
23545
23732
|
"div",
|
|
23546
23733
|
{
|
|
23547
23734
|
"data-slot": "timeline-dot",
|
|
@@ -23552,7 +23739,7 @@ function TimelineDot({
|
|
|
23552
23739
|
);
|
|
23553
23740
|
}
|
|
23554
23741
|
function TimelineContent({ className, ...props }) {
|
|
23555
|
-
return /* @__PURE__ */
|
|
23742
|
+
return /* @__PURE__ */ jsx199(
|
|
23556
23743
|
"div",
|
|
23557
23744
|
{
|
|
23558
23745
|
"data-slot": "timeline-content",
|
|
@@ -23566,13 +23753,13 @@ function TimelineTitle({
|
|
|
23566
23753
|
children,
|
|
23567
23754
|
...props
|
|
23568
23755
|
}) {
|
|
23569
|
-
return /* @__PURE__ */
|
|
23756
|
+
return /* @__PURE__ */ jsx199(
|
|
23570
23757
|
"h3",
|
|
23571
23758
|
{
|
|
23572
23759
|
"data-slot": "timeline-title",
|
|
23573
23760
|
className: cn("cn-timeline-title", className),
|
|
23574
23761
|
...props,
|
|
23575
|
-
children: children ?? /* @__PURE__ */
|
|
23762
|
+
children: children ?? /* @__PURE__ */ jsx199("span", { className: "sr-only", children: "Timeline item" })
|
|
23576
23763
|
}
|
|
23577
23764
|
);
|
|
23578
23765
|
}
|
|
@@ -23580,7 +23767,7 @@ function TimelineDescription({
|
|
|
23580
23767
|
className,
|
|
23581
23768
|
...props
|
|
23582
23769
|
}) {
|
|
23583
|
-
return /* @__PURE__ */
|
|
23770
|
+
return /* @__PURE__ */ jsx199(
|
|
23584
23771
|
"p",
|
|
23585
23772
|
{
|
|
23586
23773
|
"data-slot": "timeline-description",
|
|
@@ -23590,7 +23777,7 @@ function TimelineDescription({
|
|
|
23590
23777
|
);
|
|
23591
23778
|
}
|
|
23592
23779
|
function TimelineTime({ className, ...props }) {
|
|
23593
|
-
return /* @__PURE__ */
|
|
23780
|
+
return /* @__PURE__ */ jsx199(
|
|
23594
23781
|
"time",
|
|
23595
23782
|
{
|
|
23596
23783
|
"data-slot": "timeline-time",
|
|
@@ -23602,7 +23789,7 @@ function TimelineTime({ className, ...props }) {
|
|
|
23602
23789
|
|
|
23603
23790
|
// src/components/ui/title.tsx
|
|
23604
23791
|
import { cva as cva26 } from "class-variance-authority";
|
|
23605
|
-
import { jsx as
|
|
23792
|
+
import { jsx as jsx200 } from "react/jsx-runtime";
|
|
23606
23793
|
var titleVariants = cva26("font-semibold tracking-tight text-pretty", {
|
|
23607
23794
|
variants: {
|
|
23608
23795
|
order: {
|
|
@@ -23653,7 +23840,7 @@ function Title({
|
|
|
23653
23840
|
...props
|
|
23654
23841
|
}) {
|
|
23655
23842
|
const Component = `h${order}`;
|
|
23656
|
-
return /* @__PURE__ */
|
|
23843
|
+
return /* @__PURE__ */ jsx200(
|
|
23657
23844
|
Component,
|
|
23658
23845
|
{
|
|
23659
23846
|
"data-slot": "title",
|
|
@@ -23670,7 +23857,7 @@ function Title({
|
|
|
23670
23857
|
// src/components/ui/toggle.tsx
|
|
23671
23858
|
import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
|
|
23672
23859
|
import { cva as cva27 } from "class-variance-authority";
|
|
23673
|
-
import { jsx as
|
|
23860
|
+
import { jsx as jsx201 } from "react/jsx-runtime";
|
|
23674
23861
|
var toggleVariants = cva27(
|
|
23675
23862
|
'cn-toggle inline-flex items-center justify-center gap-2 whitespace-nowrap border border-transparent outline-none transition-colors [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 [&_svg]:shrink-0',
|
|
23676
23863
|
{
|
|
@@ -23697,7 +23884,7 @@ function Toggle({
|
|
|
23697
23884
|
size,
|
|
23698
23885
|
...props
|
|
23699
23886
|
}) {
|
|
23700
|
-
return /* @__PURE__ */
|
|
23887
|
+
return /* @__PURE__ */ jsx201(
|
|
23701
23888
|
TogglePrimitive,
|
|
23702
23889
|
{
|
|
23703
23890
|
"data-slot": "toggle",
|
|
@@ -23711,7 +23898,7 @@ function Toggle({
|
|
|
23711
23898
|
import { Toggle as TogglePrimitive2 } from "@base-ui/react/toggle";
|
|
23712
23899
|
import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
|
|
23713
23900
|
import * as React16 from "react";
|
|
23714
|
-
import { jsx as
|
|
23901
|
+
import { jsx as jsx202 } from "react/jsx-runtime";
|
|
23715
23902
|
var ToggleGroupContext = React16.createContext({
|
|
23716
23903
|
size: "default",
|
|
23717
23904
|
variant: "default",
|
|
@@ -23725,7 +23912,7 @@ function ToggleGroup({
|
|
|
23725
23912
|
children,
|
|
23726
23913
|
...props
|
|
23727
23914
|
}) {
|
|
23728
|
-
return /* @__PURE__ */
|
|
23915
|
+
return /* @__PURE__ */ jsx202(
|
|
23729
23916
|
ToggleGroupPrimitive,
|
|
23730
23917
|
{
|
|
23731
23918
|
"data-slot": "toggle-group",
|
|
@@ -23738,7 +23925,7 @@ function ToggleGroup({
|
|
|
23738
23925
|
className
|
|
23739
23926
|
),
|
|
23740
23927
|
...props,
|
|
23741
|
-
children: /* @__PURE__ */
|
|
23928
|
+
children: /* @__PURE__ */ jsx202(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
|
|
23742
23929
|
}
|
|
23743
23930
|
);
|
|
23744
23931
|
}
|
|
@@ -23750,7 +23937,7 @@ function ToggleGroupItem({
|
|
|
23750
23937
|
...props
|
|
23751
23938
|
}) {
|
|
23752
23939
|
const context = React16.useContext(ToggleGroupContext);
|
|
23753
|
-
return /* @__PURE__ */
|
|
23940
|
+
return /* @__PURE__ */ jsx202(
|
|
23754
23941
|
TogglePrimitive2,
|
|
23755
23942
|
{
|
|
23756
23943
|
"data-slot": "toggle-group-item",
|
|
@@ -23772,8 +23959,8 @@ function ToggleGroupItem({
|
|
|
23772
23959
|
}
|
|
23773
23960
|
|
|
23774
23961
|
// src/components/ui/transition.tsx
|
|
23775
|
-
import { useEffect as useEffect31, useState as
|
|
23776
|
-
import { Fragment as
|
|
23962
|
+
import { useEffect as useEffect31, useState as useState55 } from "react";
|
|
23963
|
+
import { Fragment as Fragment31, jsx as jsx203 } from "react/jsx-runtime";
|
|
23777
23964
|
var TRANSITIONS = {
|
|
23778
23965
|
fade: {
|
|
23779
23966
|
in: { opacity: 1 },
|
|
@@ -23827,10 +24014,10 @@ var TRANSITIONS = {
|
|
|
23827
24014
|
}
|
|
23828
24015
|
};
|
|
23829
24016
|
function useTransitionState(mounted, duration, exitDuration, timingFunction, onEnter, onEntered, onExit, onExited, enterDelay, exitDelay) {
|
|
23830
|
-
const [status, setStatus] =
|
|
24017
|
+
const [status, setStatus] = useState55(
|
|
23831
24018
|
mounted ? "entered" : "exited"
|
|
23832
24019
|
);
|
|
23833
|
-
const [displayDuration, setDisplayDuration] =
|
|
24020
|
+
const [displayDuration, setDisplayDuration] = useState55(duration);
|
|
23834
24021
|
useEffect31(() => {
|
|
23835
24022
|
if (mounted) {
|
|
23836
24023
|
setDisplayDuration(duration);
|
|
@@ -23913,7 +24100,7 @@ function Transition({
|
|
|
23913
24100
|
const t = TRANSITIONS[transition];
|
|
23914
24101
|
if (!t) {
|
|
23915
24102
|
if (mounted) {
|
|
23916
|
-
return /* @__PURE__ */
|
|
24103
|
+
return /* @__PURE__ */ jsx203(Fragment31, { children: children({}) });
|
|
23917
24104
|
}
|
|
23918
24105
|
if (keepMounted) {
|
|
23919
24106
|
return children({ display: "none" });
|
|
@@ -23939,13 +24126,13 @@ function Transition({
|
|
|
23939
24126
|
transitionDuration: `${d}ms`,
|
|
23940
24127
|
transitionTimingFunction: tf
|
|
23941
24128
|
};
|
|
23942
|
-
return /* @__PURE__ */
|
|
24129
|
+
return /* @__PURE__ */ jsx203(Fragment31, { children: children(styles) });
|
|
23943
24130
|
}
|
|
23944
24131
|
|
|
23945
24132
|
// src/components/ui/tree.tsx
|
|
23946
24133
|
import { IconChevronRight as IconChevronRight11 } from "@tabler/icons-react";
|
|
23947
|
-
import { useState as
|
|
23948
|
-
import { jsx as
|
|
24134
|
+
import { useState as useState56 } from "react";
|
|
24135
|
+
import { jsx as jsx204, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
23949
24136
|
function Tree({
|
|
23950
24137
|
className,
|
|
23951
24138
|
data,
|
|
@@ -23959,7 +24146,7 @@ function Tree({
|
|
|
23959
24146
|
renderNode,
|
|
23960
24147
|
...props
|
|
23961
24148
|
}) {
|
|
23962
|
-
const [internalExpanded, setInternalExpanded] =
|
|
24149
|
+
const [internalExpanded, setInternalExpanded] = useState56(
|
|
23963
24150
|
/* @__PURE__ */ new Set()
|
|
23964
24151
|
);
|
|
23965
24152
|
const expanded = expandedProp !== void 0 ? expandedProp : internalExpanded;
|
|
@@ -23981,14 +24168,14 @@ function Tree({
|
|
|
23981
24168
|
onSelectedValueChange?.(node.value);
|
|
23982
24169
|
}
|
|
23983
24170
|
};
|
|
23984
|
-
return /* @__PURE__ */
|
|
24171
|
+
return /* @__PURE__ */ jsx204(
|
|
23985
24172
|
"div",
|
|
23986
24173
|
{
|
|
23987
24174
|
"data-slot": "tree",
|
|
23988
24175
|
role: "tree",
|
|
23989
24176
|
className: cn("cn-tree", className),
|
|
23990
24177
|
...props,
|
|
23991
|
-
children: data.map((node) => /* @__PURE__ */
|
|
24178
|
+
children: data.map((node) => /* @__PURE__ */ jsx204(
|
|
23992
24179
|
TreeNode,
|
|
23993
24180
|
{
|
|
23994
24181
|
node,
|
|
@@ -24026,14 +24213,14 @@ function TreeNode({
|
|
|
24026
24213
|
hasChildren,
|
|
24027
24214
|
selected
|
|
24028
24215
|
}) ?? node.label;
|
|
24029
|
-
return /* @__PURE__ */
|
|
24216
|
+
return /* @__PURE__ */ jsxs114(
|
|
24030
24217
|
"div",
|
|
24031
24218
|
{
|
|
24032
24219
|
role: "treeitem",
|
|
24033
24220
|
tabIndex: 0,
|
|
24034
24221
|
"aria-expanded": hasChildren ? expanded : void 0,
|
|
24035
24222
|
children: [
|
|
24036
|
-
/* @__PURE__ */
|
|
24223
|
+
/* @__PURE__ */ jsxs114(
|
|
24037
24224
|
UnstyledButton,
|
|
24038
24225
|
{
|
|
24039
24226
|
type: "button",
|
|
@@ -24042,21 +24229,21 @@ function TreeNode({
|
|
|
24042
24229
|
style: { paddingLeft: `${level * levelOffset + 4}px` },
|
|
24043
24230
|
onClick: () => handleNodeClick(node, hasChildren),
|
|
24044
24231
|
children: [
|
|
24045
|
-
hasChildren ? /* @__PURE__ */
|
|
24232
|
+
hasChildren ? /* @__PURE__ */ jsx204(
|
|
24046
24233
|
"span",
|
|
24047
24234
|
{
|
|
24048
24235
|
className: cn(
|
|
24049
24236
|
"cn-tree-node-chevron text-muted-foreground flex shrink-0 transition-transform",
|
|
24050
24237
|
expanded && "rotate-90"
|
|
24051
24238
|
),
|
|
24052
|
-
children: /* @__PURE__ */
|
|
24239
|
+
children: /* @__PURE__ */ jsx204(IconChevronRight11, { className: "size-4" })
|
|
24053
24240
|
}
|
|
24054
|
-
) : /* @__PURE__ */
|
|
24055
|
-
/* @__PURE__ */
|
|
24241
|
+
) : /* @__PURE__ */ jsx204("span", { "aria-hidden": true, className: "cn-tree-node-spacer w-4 shrink-0" }),
|
|
24242
|
+
/* @__PURE__ */ jsx204("span", { className: "cn-tree-node-label min-w-0 flex-1 truncate", children: label })
|
|
24056
24243
|
]
|
|
24057
24244
|
}
|
|
24058
24245
|
),
|
|
24059
|
-
hasChildren && expanded && node.children && /* @__PURE__ */
|
|
24246
|
+
hasChildren && expanded && node.children && /* @__PURE__ */ jsx204("fieldset", { className: "cn-tree-node-children list-none border-0 p-0 m-0 min-w-0", children: node.children.map((child) => /* @__PURE__ */ jsx204(
|
|
24060
24247
|
TreeNode,
|
|
24061
24248
|
{
|
|
24062
24249
|
node: child,
|
|
@@ -24430,6 +24617,7 @@ export {
|
|
|
24430
24617
|
RichTextEditorToolbar,
|
|
24431
24618
|
RichTextInput,
|
|
24432
24619
|
RingProgress,
|
|
24620
|
+
STATUS_MENU_SEPARATOR,
|
|
24433
24621
|
ScrollArea,
|
|
24434
24622
|
ScrollBar,
|
|
24435
24623
|
DisplayTableScrollContainer as ScrollContainer,
|
|
@@ -24487,6 +24675,7 @@ export {
|
|
|
24487
24675
|
Spoiler,
|
|
24488
24676
|
SpotlightSearch,
|
|
24489
24677
|
Stack,
|
|
24678
|
+
StatusDropdownButton,
|
|
24490
24679
|
Step,
|
|
24491
24680
|
Stepper,
|
|
24492
24681
|
Switch,
|