@mesob/ui 0.5.4 → 0.5.6
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 +34 -21
- package/dist/components.js +698 -570
- 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 +8 -3
- package/src/styles/style-lyra.css +249 -6
- package/src/styles/style-maia.css +243 -5
- package/src/styles/style-mira.css +248 -5
- package/src/styles/style-nova.css +136 -5
- package/src/styles/style-vega.css +136 -5
- package/src/styles/themes.css +31 -0
- package/src/styles/lyra/button.css +0 -107
- package/src/styles/maia/button.css +0 -107
- package/src/styles/mira/button.css +0 -107
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) {
|
|
@@ -1010,35 +1010,53 @@ var inputGroupAddonVariants = cva3(
|
|
|
1010
1010
|
function InputGroupAddon({
|
|
1011
1011
|
className,
|
|
1012
1012
|
align = "inline-start",
|
|
1013
|
-
|
|
1013
|
+
as: Component = "button",
|
|
1014
1014
|
...props
|
|
1015
1015
|
}) {
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
}
|
|
1027
|
-
e.currentTarget.closest("[data-slot=input-group]")?.querySelector("input, textarea, [role=combobox]")?.focus();
|
|
1028
|
-
},
|
|
1029
|
-
onKeyDown: (e) => {
|
|
1030
|
-
if (e.key !== "Enter" && e.key !== " ") {
|
|
1031
|
-
return;
|
|
1032
|
-
}
|
|
1033
|
-
if (e.target.closest("button")) {
|
|
1034
|
-
return;
|
|
1035
|
-
}
|
|
1036
|
-
e.preventDefault();
|
|
1037
|
-
e.currentTarget.closest("[data-slot=input-group]")?.querySelector("input, textarea, [role=combobox]")?.focus();
|
|
1038
|
-
},
|
|
1039
|
-
...props
|
|
1016
|
+
const isButton = Component === "button";
|
|
1017
|
+
const addonClass = cn(inputGroupAddonVariants({ align }), className);
|
|
1018
|
+
const shared = {
|
|
1019
|
+
"data-slot": "input-group-addon",
|
|
1020
|
+
"data-align": align,
|
|
1021
|
+
className: addonClass
|
|
1022
|
+
};
|
|
1023
|
+
const handleClick = (e) => {
|
|
1024
|
+
if (!isButton) {
|
|
1025
|
+
return;
|
|
1040
1026
|
}
|
|
1041
|
-
|
|
1027
|
+
if (e.target.closest("button")) {
|
|
1028
|
+
return;
|
|
1029
|
+
}
|
|
1030
|
+
e.currentTarget.closest("[data-slot=input-group]")?.querySelector("input, textarea, [role=combobox]")?.focus();
|
|
1031
|
+
};
|
|
1032
|
+
const handleKeyDown = (e) => {
|
|
1033
|
+
if (!isButton) {
|
|
1034
|
+
return;
|
|
1035
|
+
}
|
|
1036
|
+
if (e.key !== "Enter" && e.key !== " ") {
|
|
1037
|
+
return;
|
|
1038
|
+
}
|
|
1039
|
+
if (e.target.closest("button")) {
|
|
1040
|
+
return;
|
|
1041
|
+
}
|
|
1042
|
+
e.preventDefault();
|
|
1043
|
+
e.currentTarget.closest("[data-slot=input-group]")?.querySelector("input, textarea, [role=combobox]")?.focus();
|
|
1044
|
+
};
|
|
1045
|
+
if (isButton) {
|
|
1046
|
+
const p2 = props;
|
|
1047
|
+
return /* @__PURE__ */ jsx11(
|
|
1048
|
+
"button",
|
|
1049
|
+
{
|
|
1050
|
+
type: p2.type ?? "button",
|
|
1051
|
+
...shared,
|
|
1052
|
+
onClick: handleClick,
|
|
1053
|
+
onKeyDown: handleKeyDown,
|
|
1054
|
+
...p2
|
|
1055
|
+
}
|
|
1056
|
+
);
|
|
1057
|
+
}
|
|
1058
|
+
const p = props;
|
|
1059
|
+
return /* @__PURE__ */ jsx11("div", { ...shared, ...p });
|
|
1042
1060
|
}
|
|
1043
1061
|
var inputGroupButtonVariants = cva3(
|
|
1044
1062
|
"cn-input-group-button shadow-none flex items-center",
|
|
@@ -1171,7 +1189,7 @@ function CommandInput({
|
|
|
1171
1189
|
...props
|
|
1172
1190
|
}
|
|
1173
1191
|
),
|
|
1174
|
-
/* @__PURE__ */ jsx12(InputGroupAddon, { children: /* @__PURE__ */ jsx12(IconSearch, { className: "cn-command-input-icon" }) })
|
|
1192
|
+
/* @__PURE__ */ jsx12(InputGroupAddon, { as: "div", children: /* @__PURE__ */ jsx12(IconSearch, { className: "cn-command-input-icon" }) })
|
|
1175
1193
|
] }) });
|
|
1176
1194
|
}
|
|
1177
1195
|
function CommandList({
|
|
@@ -1749,12 +1767,12 @@ function AppHeaderActions({
|
|
|
1749
1767
|
accountMenuFooter
|
|
1750
1768
|
}) {
|
|
1751
1769
|
const mesob = useMesob2();
|
|
1752
|
-
const LinkComponent = mesob?.
|
|
1770
|
+
const LinkComponent = mesob?.navigation?.Link;
|
|
1753
1771
|
const locale = mesob?.locale;
|
|
1754
1772
|
const hasHrefItems = topMenuItems.some((i) => i.href) || menuItems.some((i) => i.href);
|
|
1755
1773
|
if (hasHrefItems && !LinkComponent) {
|
|
1756
1774
|
throw new Error(
|
|
1757
|
-
"[AppHeaderActions] MesobProvider
|
|
1775
|
+
"[AppHeaderActions] MesobProvider is required for menu items with href"
|
|
1758
1776
|
);
|
|
1759
1777
|
}
|
|
1760
1778
|
const initials = user?.fullName?.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2) || "U";
|
|
@@ -2076,8 +2094,27 @@ function TooltipProvider({
|
|
|
2076
2094
|
}
|
|
2077
2095
|
);
|
|
2078
2096
|
}
|
|
2079
|
-
function Tooltip({
|
|
2080
|
-
|
|
2097
|
+
function Tooltip({
|
|
2098
|
+
label,
|
|
2099
|
+
contentProps,
|
|
2100
|
+
triggerProps,
|
|
2101
|
+
children,
|
|
2102
|
+
...props
|
|
2103
|
+
}) {
|
|
2104
|
+
if (label !== void 0) {
|
|
2105
|
+
return /* @__PURE__ */ jsxs12(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children: [
|
|
2106
|
+
/* @__PURE__ */ jsx19(
|
|
2107
|
+
TooltipTrigger,
|
|
2108
|
+
{
|
|
2109
|
+
render: /* @__PURE__ */ jsx19("span", { className: "inline-block" }),
|
|
2110
|
+
...triggerProps,
|
|
2111
|
+
children
|
|
2112
|
+
}
|
|
2113
|
+
),
|
|
2114
|
+
/* @__PURE__ */ jsx19(TooltipContent, { ...contentProps, children: label })
|
|
2115
|
+
] });
|
|
2116
|
+
}
|
|
2117
|
+
return /* @__PURE__ */ jsx19(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props, children });
|
|
2081
2118
|
}
|
|
2082
2119
|
function TooltipTrigger({ ...props }) {
|
|
2083
2120
|
return /* @__PURE__ */ jsx19(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
@@ -2828,7 +2865,7 @@ function NavItemRow({
|
|
|
2828
2865
|
onNavClick
|
|
2829
2866
|
}) {
|
|
2830
2867
|
const mesob = useMesob3();
|
|
2831
|
-
const Link2 = mesob?.
|
|
2868
|
+
const Link2 = mesob?.navigation?.Link;
|
|
2832
2869
|
const locale = mesob?.locale;
|
|
2833
2870
|
const activeBranch = hasActiveDescendant(item, pathname);
|
|
2834
2871
|
const { open, toggle } = useNavBranchOpen(activeBranch);
|
|
@@ -2971,15 +3008,20 @@ function AppSidebar({
|
|
|
2971
3008
|
}
|
|
2972
3009
|
|
|
2973
3010
|
// src/components/ui/card.tsx
|
|
2974
|
-
import {
|
|
3011
|
+
import { Children, isValidElement as isValidElement2 } from "react";
|
|
3012
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2975
3013
|
function Card({
|
|
2976
3014
|
className,
|
|
2977
3015
|
children,
|
|
2978
|
-
size = "
|
|
3016
|
+
size = "md",
|
|
2979
3017
|
padding,
|
|
2980
3018
|
radius,
|
|
2981
|
-
withBorder,
|
|
3019
|
+
withBorder = true,
|
|
2982
3020
|
variant,
|
|
3021
|
+
header,
|
|
3022
|
+
title,
|
|
3023
|
+
actions,
|
|
3024
|
+
footer,
|
|
2983
3025
|
...props
|
|
2984
3026
|
}) {
|
|
2985
3027
|
const paddingClasses = {
|
|
@@ -2998,10 +3040,14 @@ function Card({
|
|
|
2998
3040
|
xl: "rounded-[var(--radius-xl)]",
|
|
2999
3041
|
full: "rounded-full"
|
|
3000
3042
|
};
|
|
3001
|
-
|
|
3043
|
+
const hasBelowHeader = footer != null || children != null;
|
|
3044
|
+
const hasBodyAboveFooter = children != null;
|
|
3045
|
+
const sectioned = header != null || footer != null || title != null || actions != null;
|
|
3046
|
+
return /* @__PURE__ */ jsxs15(
|
|
3002
3047
|
"div",
|
|
3003
3048
|
{
|
|
3004
3049
|
"data-slot": "card",
|
|
3050
|
+
"data-sectioned": sectioned ? "" : void 0,
|
|
3005
3051
|
"data-size": size,
|
|
3006
3052
|
className: cn(
|
|
3007
3053
|
"cn-card group/card flex flex-col",
|
|
@@ -3013,17 +3059,60 @@ function Card({
|
|
|
3013
3059
|
className
|
|
3014
3060
|
),
|
|
3015
3061
|
...props,
|
|
3016
|
-
children
|
|
3062
|
+
children: [
|
|
3063
|
+
cardHeaderFromProps(hasBelowHeader, header, title, actions),
|
|
3064
|
+
bodySlot(children, sectioned, padding !== void 0),
|
|
3065
|
+
footer != null ? /* @__PURE__ */ jsx22(
|
|
3066
|
+
CardFooter,
|
|
3067
|
+
{
|
|
3068
|
+
className: cn(hasBodyAboveFooter && "border-border/60 border-t"),
|
|
3069
|
+
children: footer
|
|
3070
|
+
}
|
|
3071
|
+
) : null
|
|
3072
|
+
]
|
|
3017
3073
|
}
|
|
3018
3074
|
);
|
|
3019
3075
|
}
|
|
3076
|
+
function isSingleCardContent(children) {
|
|
3077
|
+
if (Children.count(children) !== 1) {
|
|
3078
|
+
return false;
|
|
3079
|
+
}
|
|
3080
|
+
const only = Children.only(children);
|
|
3081
|
+
return isValidElement2(only) && only.props["data-slot"] === "card-content";
|
|
3082
|
+
}
|
|
3083
|
+
function bodySlot(children, sectioned, hasRootPadding) {
|
|
3084
|
+
if (children == null) {
|
|
3085
|
+
return children;
|
|
3086
|
+
}
|
|
3087
|
+
if (isSingleCardContent(children)) {
|
|
3088
|
+
return children;
|
|
3089
|
+
}
|
|
3090
|
+
const wrapBody = sectioned || !hasRootPadding;
|
|
3091
|
+
if (!wrapBody) {
|
|
3092
|
+
return children;
|
|
3093
|
+
}
|
|
3094
|
+
return /* @__PURE__ */ jsx22(CardContent, { children });
|
|
3095
|
+
}
|
|
3096
|
+
function cardHeaderFromProps(hasBelowHeader, header, title, actions) {
|
|
3097
|
+
const divider = hasBelowHeader && "border-border/60 border-b";
|
|
3098
|
+
if (header != null) {
|
|
3099
|
+
return /* @__PURE__ */ jsx22(CardHeader, { className: cn(divider), children: header });
|
|
3100
|
+
}
|
|
3101
|
+
if (title != null || actions != null) {
|
|
3102
|
+
return /* @__PURE__ */ jsxs15(CardHeader, { className: cn(divider, "items-center"), children: [
|
|
3103
|
+
title != null ? /* @__PURE__ */ jsx22(CardTitle, { children: title }) : null,
|
|
3104
|
+
actions != null ? /* @__PURE__ */ jsx22(CardAction, { children: actions }) : null
|
|
3105
|
+
] });
|
|
3106
|
+
}
|
|
3107
|
+
return null;
|
|
3108
|
+
}
|
|
3020
3109
|
function CardHeader({ className, ...props }) {
|
|
3021
3110
|
return /* @__PURE__ */ jsx22(
|
|
3022
3111
|
"div",
|
|
3023
3112
|
{
|
|
3024
3113
|
"data-slot": "card-header",
|
|
3025
3114
|
className: cn(
|
|
3026
|
-
"cn-card-header group/card-header @container/card-header grid auto-rows-min
|
|
3115
|
+
"cn-card-header group/card-header @container/card-header grid auto-rows-min has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] has-data-[slot=card-description]:[&>[data-slot=card-action]]:row-span-2",
|
|
3027
3116
|
className
|
|
3028
3117
|
),
|
|
3029
3118
|
...props
|
|
@@ -3056,7 +3145,7 @@ function CardAction({ className, ...props }) {
|
|
|
3056
3145
|
{
|
|
3057
3146
|
"data-slot": "card-action",
|
|
3058
3147
|
className: cn(
|
|
3059
|
-
"col-start-2 row-
|
|
3148
|
+
"col-start-2 row-start-1 inline-flex shrink-0 flex-wrap items-center justify-self-end gap-2 self-center",
|
|
3060
3149
|
className
|
|
3061
3150
|
),
|
|
3062
3151
|
...props
|
|
@@ -3086,8 +3175,8 @@ function CardFooter({ className, ...props }) {
|
|
|
3086
3175
|
|
|
3087
3176
|
// src/components/ui/loader.tsx
|
|
3088
3177
|
import * as React5 from "react";
|
|
3089
|
-
import { Fragment as Fragment7, jsx as jsx23, jsxs as
|
|
3090
|
-
var OvalLoader = ({ className }) => /* @__PURE__ */
|
|
3178
|
+
import { Fragment as Fragment7, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3179
|
+
var OvalLoader = ({ className }) => /* @__PURE__ */ jsxs16(
|
|
3091
3180
|
"svg",
|
|
3092
3181
|
{
|
|
3093
3182
|
viewBox: "0 0 38 38",
|
|
@@ -3100,7 +3189,7 @@ var OvalLoader = ({ className }) => /* @__PURE__ */ jsxs15(
|
|
|
3100
3189
|
"aria-label": "Loading",
|
|
3101
3190
|
children: [
|
|
3102
3191
|
/* @__PURE__ */ jsx23("title", { children: "Loading" }),
|
|
3103
|
-
/* @__PURE__ */ jsx23("g", { fill: "none", fillRule: "evenodd", children: /* @__PURE__ */
|
|
3192
|
+
/* @__PURE__ */ jsx23("g", { fill: "none", fillRule: "evenodd", children: /* @__PURE__ */ jsxs16("g", { transform: "translate(1 1)", strokeWidth: "2", children: [
|
|
3104
3193
|
/* @__PURE__ */ jsx23(
|
|
3105
3194
|
"circle",
|
|
3106
3195
|
{
|
|
@@ -3193,7 +3282,7 @@ var Loader = React5.forwardRef(
|
|
|
3193
3282
|
}
|
|
3194
3283
|
const loaderSize = getLoaderSize2(size);
|
|
3195
3284
|
const LoaderComponent = loaders[type];
|
|
3196
|
-
return /* @__PURE__ */
|
|
3285
|
+
return /* @__PURE__ */ jsxs16(
|
|
3197
3286
|
"output",
|
|
3198
3287
|
{
|
|
3199
3288
|
ref,
|
|
@@ -3243,7 +3332,7 @@ function Overlay({
|
|
|
3243
3332
|
}
|
|
3244
3333
|
|
|
3245
3334
|
// src/components/ui/loading-overlay.tsx
|
|
3246
|
-
import { jsx as jsx25, jsxs as
|
|
3335
|
+
import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3247
3336
|
function LoadingOverlay({
|
|
3248
3337
|
visible,
|
|
3249
3338
|
zIndex = 1e3,
|
|
@@ -3258,7 +3347,7 @@ function LoadingOverlay({
|
|
|
3258
3347
|
if (!visible) {
|
|
3259
3348
|
return null;
|
|
3260
3349
|
}
|
|
3261
|
-
return /* @__PURE__ */
|
|
3350
|
+
return /* @__PURE__ */ jsxs17(
|
|
3262
3351
|
"div",
|
|
3263
3352
|
{
|
|
3264
3353
|
"data-slot": "loading-overlay",
|
|
@@ -3338,7 +3427,7 @@ function EntityPageLoading({
|
|
|
3338
3427
|
}
|
|
3339
3428
|
|
|
3340
3429
|
// src/components/app/error-page-view.tsx
|
|
3341
|
-
import { jsx as jsx28, jsxs as
|
|
3430
|
+
import { jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3342
3431
|
function ErrorPageView({
|
|
3343
3432
|
code,
|
|
3344
3433
|
title,
|
|
@@ -3347,15 +3436,15 @@ function ErrorPageView({
|
|
|
3347
3436
|
secondaryAction,
|
|
3348
3437
|
onRetry
|
|
3349
3438
|
}) {
|
|
3350
|
-
return /* @__PURE__ */
|
|
3439
|
+
return /* @__PURE__ */ jsxs18("div", { className: "flex min-h-svh flex-col items-center justify-center bg-background px-6 py-16 sm:px-8", children: [
|
|
3351
3440
|
/* @__PURE__ */ jsx28("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_80%_50%_at_50%_-20%,var(--color-primary)/0.08,transparent)]" }),
|
|
3352
|
-
/* @__PURE__ */
|
|
3441
|
+
/* @__PURE__ */ jsxs18("div", { className: "relative flex w-full min-w-72 max-w-3xl shrink-0 flex-col items-center gap-8 text-center", children: [
|
|
3353
3442
|
/* @__PURE__ */ jsx28("span", { className: "font-mono text-[7rem] font-bold leading-none tracking-tighter text-muted-foreground/50", children: code }),
|
|
3354
|
-
/* @__PURE__ */
|
|
3443
|
+
/* @__PURE__ */ jsxs18("div", { className: "w-full space-y-2", children: [
|
|
3355
3444
|
/* @__PURE__ */ jsx28("h1", { className: "text-2xl font-semibold tracking-tight text-foreground sm:text-3xl", children: title }),
|
|
3356
3445
|
/* @__PURE__ */ jsx28("p", { className: "w-full text-sm text-muted-foreground sm:text-base", children: description })
|
|
3357
3446
|
] }),
|
|
3358
|
-
/* @__PURE__ */
|
|
3447
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex w-full flex-col gap-3 sm:flex-row sm:justify-center", children: [
|
|
3359
3448
|
primaryAction,
|
|
3360
3449
|
secondaryAction,
|
|
3361
3450
|
onRetry && /* @__PURE__ */ jsx28(Button, { variant: "ghost", size: "lg", onClick: onRetry, children: "Try again" })
|
|
@@ -3499,7 +3588,7 @@ function Text({
|
|
|
3499
3588
|
}
|
|
3500
3589
|
|
|
3501
3590
|
// src/components/app/no-data-available.tsx
|
|
3502
|
-
import { jsx as jsx29, jsxs as
|
|
3591
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3503
3592
|
var isExternal = (href) => href.startsWith("http") || href.startsWith("//") || href.startsWith("mailto:") || href.startsWith("tel:");
|
|
3504
3593
|
function NoDataAvailable({
|
|
3505
3594
|
title,
|
|
@@ -3510,7 +3599,7 @@ function NoDataAvailable({
|
|
|
3510
3599
|
icon
|
|
3511
3600
|
}) {
|
|
3512
3601
|
const mesob = useMesob4();
|
|
3513
|
-
const Link2 = mesob?.
|
|
3602
|
+
const Link2 = mesob?.navigation?.Link;
|
|
3514
3603
|
const locale = mesob?.locale;
|
|
3515
3604
|
const iconMap = {
|
|
3516
3605
|
certificate: IconCertificateOff,
|
|
@@ -3519,7 +3608,7 @@ function NoDataAvailable({
|
|
|
3519
3608
|
alert: IconAlertCircle
|
|
3520
3609
|
};
|
|
3521
3610
|
const IconComponent = iconMap[iconType];
|
|
3522
|
-
return /* @__PURE__ */ jsx29(Card, { children: /* @__PURE__ */ jsx29("div", { className: "flex justify-center", children: /* @__PURE__ */
|
|
3611
|
+
return /* @__PURE__ */ jsx29(Card, { children: /* @__PURE__ */ jsx29("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs19("div", { className: "flex flex-col items-center gap-4 text-center", children: [
|
|
3523
3612
|
icon || /* @__PURE__ */ jsx29(IconComponent, { size: 80, className: "text-primary", stroke: 1.5 }),
|
|
3524
3613
|
/* @__PURE__ */ jsx29(
|
|
3525
3614
|
Text,
|
|
@@ -3556,13 +3645,13 @@ import { forwardRef as forwardRef3 } from "react";
|
|
|
3556
3645
|
|
|
3557
3646
|
// src/components/ui/scroll-area.tsx
|
|
3558
3647
|
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
|
|
3559
|
-
import { jsx as jsx30, jsxs as
|
|
3648
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3560
3649
|
function ScrollArea({
|
|
3561
3650
|
className,
|
|
3562
3651
|
children,
|
|
3563
3652
|
...props
|
|
3564
3653
|
}) {
|
|
3565
|
-
return /* @__PURE__ */
|
|
3654
|
+
return /* @__PURE__ */ jsxs20(
|
|
3566
3655
|
ScrollAreaPrimitive.Root,
|
|
3567
3656
|
{
|
|
3568
3657
|
"data-slot": "scroll-area",
|
|
@@ -3611,9 +3700,9 @@ function ScrollBar({
|
|
|
3611
3700
|
}
|
|
3612
3701
|
|
|
3613
3702
|
// src/components/display-table/display-table.tsx
|
|
3614
|
-
import { Fragment as Fragment8, jsx as jsx31, jsxs as
|
|
3703
|
+
import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3615
3704
|
function renderTableData(data, opts) {
|
|
3616
|
-
return /* @__PURE__ */
|
|
3705
|
+
return /* @__PURE__ */ jsxs21(Fragment8, { children: [
|
|
3617
3706
|
data.caption != null && /* @__PURE__ */ jsx31(
|
|
3618
3707
|
DisplayTableCaption,
|
|
3619
3708
|
{
|
|
@@ -3812,7 +3901,7 @@ import { useState as useState6 } from "react";
|
|
|
3812
3901
|
|
|
3813
3902
|
// src/components/ui/alert-dialog.tsx
|
|
3814
3903
|
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
|
|
3815
|
-
import { jsx as jsx32, jsxs as
|
|
3904
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3816
3905
|
function AlertDialog({
|
|
3817
3906
|
...props
|
|
3818
3907
|
}) {
|
|
@@ -3849,7 +3938,7 @@ function AlertDialogContent({
|
|
|
3849
3938
|
size = "default",
|
|
3850
3939
|
...props
|
|
3851
3940
|
}) {
|
|
3852
|
-
return /* @__PURE__ */
|
|
3941
|
+
return /* @__PURE__ */ jsxs22(AlertDialogPortal, { children: [
|
|
3853
3942
|
/* @__PURE__ */ jsx32(AlertDialogOverlay, {}),
|
|
3854
3943
|
/* @__PURE__ */ jsx32(
|
|
3855
3944
|
AlertDialogPrimitive.Popup,
|
|
@@ -3962,7 +4051,7 @@ function AlertDialogCancel({
|
|
|
3962
4051
|
}
|
|
3963
4052
|
|
|
3964
4053
|
// src/components/entity/entity-bulk-actions.tsx
|
|
3965
|
-
import { Fragment as Fragment9, jsx as jsx33, jsxs as
|
|
4054
|
+
import { Fragment as Fragment9, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3966
4055
|
function EntityBulkActions({
|
|
3967
4056
|
selectedCount,
|
|
3968
4057
|
actions,
|
|
@@ -3989,9 +4078,9 @@ function EntityBulkActions({
|
|
|
3989
4078
|
});
|
|
3990
4079
|
}
|
|
3991
4080
|
const allActions = actions ? [...actions, ...defaultActions] : defaultActions;
|
|
3992
|
-
return /* @__PURE__ */
|
|
3993
|
-
/* @__PURE__ */
|
|
3994
|
-
/* @__PURE__ */
|
|
4081
|
+
return /* @__PURE__ */ jsxs23(Fragment9, { children: [
|
|
4082
|
+
/* @__PURE__ */ jsxs23(DropdownMenu, { children: [
|
|
4083
|
+
/* @__PURE__ */ jsxs23(
|
|
3995
4084
|
DropdownMenuTrigger,
|
|
3996
4085
|
{
|
|
3997
4086
|
render: /* @__PURE__ */ jsx33(
|
|
@@ -4009,9 +4098,9 @@ function EntityBulkActions({
|
|
|
4009
4098
|
]
|
|
4010
4099
|
}
|
|
4011
4100
|
),
|
|
4012
|
-
/* @__PURE__ */ jsx33(DropdownMenuPositioner, { align: "end", children: /* @__PURE__ */ jsx33(DropdownMenuContent, { children: allActions.map((action, index) => /* @__PURE__ */
|
|
4101
|
+
/* @__PURE__ */ jsx33(DropdownMenuPositioner, { align: "end", children: /* @__PURE__ */ jsx33(DropdownMenuContent, { children: allActions.map((action, index) => /* @__PURE__ */ jsxs23("div", { children: [
|
|
4013
4102
|
action.variant === "destructive" && index > 0 && /* @__PURE__ */ jsx33(DropdownMenuSeparator, {}),
|
|
4014
|
-
/* @__PURE__ */
|
|
4103
|
+
/* @__PURE__ */ jsxs23(
|
|
4015
4104
|
DropdownMenuItem,
|
|
4016
4105
|
{
|
|
4017
4106
|
onClick: action.onClick,
|
|
@@ -4024,22 +4113,22 @@ function EntityBulkActions({
|
|
|
4024
4113
|
)
|
|
4025
4114
|
] }, action.label)) }) })
|
|
4026
4115
|
] }),
|
|
4027
|
-
/* @__PURE__ */ jsx33(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */
|
|
4028
|
-
/* @__PURE__ */
|
|
4029
|
-
/* @__PURE__ */
|
|
4116
|
+
/* @__PURE__ */ jsx33(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs23(AlertDialogContent, { children: [
|
|
4117
|
+
/* @__PURE__ */ jsxs23(AlertDialogHeader, { children: [
|
|
4118
|
+
/* @__PURE__ */ jsxs23(AlertDialogTitle, { children: [
|
|
4030
4119
|
"Delete ",
|
|
4031
4120
|
selectedCount,
|
|
4032
4121
|
" ",
|
|
4033
4122
|
itemName,
|
|
4034
4123
|
"(s)?"
|
|
4035
4124
|
] }),
|
|
4036
|
-
/* @__PURE__ */
|
|
4125
|
+
/* @__PURE__ */ jsxs23(AlertDialogDescription, { children: [
|
|
4037
4126
|
"This will permanently delete the selected ",
|
|
4038
4127
|
itemName,
|
|
4039
4128
|
"(s). This action cannot be undone."
|
|
4040
4129
|
] })
|
|
4041
4130
|
] }),
|
|
4042
|
-
/* @__PURE__ */
|
|
4131
|
+
/* @__PURE__ */ jsxs23(AlertDialogFooter, { children: [
|
|
4043
4132
|
/* @__PURE__ */ jsx33(AlertDialogCancel, { children: "Cancel" }),
|
|
4044
4133
|
/* @__PURE__ */ jsx33(
|
|
4045
4134
|
AlertDialogAction,
|
|
@@ -4059,7 +4148,7 @@ function EntityBulkActions({
|
|
|
4059
4148
|
|
|
4060
4149
|
// src/components/entity/entity-delete-confirm-button.tsx
|
|
4061
4150
|
import { IconTrash as IconTrash2 } from "@tabler/icons-react";
|
|
4062
|
-
import { jsx as jsx34, jsxs as
|
|
4151
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4063
4152
|
var defaultTriggerClassName = "size-8 opacity-0 transition-opacity group-hover:opacity-100 text-destructive hover:text-destructive";
|
|
4064
4153
|
function DeleteConfirmButton({
|
|
4065
4154
|
entityName,
|
|
@@ -4082,14 +4171,14 @@ function DeleteConfirmButton({
|
|
|
4082
4171
|
children: /* @__PURE__ */ jsx34(IconTrash2, { className: "size-4" })
|
|
4083
4172
|
}
|
|
4084
4173
|
);
|
|
4085
|
-
return /* @__PURE__ */
|
|
4174
|
+
return /* @__PURE__ */ jsxs24(AlertDialog, { children: [
|
|
4086
4175
|
/* @__PURE__ */ jsx34(AlertDialogTrigger, { render: trigger ?? defaultTrigger }),
|
|
4087
|
-
/* @__PURE__ */
|
|
4088
|
-
/* @__PURE__ */
|
|
4176
|
+
/* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
|
|
4177
|
+
/* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
|
|
4089
4178
|
/* @__PURE__ */ jsx34(AlertDialogTitle, { children: resolvedTitle }),
|
|
4090
4179
|
/* @__PURE__ */ jsx34(AlertDialogDescription, { children: resolvedDescription })
|
|
4091
4180
|
] }),
|
|
4092
|
-
/* @__PURE__ */
|
|
4181
|
+
/* @__PURE__ */ jsxs24(AlertDialogFooter, { children: [
|
|
4093
4182
|
/* @__PURE__ */ jsx34(AlertDialogCancel, { children: cancelLabel }),
|
|
4094
4183
|
/* @__PURE__ */ jsx34(AlertDialogAction, { variant: "destructive", onClick: onConfirm, children: confirmLabel })
|
|
4095
4184
|
] })
|
|
@@ -4102,7 +4191,7 @@ import { useMesob as useMesob5 } from "@mesob/ui/providers";
|
|
|
4102
4191
|
import { IconChevronDown as IconChevronDown4, IconMenu2 as IconMenu22 } from "@tabler/icons-react";
|
|
4103
4192
|
import {
|
|
4104
4193
|
cloneElement,
|
|
4105
|
-
isValidElement as
|
|
4194
|
+
isValidElement as isValidElement3,
|
|
4106
4195
|
useLayoutEffect,
|
|
4107
4196
|
useMemo as useMemo3,
|
|
4108
4197
|
useRef as useRef3,
|
|
@@ -4111,13 +4200,13 @@ import {
|
|
|
4111
4200
|
|
|
4112
4201
|
// src/components/layout/page/page-go-back.tsx
|
|
4113
4202
|
import { IconArrowLeft } from "@tabler/icons-react";
|
|
4114
|
-
import { jsx as jsx35, jsxs as
|
|
4203
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4115
4204
|
function PageGoBack({
|
|
4116
4205
|
onBack,
|
|
4117
4206
|
label = "Go back",
|
|
4118
4207
|
children
|
|
4119
4208
|
}) {
|
|
4120
|
-
return /* @__PURE__ */ jsx35(TooltipProvider, { children: /* @__PURE__ */
|
|
4209
|
+
return /* @__PURE__ */ jsx35(TooltipProvider, { children: /* @__PURE__ */ jsxs25(Tooltip, { children: [
|
|
4121
4210
|
/* @__PURE__ */ jsx35(
|
|
4122
4211
|
TooltipTrigger,
|
|
4123
4212
|
{
|
|
@@ -4132,7 +4221,7 @@ function PageGoBack({
|
|
|
4132
4221
|
// src/components/ui/select.tsx
|
|
4133
4222
|
import { Select as SelectPrimitive } from "@base-ui/react/select";
|
|
4134
4223
|
import { IconCheck as IconCheck2, IconChevronDown as IconChevronDown3, IconChevronUp } from "@tabler/icons-react";
|
|
4135
|
-
import { jsx as jsx36, jsxs as
|
|
4224
|
+
import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4136
4225
|
var Select = SelectPrimitive.Root;
|
|
4137
4226
|
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";
|
|
4138
4227
|
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";
|
|
@@ -4163,7 +4252,7 @@ function SelectTrigger({
|
|
|
4163
4252
|
children,
|
|
4164
4253
|
...props
|
|
4165
4254
|
}) {
|
|
4166
|
-
return /* @__PURE__ */
|
|
4255
|
+
return /* @__PURE__ */ jsxs26(
|
|
4167
4256
|
SelectPrimitive.Trigger,
|
|
4168
4257
|
{
|
|
4169
4258
|
"data-slot": "select-trigger",
|
|
@@ -4196,7 +4285,7 @@ function SelectContent({
|
|
|
4196
4285
|
alignOffset,
|
|
4197
4286
|
alignItemWithTrigger,
|
|
4198
4287
|
className: "isolate z-50",
|
|
4199
|
-
children: /* @__PURE__ */
|
|
4288
|
+
children: /* @__PURE__ */ jsxs26(
|
|
4200
4289
|
SelectPrimitive.Popup,
|
|
4201
4290
|
{
|
|
4202
4291
|
"data-slot": "select-content",
|
|
@@ -4236,7 +4325,7 @@ function SelectItem({
|
|
|
4236
4325
|
children,
|
|
4237
4326
|
...props
|
|
4238
4327
|
}) {
|
|
4239
|
-
return /* @__PURE__ */
|
|
4328
|
+
return /* @__PURE__ */ jsxs26(
|
|
4240
4329
|
SelectPrimitive.Item,
|
|
4241
4330
|
{
|
|
4242
4331
|
"data-slot": "select-item",
|
|
@@ -4298,7 +4387,7 @@ function SelectScrollDownButton({
|
|
|
4298
4387
|
}
|
|
4299
4388
|
|
|
4300
4389
|
// src/components/entity/entity-detail-header.tsx
|
|
4301
|
-
import { jsx as jsx37, jsxs as
|
|
4390
|
+
import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4302
4391
|
function EntityDetailHeader({
|
|
4303
4392
|
title,
|
|
4304
4393
|
icon,
|
|
@@ -4309,11 +4398,10 @@ function EntityDetailHeader({
|
|
|
4309
4398
|
className
|
|
4310
4399
|
}) {
|
|
4311
4400
|
const mesob = useMesob5();
|
|
4312
|
-
const LinkComponent = mesob?.
|
|
4401
|
+
const LinkComponent = mesob?.navigation?.Link;
|
|
4313
4402
|
const pathname = mesob?.pathname ?? "";
|
|
4314
4403
|
const locale = mesob?.locale;
|
|
4315
|
-
const
|
|
4316
|
-
const resolvedBackButton = showBack ? /* @__PURE__ */ jsx37(PageGoBack, { onBack: goBack, label: "Go back" }) : void 0;
|
|
4404
|
+
const resolvedBackButton = showBack && mesob?.goBack ? /* @__PURE__ */ jsx37(PageGoBack, { onBack: mesob.goBack, label: "Go back" }) : void 0;
|
|
4317
4405
|
const hrefBasedActiveTab = useMemo3(() => {
|
|
4318
4406
|
const hasPathname = Boolean(pathname);
|
|
4319
4407
|
const allHaveHref = tabs.every((t) => t.href);
|
|
@@ -4426,7 +4514,7 @@ function EntityDetailHeader({
|
|
|
4426
4514
|
};
|
|
4427
4515
|
const underline = isActive ? /* @__PURE__ */ jsx37("div", { className: "cn-entity-detail-header-underline absolute bottom-0 left-0 right-0 z-20 h-0.5 bg-primary" }) : null;
|
|
4428
4516
|
if (tab.href && LinkComponent) {
|
|
4429
|
-
return /* @__PURE__ */
|
|
4517
|
+
return /* @__PURE__ */ jsxs27(
|
|
4430
4518
|
LinkComponent,
|
|
4431
4519
|
{
|
|
4432
4520
|
href: tab.href,
|
|
@@ -4442,7 +4530,7 @@ function EntityDetailHeader({
|
|
|
4442
4530
|
tab.value
|
|
4443
4531
|
);
|
|
4444
4532
|
}
|
|
4445
|
-
return /* @__PURE__ */
|
|
4533
|
+
return /* @__PURE__ */ jsxs27(
|
|
4446
4534
|
"button",
|
|
4447
4535
|
{
|
|
4448
4536
|
type: "button",
|
|
@@ -4487,12 +4575,12 @@ function EntityDetailHeader({
|
|
|
4487
4575
|
if (loading) {
|
|
4488
4576
|
return /* @__PURE__ */ jsx37("div", { className: cn("flex flex-col gap-4", className), children: /* @__PURE__ */ jsx37(Skeleton, { className: "h-24 w-full rounded-xl" }) });
|
|
4489
4577
|
}
|
|
4490
|
-
return /* @__PURE__ */
|
|
4491
|
-
/* @__PURE__ */
|
|
4492
|
-
/* @__PURE__ */
|
|
4493
|
-
/* @__PURE__ */
|
|
4578
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
4579
|
+
/* @__PURE__ */ jsxs27(Card, { className: "overflow-hidden p-0 gap-0", children: [
|
|
4580
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center justify-between gap-2 pl-1 pr-4 pt-4", children: [
|
|
4581
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center ", children: [
|
|
4494
4582
|
resolvedBackButton,
|
|
4495
|
-
icon && (
|
|
4583
|
+
icon && (isValidElement3(icon) ? cloneElement(
|
|
4496
4584
|
icon,
|
|
4497
4585
|
{
|
|
4498
4586
|
className: cn(
|
|
@@ -4505,14 +4593,14 @@ function EntityDetailHeader({
|
|
|
4505
4593
|
] }),
|
|
4506
4594
|
actions && /* @__PURE__ */ jsx37("div", { className: "flex items-center gap-2", children: actions })
|
|
4507
4595
|
] }),
|
|
4508
|
-
/* @__PURE__ */
|
|
4509
|
-
/* @__PURE__ */ jsx37("div", { className: "mb-3 w-full sm:hidden", children: /* @__PURE__ */
|
|
4596
|
+
/* @__PURE__ */ jsxs27("div", { ref: containerRef, className: "w-full px-4", children: [
|
|
4597
|
+
/* @__PURE__ */ jsx37("div", { className: "mb-3 w-full sm:hidden", children: /* @__PURE__ */ jsxs27(
|
|
4510
4598
|
Select,
|
|
4511
4599
|
{
|
|
4512
4600
|
value: activeTab,
|
|
4513
4601
|
onValueChange: (v) => handleTabChange(v),
|
|
4514
4602
|
children: [
|
|
4515
|
-
/* @__PURE__ */
|
|
4603
|
+
/* @__PURE__ */ jsxs27(SelectTrigger, { className: "h-9 w-full gap-2 [&>svg:first-child]:shrink-0", children: [
|
|
4516
4604
|
/* @__PURE__ */ jsx37(IconMenu22, { className: "size-4 text-muted-foreground" }),
|
|
4517
4605
|
/* @__PURE__ */ jsx37(SelectValue, {})
|
|
4518
4606
|
] }),
|
|
@@ -4520,7 +4608,7 @@ function EntityDetailHeader({
|
|
|
4520
4608
|
]
|
|
4521
4609
|
}
|
|
4522
4610
|
) }),
|
|
4523
|
-
/* @__PURE__ */
|
|
4611
|
+
/* @__PURE__ */ jsxs27(
|
|
4524
4612
|
"div",
|
|
4525
4613
|
{
|
|
4526
4614
|
ref: tabsListRef,
|
|
@@ -4532,8 +4620,8 @@ function EntityDetailHeader({
|
|
|
4532
4620
|
);
|
|
4533
4621
|
return renderTab(tab, originalIndex);
|
|
4534
4622
|
}),
|
|
4535
|
-
overflowTabs.length > 0 && /* @__PURE__ */
|
|
4536
|
-
/* @__PURE__ */
|
|
4623
|
+
overflowTabs.length > 0 && /* @__PURE__ */ jsxs27(DropdownMenu, { children: [
|
|
4624
|
+
/* @__PURE__ */ jsxs27(
|
|
4537
4625
|
DropdownMenuTrigger,
|
|
4538
4626
|
{
|
|
4539
4627
|
ref: dropdownTriggerRef,
|
|
@@ -4564,7 +4652,7 @@ function EntityDetailHeader({
|
|
|
4564
4652
|
|
|
4565
4653
|
// src/components/entity/entity-drawer.tsx
|
|
4566
4654
|
import { useState as useState8 } from "react";
|
|
4567
|
-
import { Fragment as Fragment10, jsx as jsx38, jsxs as
|
|
4655
|
+
import { Fragment as Fragment10, jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4568
4656
|
var sizeClasses2 = {
|
|
4569
4657
|
sm: "w-full min-w-0 sm:!max-w-[26rem]",
|
|
4570
4658
|
md: "w-full min-w-0 sm:!max-w-[32rem]",
|
|
@@ -4592,7 +4680,7 @@ function EntityDrawer({
|
|
|
4592
4680
|
setShowConfirm(false);
|
|
4593
4681
|
onClose();
|
|
4594
4682
|
};
|
|
4595
|
-
return /* @__PURE__ */
|
|
4683
|
+
return /* @__PURE__ */ jsxs28(Fragment10, { children: [
|
|
4596
4684
|
/* @__PURE__ */ jsx38(
|
|
4597
4685
|
Sheet,
|
|
4598
4686
|
{
|
|
@@ -4607,7 +4695,7 @@ function EntityDrawer({
|
|
|
4607
4695
|
}
|
|
4608
4696
|
}
|
|
4609
4697
|
},
|
|
4610
|
-
children: /* @__PURE__ */
|
|
4698
|
+
children: /* @__PURE__ */ jsxs28(
|
|
4611
4699
|
SheetContent,
|
|
4612
4700
|
{
|
|
4613
4701
|
className: `${sizeClasses2[size]} flex min-h-0 flex-col overflow-hidden p-0`,
|
|
@@ -4620,12 +4708,12 @@ function EntityDrawer({
|
|
|
4620
4708
|
)
|
|
4621
4709
|
}
|
|
4622
4710
|
),
|
|
4623
|
-
/* @__PURE__ */ jsx38(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */
|
|
4624
|
-
/* @__PURE__ */
|
|
4711
|
+
/* @__PURE__ */ jsx38(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */ jsxs28(AlertDialogContent, { children: [
|
|
4712
|
+
/* @__PURE__ */ jsxs28(AlertDialogHeader, { children: [
|
|
4625
4713
|
/* @__PURE__ */ jsx38(AlertDialogTitle, { children: "Discard changes?" }),
|
|
4626
4714
|
/* @__PURE__ */ jsx38(AlertDialogDescription, { children: "You have unsaved changes. Are you sure you want to discard them?" })
|
|
4627
4715
|
] }),
|
|
4628
|
-
/* @__PURE__ */
|
|
4716
|
+
/* @__PURE__ */ jsxs28(AlertDialogFooter, { children: [
|
|
4629
4717
|
/* @__PURE__ */ jsx38(AlertDialogCancel, { children: "Cancel" }),
|
|
4630
4718
|
/* @__PURE__ */ jsx38(
|
|
4631
4719
|
AlertDialogAction,
|
|
@@ -4643,7 +4731,7 @@ function EntityDrawer({
|
|
|
4643
4731
|
// src/components/entity/entity-drawer-trigger.tsx
|
|
4644
4732
|
import { IconChevronRight as IconChevronRight3, IconPencil, IconPlus } from "@tabler/icons-react";
|
|
4645
4733
|
import { useState as useState9 } from "react";
|
|
4646
|
-
import { Fragment as Fragment11, jsx as jsx39, jsxs as
|
|
4734
|
+
import { Fragment as Fragment11, jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4647
4735
|
function EntityDrawerTrigger({
|
|
4648
4736
|
mode,
|
|
4649
4737
|
entity,
|
|
@@ -4673,7 +4761,7 @@ function EntityDrawerTrigger({
|
|
|
4673
4761
|
}
|
|
4674
4762
|
};
|
|
4675
4763
|
const buttonLabel = label || (mode === "new" ? `New ${entity}` : `Edit ${entity}`);
|
|
4676
|
-
return /* @__PURE__ */
|
|
4764
|
+
return /* @__PURE__ */ jsxs29(Fragment11, { children: [
|
|
4677
4765
|
mode === "edit" && variant === "icon" && /* @__PURE__ */ jsx39(
|
|
4678
4766
|
Button,
|
|
4679
4767
|
{
|
|
@@ -4796,7 +4884,7 @@ function EmptyContent({ className, ...props }) {
|
|
|
4796
4884
|
}
|
|
4797
4885
|
|
|
4798
4886
|
// src/components/entity/entity-empty-state.tsx
|
|
4799
|
-
import { jsx as jsx41, jsxs as
|
|
4887
|
+
import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4800
4888
|
function EntityEmptyState({
|
|
4801
4889
|
icon: Icon = IconPackage,
|
|
4802
4890
|
title,
|
|
@@ -4810,8 +4898,8 @@ function EntityEmptyState({
|
|
|
4810
4898
|
const defaultTitle = `No ${entityName}s yet`;
|
|
4811
4899
|
const defaultDescription = `Get started by creating your first ${entityName}.`;
|
|
4812
4900
|
const defaultActionLabel = `Create ${entityName}`;
|
|
4813
|
-
return /* @__PURE__ */
|
|
4814
|
-
/* @__PURE__ */
|
|
4901
|
+
return /* @__PURE__ */ jsxs30(Empty, { className: cn("cn-entity-empty-state w-full", className), children: [
|
|
4902
|
+
/* @__PURE__ */ jsxs30(EmptyHeader, { className: "flex w-full max-w-lg flex-col items-center text-center", children: [
|
|
4815
4903
|
/* @__PURE__ */ jsx41(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx41(Icon, { className: "size-5" }) }),
|
|
4816
4904
|
/* @__PURE__ */ jsx41(EmptyTitle, { children: title ?? defaultTitle }),
|
|
4817
4905
|
/* @__PURE__ */ jsx41(EmptyDescription, { children: description ?? defaultDescription })
|
|
@@ -4830,7 +4918,7 @@ function EntityEmptyState({
|
|
|
4830
4918
|
// src/components/entity/entity-filter.tsx
|
|
4831
4919
|
import { IconFilter } from "@tabler/icons-react";
|
|
4832
4920
|
import { parseAsInteger, parseAsString, useQueryState } from "nuqs";
|
|
4833
|
-
import { jsx as jsx42, jsxs as
|
|
4921
|
+
import { jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4834
4922
|
function EntityFilter({
|
|
4835
4923
|
options,
|
|
4836
4924
|
placeholder = "Filter",
|
|
@@ -4855,15 +4943,15 @@ function EntityFilter({
|
|
|
4855
4943
|
const validOptions = options.filter((opt) => opt.value !== "");
|
|
4856
4944
|
const filterLabel = displayValue === "" ? allLabel : options.find((o) => o.value === displayValue)?.label ?? placeholder;
|
|
4857
4945
|
const showPlaceholder = displayValue === void 0;
|
|
4858
|
-
return /* @__PURE__ */
|
|
4946
|
+
return /* @__PURE__ */ jsxs31("div", { className: cn("flex w-full items-center gap-2", className), children: [
|
|
4859
4947
|
label && /* @__PURE__ */ jsx42("span", { className: "shrink-0 text-sm text-muted-foreground", children: label }),
|
|
4860
|
-
/* @__PURE__ */ jsx42("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */
|
|
4948
|
+
/* @__PURE__ */ jsx42("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs31(
|
|
4861
4949
|
Select,
|
|
4862
4950
|
{
|
|
4863
4951
|
value: displayValue,
|
|
4864
4952
|
onValueChange: (v) => handleChange(v),
|
|
4865
4953
|
children: [
|
|
4866
|
-
/* @__PURE__ */
|
|
4954
|
+
/* @__PURE__ */ jsxs31(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
|
|
4867
4955
|
/* @__PURE__ */ jsx42(IconFilter, { className: "size-4" }),
|
|
4868
4956
|
/* @__PURE__ */ jsx42(
|
|
4869
4957
|
"span",
|
|
@@ -4876,7 +4964,7 @@ function EntityFilter({
|
|
|
4876
4964
|
}
|
|
4877
4965
|
)
|
|
4878
4966
|
] }),
|
|
4879
|
-
/* @__PURE__ */
|
|
4967
|
+
/* @__PURE__ */ jsxs31(SelectContent, { children: [
|
|
4880
4968
|
hasAllOption && /* @__PURE__ */ jsx42(SelectItem, { value: "", children: allLabel }, ""),
|
|
4881
4969
|
validOptions.map((option) => /* @__PURE__ */ jsx42(SelectItem, { value: option.value, children: option.label }, option.value))
|
|
4882
4970
|
] })
|
|
@@ -4888,7 +4976,7 @@ function EntityFilter({
|
|
|
4888
4976
|
|
|
4889
4977
|
// src/components/entity/entity-filter-state.tsx
|
|
4890
4978
|
import { IconFilter as IconFilter2 } from "@tabler/icons-react";
|
|
4891
|
-
import { jsx as jsx43, jsxs as
|
|
4979
|
+
import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4892
4980
|
function EntityFilterState({
|
|
4893
4981
|
value,
|
|
4894
4982
|
onValueChange,
|
|
@@ -4900,13 +4988,13 @@ function EntityFilterState({
|
|
|
4900
4988
|
const allLabel = options.find((o) => o.value === "")?.label ?? "All";
|
|
4901
4989
|
const displayValue = value === "" || value === "__all__" ? "" : value;
|
|
4902
4990
|
const label = displayValue === "" ? allLabel : options.find((o) => o.value === displayValue)?.label ?? placeholder;
|
|
4903
|
-
return /* @__PURE__ */ jsx43("div", { className: cn("flex w-full items-center gap-2", className), children: /* @__PURE__ */ jsx43("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */
|
|
4991
|
+
return /* @__PURE__ */ jsx43("div", { className: cn("flex w-full items-center gap-2", className), children: /* @__PURE__ */ jsx43("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs32(
|
|
4904
4992
|
Select,
|
|
4905
4993
|
{
|
|
4906
4994
|
value: displayValue,
|
|
4907
4995
|
onValueChange: (v) => onValueChange(v === "" ? "" : v),
|
|
4908
4996
|
children: [
|
|
4909
|
-
/* @__PURE__ */
|
|
4997
|
+
/* @__PURE__ */ jsxs32(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
|
|
4910
4998
|
/* @__PURE__ */ jsx43(IconFilter2, { className: "size-4" }),
|
|
4911
4999
|
/* @__PURE__ */ jsx43(
|
|
4912
5000
|
"span",
|
|
@@ -4919,7 +5007,7 @@ function EntityFilterState({
|
|
|
4919
5007
|
}
|
|
4920
5008
|
)
|
|
4921
5009
|
] }),
|
|
4922
|
-
/* @__PURE__ */
|
|
5010
|
+
/* @__PURE__ */ jsxs32(SelectContent, { children: [
|
|
4923
5011
|
hasAll && /* @__PURE__ */ jsx43(SelectItem, { value: "", children: allLabel }),
|
|
4924
5012
|
options.filter((o) => o.value !== "").map((opt) => /* @__PURE__ */ jsx43(SelectItem, { value: opt.value, children: opt.label }, opt.value))
|
|
4925
5013
|
] })
|
|
@@ -4934,7 +5022,7 @@ import {
|
|
|
4934
5022
|
IconRotateClockwise,
|
|
4935
5023
|
IconTrash as IconTrash3
|
|
4936
5024
|
} from "@tabler/icons-react";
|
|
4937
|
-
import { jsx as jsx44, jsxs as
|
|
5025
|
+
import { jsx as jsx44, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4938
5026
|
function EntityFormActions({
|
|
4939
5027
|
mode,
|
|
4940
5028
|
onSubmit,
|
|
@@ -4950,7 +5038,7 @@ function EntityFormActions({
|
|
|
4950
5038
|
}) {
|
|
4951
5039
|
const defaultSubmitLabel = mode === "new" ? "Create" : "Update";
|
|
4952
5040
|
const label = submitLabel || defaultSubmitLabel;
|
|
4953
|
-
return /* @__PURE__ */
|
|
5041
|
+
return /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
4954
5042
|
onSubmit && /* @__PURE__ */ jsx44(
|
|
4955
5043
|
Button,
|
|
4956
5044
|
{
|
|
@@ -4962,7 +5050,7 @@ function EntityFormActions({
|
|
|
4962
5050
|
children: label
|
|
4963
5051
|
}
|
|
4964
5052
|
),
|
|
4965
|
-
mode === "new" && onReset && /* @__PURE__ */
|
|
5053
|
+
mode === "new" && onReset && /* @__PURE__ */ jsxs33(
|
|
4966
5054
|
Button,
|
|
4967
5055
|
{
|
|
4968
5056
|
variant: "outline",
|
|
@@ -4975,7 +5063,7 @@ function EntityFormActions({
|
|
|
4975
5063
|
]
|
|
4976
5064
|
}
|
|
4977
5065
|
),
|
|
4978
|
-
mode === "edit" && onDelete && /* @__PURE__ */
|
|
5066
|
+
mode === "edit" && onDelete && /* @__PURE__ */ jsxs33(AlertDialog, { children: [
|
|
4979
5067
|
/* @__PURE__ */ jsx44(
|
|
4980
5068
|
AlertDialogTrigger,
|
|
4981
5069
|
{
|
|
@@ -4992,16 +5080,16 @@ function EntityFormActions({
|
|
|
4992
5080
|
children: deleteLabel
|
|
4993
5081
|
}
|
|
4994
5082
|
),
|
|
4995
|
-
/* @__PURE__ */
|
|
4996
|
-
/* @__PURE__ */
|
|
5083
|
+
/* @__PURE__ */ jsxs33(AlertDialogContent, { children: [
|
|
5084
|
+
/* @__PURE__ */ jsxs33(AlertDialogHeader, { children: [
|
|
4997
5085
|
/* @__PURE__ */ jsx44(AlertDialogTitle, { children: "Are you sure?" }),
|
|
4998
|
-
/* @__PURE__ */
|
|
5086
|
+
/* @__PURE__ */ jsxs33(AlertDialogDescription, { children: [
|
|
4999
5087
|
"This will permanently delete this ",
|
|
5000
5088
|
itemName,
|
|
5001
5089
|
". This action cannot be undone."
|
|
5002
5090
|
] })
|
|
5003
5091
|
] }),
|
|
5004
|
-
/* @__PURE__ */
|
|
5092
|
+
/* @__PURE__ */ jsxs33(AlertDialogFooter, { children: [
|
|
5005
5093
|
/* @__PURE__ */ jsx44(AlertDialogCancel, { children: "Cancel" }),
|
|
5006
5094
|
/* @__PURE__ */ jsx44(AlertDialogAction, { onClick: onDelete, variant: "destructive", children: "Delete" })
|
|
5007
5095
|
] })
|
|
@@ -5023,7 +5111,7 @@ function EntityFormActions({
|
|
|
5023
5111
|
// src/components/entity/entity-header.tsx
|
|
5024
5112
|
import { IconChevronDown as IconChevronDown5, IconChevronUp as IconChevronUp2 } from "@tabler/icons-react";
|
|
5025
5113
|
import { useState as useState10 } from "react";
|
|
5026
|
-
import { jsx as jsx45, jsxs as
|
|
5114
|
+
import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5027
5115
|
function EntityHeader({
|
|
5028
5116
|
title,
|
|
5029
5117
|
icon,
|
|
@@ -5037,13 +5125,13 @@ function EntityHeader({
|
|
|
5037
5125
|
const [toolbarOpen, setToolbarOpen] = useState10(false);
|
|
5038
5126
|
const hasToolbar = [search, filter, sort, view].some(Boolean);
|
|
5039
5127
|
const hasTitleRow = title || icon || actions;
|
|
5040
|
-
const content = /* @__PURE__ */
|
|
5041
|
-
hasTitleRow && /* @__PURE__ */
|
|
5042
|
-
/* @__PURE__ */
|
|
5128
|
+
const content = /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-4", children: [
|
|
5129
|
+
hasTitleRow && /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
|
|
5130
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2", children: [
|
|
5043
5131
|
icon,
|
|
5044
5132
|
/* @__PURE__ */ jsx45("span", { className: "text-lg font-semibold", children: title })
|
|
5045
5133
|
] }),
|
|
5046
|
-
/* @__PURE__ */
|
|
5134
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-3", children: [
|
|
5047
5135
|
actions,
|
|
5048
5136
|
hasToolbar && /* @__PURE__ */ jsx45(
|
|
5049
5137
|
Button,
|
|
@@ -5059,7 +5147,7 @@ function EntityHeader({
|
|
|
5059
5147
|
)
|
|
5060
5148
|
] })
|
|
5061
5149
|
] }),
|
|
5062
|
-
hasToolbar && /* @__PURE__ */
|
|
5150
|
+
hasToolbar && /* @__PURE__ */ jsxs34(
|
|
5063
5151
|
"div",
|
|
5064
5152
|
{
|
|
5065
5153
|
className: cn(
|
|
@@ -5069,7 +5157,7 @@ function EntityHeader({
|
|
|
5069
5157
|
),
|
|
5070
5158
|
children: [
|
|
5071
5159
|
/* @__PURE__ */ jsx45("div", { className: "w-full min-w-0 flex-1 md:min-w-[12rem]", children: search }),
|
|
5072
|
-
/* @__PURE__ */
|
|
5160
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex w-full shrink-0 flex-col gap-2 *:w-full md:w-auto md:flex-row md:items-center md:gap-2 md:*:w-auto", children: [
|
|
5073
5161
|
filter,
|
|
5074
5162
|
sort,
|
|
5075
5163
|
view
|
|
@@ -5171,7 +5259,7 @@ function TableCaption({
|
|
|
5171
5259
|
}
|
|
5172
5260
|
|
|
5173
5261
|
// src/components/entity/entity-loading-state.tsx
|
|
5174
|
-
import { jsx as jsx47, jsxs as
|
|
5262
|
+
import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
5175
5263
|
function EntityLoadingState({
|
|
5176
5264
|
view,
|
|
5177
5265
|
rowCount = 5,
|
|
@@ -5195,7 +5283,7 @@ function EntityLoadingState({
|
|
|
5195
5283
|
return Array.from({ length: cardCount }, makeKey);
|
|
5196
5284
|
}, [cardCount, makeKey]);
|
|
5197
5285
|
if (view === "table") {
|
|
5198
|
-
return /* @__PURE__ */ jsx47("div", { className: cn("cn-entity-loading-table", className), children: /* @__PURE__ */
|
|
5286
|
+
return /* @__PURE__ */ jsx47("div", { className: cn("cn-entity-loading-table", className), children: /* @__PURE__ */ jsxs35(Table, { children: [
|
|
5199
5287
|
/* @__PURE__ */ jsx47(TableHeader, { children: /* @__PURE__ */ jsx47(TableRow, { children: Array.from({ length: columnCount }).map((_, i) => /* @__PURE__ */ jsx47(TableHead, { children: /* @__PURE__ */ jsx47(Skeleton, { className: "h-4 w-24" }) }, headerKeys[i])) }) }),
|
|
5200
5288
|
/* @__PURE__ */ jsx47(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx47(TableRow, { children: Array.from({ length: columnCount }).map((_2, colIndex) => /* @__PURE__ */ jsx47(TableCell, { children: /* @__PURE__ */ jsx47(Skeleton, { className: "h-4 w-full" }) }, cellKeys[rowIndex][colIndex])) }, rowKeys[rowIndex])) })
|
|
5201
5289
|
] }) });
|
|
@@ -5207,12 +5295,12 @@ function EntityLoadingState({
|
|
|
5207
5295
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",
|
|
5208
5296
|
className
|
|
5209
5297
|
),
|
|
5210
|
-
children: Array.from({ length: cardCount }).map((_, i) => /* @__PURE__ */
|
|
5211
|
-
/* @__PURE__ */
|
|
5298
|
+
children: Array.from({ length: cardCount }).map((_, i) => /* @__PURE__ */ jsxs35("div", { className: "cn-entity-loading-card", children: [
|
|
5299
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2", children: [
|
|
5212
5300
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-4 w-4 rounded-full" }),
|
|
5213
5301
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-32" })
|
|
5214
5302
|
] }),
|
|
5215
|
-
/* @__PURE__ */
|
|
5303
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex gap-2", children: [
|
|
5216
5304
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-16" }),
|
|
5217
5305
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-16" })
|
|
5218
5306
|
] }),
|
|
@@ -5229,7 +5317,7 @@ import { IconSearch as IconSearch3, IconX as IconX3 } from "@tabler/icons-react"
|
|
|
5229
5317
|
import { parseAsInteger as parseAsInteger2, parseAsString as parseAsString2, useQueryState as useQueryState2 } from "nuqs";
|
|
5230
5318
|
import { useRef as useRef4 } from "react";
|
|
5231
5319
|
import { useDebouncedCallback } from "use-debounce";
|
|
5232
|
-
import { jsx as jsx48, jsxs as
|
|
5320
|
+
import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5233
5321
|
function EntitySearch({
|
|
5234
5322
|
paramKey = "search",
|
|
5235
5323
|
placeholder = "Search...",
|
|
@@ -5252,7 +5340,7 @@ function EntitySearch({
|
|
|
5252
5340
|
ref.current.value = "";
|
|
5253
5341
|
}
|
|
5254
5342
|
};
|
|
5255
|
-
return /* @__PURE__ */
|
|
5343
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("relative w-full min-w-0", className), children: [
|
|
5256
5344
|
/* @__PURE__ */ jsx48(IconSearch3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
|
|
5257
5345
|
/* @__PURE__ */ jsx48(
|
|
5258
5346
|
Input,
|
|
@@ -5280,7 +5368,7 @@ function EntitySearch({
|
|
|
5280
5368
|
import { IconSearch as IconSearch4, IconX as IconX4 } from "@tabler/icons-react";
|
|
5281
5369
|
import { useRef as useRef5 } from "react";
|
|
5282
5370
|
import { useDebouncedCallback as useDebouncedCallback2 } from "use-debounce";
|
|
5283
|
-
import { jsx as jsx49, jsxs as
|
|
5371
|
+
import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5284
5372
|
function EntitySearchState({
|
|
5285
5373
|
value,
|
|
5286
5374
|
onValueChange,
|
|
@@ -5298,7 +5386,7 @@ function EntitySearchState({
|
|
|
5298
5386
|
ref.current.value = "";
|
|
5299
5387
|
}
|
|
5300
5388
|
};
|
|
5301
|
-
return /* @__PURE__ */
|
|
5389
|
+
return /* @__PURE__ */ jsxs37("div", { className: cn("relative w-full min-w-0", className), children: [
|
|
5302
5390
|
/* @__PURE__ */ jsx49(IconSearch4, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
|
|
5303
5391
|
/* @__PURE__ */ jsx49(
|
|
5304
5392
|
Input,
|
|
@@ -5324,7 +5412,7 @@ function EntitySearchState({
|
|
|
5324
5412
|
|
|
5325
5413
|
// src/components/layout/section/section.tsx
|
|
5326
5414
|
import { useState as useState11 } from "react";
|
|
5327
|
-
import { jsx as jsx50, jsxs as
|
|
5415
|
+
import { jsx as jsx50, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5328
5416
|
function Section({
|
|
5329
5417
|
title,
|
|
5330
5418
|
children,
|
|
@@ -5343,14 +5431,14 @@ function Section({
|
|
|
5343
5431
|
setOpen(next);
|
|
5344
5432
|
onOpenChange?.(next);
|
|
5345
5433
|
};
|
|
5346
|
-
return /* @__PURE__ */
|
|
5434
|
+
return /* @__PURE__ */ jsxs38(
|
|
5347
5435
|
Card,
|
|
5348
5436
|
{
|
|
5349
5437
|
className: cn("gap-0 p-0", className),
|
|
5350
5438
|
"data-slot": "section",
|
|
5351
5439
|
"data-state": open ? "open" : "closed",
|
|
5352
5440
|
children: [
|
|
5353
|
-
/* @__PURE__ */
|
|
5441
|
+
/* @__PURE__ */ jsxs38(
|
|
5354
5442
|
"div",
|
|
5355
5443
|
{
|
|
5356
5444
|
className: cn(
|
|
@@ -5360,7 +5448,7 @@ function Section({
|
|
|
5360
5448
|
),
|
|
5361
5449
|
children: [
|
|
5362
5450
|
/* @__PURE__ */ jsx50("div", { className: "text-lg font-semibold", children: title }),
|
|
5363
|
-
/* @__PURE__ */
|
|
5451
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2", children: [
|
|
5364
5452
|
open && actions,
|
|
5365
5453
|
/* @__PURE__ */ jsx50(
|
|
5366
5454
|
Button,
|
|
@@ -5377,7 +5465,7 @@ function Section({
|
|
|
5377
5465
|
]
|
|
5378
5466
|
}
|
|
5379
5467
|
),
|
|
5380
|
-
open ? /* @__PURE__ */
|
|
5468
|
+
open ? /* @__PURE__ */ jsxs38("div", { "data-slot": "section-content", children: [
|
|
5381
5469
|
/* @__PURE__ */ jsx50("div", { className: cn("p-4", contentClassName), children: lazy ? open && children : children }),
|
|
5382
5470
|
footer ? /* @__PURE__ */ jsx50(
|
|
5383
5471
|
"div",
|
|
@@ -5398,7 +5486,7 @@ import {
|
|
|
5398
5486
|
IconSortAscendingLetters,
|
|
5399
5487
|
IconSortDescendingLetters
|
|
5400
5488
|
} from "@tabler/icons-react";
|
|
5401
|
-
import { jsx as jsx51, jsxs as
|
|
5489
|
+
import { jsx as jsx51, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5402
5490
|
function EntitySortState({
|
|
5403
5491
|
sort,
|
|
5404
5492
|
order,
|
|
@@ -5408,8 +5496,8 @@ function EntitySortState({
|
|
|
5408
5496
|
className
|
|
5409
5497
|
}) {
|
|
5410
5498
|
const sortLabel = options.find((o) => o.value === sort)?.label;
|
|
5411
|
-
return /* @__PURE__ */
|
|
5412
|
-
/* @__PURE__ */ jsx51("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */
|
|
5499
|
+
return /* @__PURE__ */ jsxs39("div", { className: cn("flex w-full items-center gap-0", className), children: [
|
|
5500
|
+
/* @__PURE__ */ jsx51("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs39(Select, { value: sort, onValueChange: (v) => onSortChange(v), children: [
|
|
5413
5501
|
/* @__PURE__ */ jsx51(SelectTrigger, { className: "h-9 w-full min-w-[150px] rounded-r-none border-r-0", children: /* @__PURE__ */ jsx51(
|
|
5414
5502
|
"span",
|
|
5415
5503
|
{
|
|
@@ -5557,7 +5645,7 @@ function EntityViewToggleState({
|
|
|
5557
5645
|
}
|
|
5558
5646
|
|
|
5559
5647
|
// src/components/entity/entity-section.tsx
|
|
5560
|
-
import { jsx as jsx54, jsxs as
|
|
5648
|
+
import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5561
5649
|
function EntitySection({
|
|
5562
5650
|
title,
|
|
5563
5651
|
icon,
|
|
@@ -5603,7 +5691,7 @@ function EntitySection({
|
|
|
5603
5691
|
const filterOpts = config.filterOptions ?? filterOptions;
|
|
5604
5692
|
const sortOpts = config.sortOptions ?? sortOptions;
|
|
5605
5693
|
const viewOpts = config.views ?? views;
|
|
5606
|
-
return /* @__PURE__ */ jsx54(Section, { title, onOpenChange, actions, children: /* @__PURE__ */
|
|
5694
|
+
return /* @__PURE__ */ jsx54(Section, { title, onOpenChange, actions, children: /* @__PURE__ */ jsxs40("div", { className: "space-y-4", children: [
|
|
5607
5695
|
showToolbar && /* @__PURE__ */ jsx54(
|
|
5608
5696
|
EntityHeader,
|
|
5609
5697
|
{
|
|
@@ -5710,7 +5798,7 @@ function Checkbox({
|
|
|
5710
5798
|
// src/components/ui/chip.tsx
|
|
5711
5799
|
import { IconX as IconX5 } from "@tabler/icons-react";
|
|
5712
5800
|
import { cva as cva8 } from "class-variance-authority";
|
|
5713
|
-
import { jsx as jsx56, jsxs as
|
|
5801
|
+
import { jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5714
5802
|
var chipVariants = cva8(
|
|
5715
5803
|
"cn-chip inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium transition-colors border",
|
|
5716
5804
|
{
|
|
@@ -5735,7 +5823,7 @@ function Chip({
|
|
|
5735
5823
|
children,
|
|
5736
5824
|
...props
|
|
5737
5825
|
}) {
|
|
5738
|
-
return /* @__PURE__ */
|
|
5826
|
+
return /* @__PURE__ */ jsxs41(
|
|
5739
5827
|
"div",
|
|
5740
5828
|
{
|
|
5741
5829
|
"data-slot": "chip",
|
|
@@ -5766,7 +5854,7 @@ import {
|
|
|
5766
5854
|
IconChevronsRight
|
|
5767
5855
|
} from "@tabler/icons-react";
|
|
5768
5856
|
import { useTranslations } from "next-intl";
|
|
5769
|
-
import { jsx as jsx57, jsxs as
|
|
5857
|
+
import { jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5770
5858
|
function addRange(pages, start, end) {
|
|
5771
5859
|
for (let i = start; i <= end; i++) {
|
|
5772
5860
|
pages.push(i);
|
|
@@ -5820,16 +5908,16 @@ function DataTablePagination({
|
|
|
5820
5908
|
const hasSelection = selectedRows > 0;
|
|
5821
5909
|
const rowText = hasSelection ? `${selectedRows} ${t("of")} ${totalRows} ${rowLabel} ${t("selected")}` : `${totalRows} ${rowLabel} ${t("total")}`;
|
|
5822
5910
|
const pageText = `${t("page")} ${pageIndex + 1} ${t("of")} ${pageCount || 1}`;
|
|
5823
|
-
return /* @__PURE__ */
|
|
5824
|
-
/* @__PURE__ */
|
|
5825
|
-
/* @__PURE__ */ jsx57("div", { className: "cn-data-table-pagination-summary text-muted-foreground", children: /* @__PURE__ */
|
|
5911
|
+
return /* @__PURE__ */ jsxs42("div", { className: "cn-data-table-pagination flex flex-col sm:flex-row", children: [
|
|
5912
|
+
/* @__PURE__ */ jsxs42("div", { className: "cn-data-table-pagination-left flex items-center justify-center sm:justify-start", children: [
|
|
5913
|
+
/* @__PURE__ */ jsx57("div", { className: "cn-data-table-pagination-summary text-muted-foreground", children: /* @__PURE__ */ jsxs42("span", { children: [
|
|
5826
5914
|
rowText,
|
|
5827
5915
|
/* @__PURE__ */ jsx57("span", { className: "mx-2", children: "\xB7" }),
|
|
5828
5916
|
pageText
|
|
5829
5917
|
] }) }),
|
|
5830
|
-
/* @__PURE__ */
|
|
5918
|
+
/* @__PURE__ */ jsxs42("div", { className: "cn-data-table-pagination-size flex items-center", children: [
|
|
5831
5919
|
/* @__PURE__ */ jsx57("span", { className: "cn-data-table-pagination-size-label font-medium whitespace-nowrap", children: t("rowsPerPage") }),
|
|
5832
|
-
/* @__PURE__ */
|
|
5920
|
+
/* @__PURE__ */ jsxs42(
|
|
5833
5921
|
Select,
|
|
5834
5922
|
{
|
|
5835
5923
|
value: `${pageSize}`,
|
|
@@ -5848,13 +5936,13 @@ function DataTablePagination({
|
|
|
5848
5936
|
)
|
|
5849
5937
|
] })
|
|
5850
5938
|
] }),
|
|
5851
|
-
/* @__PURE__ */ jsx57("div", { className: "cn-data-table-pagination-right flex justify-center sm:justify-end", children: /* @__PURE__ */
|
|
5939
|
+
/* @__PURE__ */ jsx57("div", { className: "cn-data-table-pagination-right flex justify-center sm:justify-end", children: /* @__PURE__ */ jsxs42(
|
|
5852
5940
|
"nav",
|
|
5853
5941
|
{
|
|
5854
5942
|
"aria-label": "Pagination",
|
|
5855
5943
|
className: "cn-data-table-pagination-nav flex items-center gap-1",
|
|
5856
5944
|
children: [
|
|
5857
|
-
/* @__PURE__ */
|
|
5945
|
+
/* @__PURE__ */ jsxs42(
|
|
5858
5946
|
Button,
|
|
5859
5947
|
{
|
|
5860
5948
|
variant: "outline",
|
|
@@ -5869,7 +5957,7 @@ function DataTablePagination({
|
|
|
5869
5957
|
]
|
|
5870
5958
|
}
|
|
5871
5959
|
),
|
|
5872
|
-
/* @__PURE__ */
|
|
5960
|
+
/* @__PURE__ */ jsxs42(
|
|
5873
5961
|
Button,
|
|
5874
5962
|
{
|
|
5875
5963
|
variant: "outline",
|
|
@@ -5914,7 +6002,7 @@ function DataTablePagination({
|
|
|
5914
6002
|
pageNum
|
|
5915
6003
|
);
|
|
5916
6004
|
}),
|
|
5917
|
-
/* @__PURE__ */
|
|
6005
|
+
/* @__PURE__ */ jsxs42(
|
|
5918
6006
|
Button,
|
|
5919
6007
|
{
|
|
5920
6008
|
variant: "outline",
|
|
@@ -5929,7 +6017,7 @@ function DataTablePagination({
|
|
|
5929
6017
|
]
|
|
5930
6018
|
}
|
|
5931
6019
|
),
|
|
5932
|
-
/* @__PURE__ */
|
|
6020
|
+
/* @__PURE__ */ jsxs42(
|
|
5933
6021
|
Button,
|
|
5934
6022
|
{
|
|
5935
6023
|
variant: "outline",
|
|
@@ -6036,7 +6124,7 @@ function RadioGroupItem({
|
|
|
6036
6124
|
}
|
|
6037
6125
|
|
|
6038
6126
|
// src/components/entity/entity-selector-modal.tsx
|
|
6039
|
-
import { jsx as jsx59, jsxs as
|
|
6127
|
+
import { jsx as jsx59, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6040
6128
|
var modalSizeClasses = {
|
|
6041
6129
|
sm: "sm:max-w-[28rem]",
|
|
6042
6130
|
md: "sm:max-w-[36rem]",
|
|
@@ -6053,7 +6141,7 @@ function EntitySelectorModal({
|
|
|
6053
6141
|
footer,
|
|
6054
6142
|
children
|
|
6055
6143
|
}) {
|
|
6056
|
-
return /* @__PURE__ */ jsx59(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
6144
|
+
return /* @__PURE__ */ jsx59(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs43(
|
|
6057
6145
|
DialogContent,
|
|
6058
6146
|
{
|
|
6059
6147
|
className: cn(
|
|
@@ -6096,7 +6184,7 @@ function useEntityPagination({
|
|
|
6096
6184
|
}
|
|
6097
6185
|
|
|
6098
6186
|
// src/components/entity/entity-selector.tsx
|
|
6099
|
-
import { Fragment as Fragment12, jsx as jsx60, jsxs as
|
|
6187
|
+
import { Fragment as Fragment12, jsx as jsx60, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6100
6188
|
function EntitySelectorFooter({
|
|
6101
6189
|
onCancel,
|
|
6102
6190
|
onSelect,
|
|
@@ -6121,9 +6209,9 @@ function EntitySelectorFooter({
|
|
|
6121
6209
|
hint = ` (${selectedCount})`;
|
|
6122
6210
|
}
|
|
6123
6211
|
}
|
|
6124
|
-
return /* @__PURE__ */
|
|
6212
|
+
return /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6125
6213
|
/* @__PURE__ */ jsx60(Button, { variant: "outline", size: "md", onClick: onCancel, children: "Cancel" }),
|
|
6126
|
-
/* @__PURE__ */
|
|
6214
|
+
/* @__PURE__ */ jsxs44(
|
|
6127
6215
|
Button,
|
|
6128
6216
|
{
|
|
6129
6217
|
variant: "default",
|
|
@@ -6283,7 +6371,7 @@ function EntitySelector({
|
|
|
6283
6371
|
}
|
|
6284
6372
|
);
|
|
6285
6373
|
} else {
|
|
6286
|
-
content = /* @__PURE__ */
|
|
6374
|
+
content = /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6287
6375
|
/* @__PURE__ */ jsx60(
|
|
6288
6376
|
EntityHeader,
|
|
6289
6377
|
{
|
|
@@ -6326,13 +6414,13 @@ function EntitySelector({
|
|
|
6326
6414
|
) : void 0
|
|
6327
6415
|
}
|
|
6328
6416
|
),
|
|
6329
|
-
state2.view === "table" || !renderCard ? /* @__PURE__ */
|
|
6330
|
-
multiple ? /* @__PURE__ */
|
|
6331
|
-
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */
|
|
6417
|
+
state2.view === "table" || !renderCard ? /* @__PURE__ */ jsxs44("div", { className: "space-y-4", children: [
|
|
6418
|
+
multiple ? /* @__PURE__ */ jsxs44(DisplayTable, { withTableBorder: true, children: [
|
|
6419
|
+
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */ jsxs44(DisplayTableTr, { children: [
|
|
6332
6420
|
/* @__PURE__ */ jsx60(DisplayTableTh, { className: "w-[50px]" }),
|
|
6333
6421
|
columns.map((col) => /* @__PURE__ */ jsx60(DisplayTableTh, { className: col.className, children: col.header }, col.key))
|
|
6334
6422
|
] }) }),
|
|
6335
|
-
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */
|
|
6423
|
+
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */ jsxs44(
|
|
6336
6424
|
DisplayTableTr,
|
|
6337
6425
|
{
|
|
6338
6426
|
className: "group",
|
|
@@ -6362,12 +6450,12 @@ function EntitySelector({
|
|
|
6362
6450
|
handleRowSelectionChange(() => ({ [id]: true }));
|
|
6363
6451
|
}
|
|
6364
6452
|
},
|
|
6365
|
-
children: /* @__PURE__ */
|
|
6366
|
-
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */
|
|
6453
|
+
children: /* @__PURE__ */ jsxs44(DisplayTable, { withTableBorder: true, children: [
|
|
6454
|
+
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */ jsxs44(DisplayTableTr, { children: [
|
|
6367
6455
|
/* @__PURE__ */ jsx60(DisplayTableTh, { className: "w-[50px]" }),
|
|
6368
6456
|
columns.map((col) => /* @__PURE__ */ jsx60(DisplayTableTh, { className: col.className, children: col.header }, col.key))
|
|
6369
6457
|
] }) }),
|
|
6370
|
-
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */
|
|
6458
|
+
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */ jsxs44(
|
|
6371
6459
|
DisplayTableTr,
|
|
6372
6460
|
{
|
|
6373
6461
|
className: cn(
|
|
@@ -6400,7 +6488,7 @@ function EntitySelector({
|
|
|
6400
6488
|
}
|
|
6401
6489
|
}
|
|
6402
6490
|
)
|
|
6403
|
-
] }) : /* @__PURE__ */
|
|
6491
|
+
] }) : /* @__PURE__ */ jsxs44("div", { className: "space-y-4", children: [
|
|
6404
6492
|
/* @__PURE__ */ jsx60("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4", children: items.map((item) => /* @__PURE__ */ jsx60("div", { children: renderCard(
|
|
6405
6493
|
item,
|
|
6406
6494
|
Boolean(rowSelection[item.id]),
|
|
@@ -6438,7 +6526,7 @@ function EntitySelector({
|
|
|
6438
6526
|
] })
|
|
6439
6527
|
] });
|
|
6440
6528
|
}
|
|
6441
|
-
return /* @__PURE__ */
|
|
6529
|
+
return /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6442
6530
|
/* @__PURE__ */ jsx60(
|
|
6443
6531
|
"div",
|
|
6444
6532
|
{
|
|
@@ -6474,8 +6562,8 @@ function EntitySelector({
|
|
|
6474
6562
|
maxSelect
|
|
6475
6563
|
}
|
|
6476
6564
|
),
|
|
6477
|
-
children: /* @__PURE__ */
|
|
6478
|
-
selectedItems.length > 0 && /* @__PURE__ */
|
|
6565
|
+
children: /* @__PURE__ */ jsxs44("div", { className: "flex flex-col gap-4", children: [
|
|
6566
|
+
selectedItems.length > 0 && /* @__PURE__ */ jsxs44("div", { className: "cn-selector-selected-bar", children: [
|
|
6479
6567
|
/* @__PURE__ */ jsx60("span", { className: "cn-selector-selected-bar-label", children: "Selected:" }),
|
|
6480
6568
|
selectedItems.map((item) => /* @__PURE__ */ jsx60(
|
|
6481
6569
|
Chip,
|
|
@@ -6504,7 +6592,7 @@ import {
|
|
|
6504
6592
|
IconSortDescendingLetters as IconSortDescendingLetters2
|
|
6505
6593
|
} from "@tabler/icons-react";
|
|
6506
6594
|
import { parseAsInteger as parseAsInteger3, parseAsString as parseAsString3, useQueryState as useQueryState3 } from "nuqs";
|
|
6507
|
-
import { jsx as jsx61, jsxs as
|
|
6595
|
+
import { jsx as jsx61, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6508
6596
|
function EntitySort({
|
|
6509
6597
|
options,
|
|
6510
6598
|
defaultSort = "createdAt",
|
|
@@ -6529,8 +6617,8 @@ function EntitySort({
|
|
|
6529
6617
|
setPage(1);
|
|
6530
6618
|
};
|
|
6531
6619
|
const sortLabel = options.find((o) => o.value === sort)?.label;
|
|
6532
|
-
return /* @__PURE__ */
|
|
6533
|
-
/* @__PURE__ */ jsx61("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */
|
|
6620
|
+
return /* @__PURE__ */ jsxs45("div", { className: cn("flex w-full items-center gap-0", className), children: [
|
|
6621
|
+
/* @__PURE__ */ jsx61("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs45(
|
|
6534
6622
|
Select,
|
|
6535
6623
|
{
|
|
6536
6624
|
value: sort,
|
|
@@ -6810,7 +6898,7 @@ function Image({
|
|
|
6810
6898
|
}
|
|
6811
6899
|
|
|
6812
6900
|
// src/components/files/file-upload.tsx
|
|
6813
|
-
import { jsx as jsx64, jsxs as
|
|
6901
|
+
import { jsx as jsx64, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6814
6902
|
function formatBytes(size) {
|
|
6815
6903
|
if (!size) {
|
|
6816
6904
|
return null;
|
|
@@ -6906,7 +6994,7 @@ function FilePreview({ item }) {
|
|
|
6906
6994
|
{
|
|
6907
6995
|
"data-slot": "file-upload-preview",
|
|
6908
6996
|
className: "cn-file-upload-preview flex aspect-[4/3] items-center justify-center p-3",
|
|
6909
|
-
children: /* @__PURE__ */
|
|
6997
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-col items-center gap-2 text-center", children: [
|
|
6910
6998
|
/* @__PURE__ */ jsx64(AudioIcon, { className: "text-muted-foreground size-8" }),
|
|
6911
6999
|
/* @__PURE__ */ jsx64("span", { className: "text-muted-foreground text-xs", children: "Audio preview" })
|
|
6912
7000
|
] })
|
|
@@ -7044,7 +7132,7 @@ function FileUpload({
|
|
|
7044
7132
|
let listContent = null;
|
|
7045
7133
|
if (showList) {
|
|
7046
7134
|
if (items.length > 0) {
|
|
7047
|
-
listContent = /* @__PURE__ */
|
|
7135
|
+
listContent = /* @__PURE__ */ jsxs46(
|
|
7048
7136
|
"div",
|
|
7049
7137
|
{
|
|
7050
7138
|
"data-slot": "file-upload-list",
|
|
@@ -7052,19 +7140,19 @@ function FileUpload({
|
|
|
7052
7140
|
children: [
|
|
7053
7141
|
items.map((item) => {
|
|
7054
7142
|
const FileIcon = getFileIcon(item.type);
|
|
7055
|
-
return /* @__PURE__ */
|
|
7143
|
+
return /* @__PURE__ */ jsxs46(
|
|
7056
7144
|
"div",
|
|
7057
7145
|
{
|
|
7058
7146
|
"data-slot": "file-upload-item",
|
|
7059
7147
|
className: "cn-file-upload-item flex flex-col gap-3 overflow-hidden",
|
|
7060
7148
|
children: [
|
|
7061
7149
|
/* @__PURE__ */ jsx64(FilePreview, { item }),
|
|
7062
|
-
/* @__PURE__ */
|
|
7063
|
-
/* @__PURE__ */
|
|
7150
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex items-start justify-between gap-3 px-3 pb-3", children: [
|
|
7151
|
+
/* @__PURE__ */ jsxs46("div", { className: "flex min-w-0 items-start gap-3", children: [
|
|
7064
7152
|
/* @__PURE__ */ jsx64("div", { className: "cn-file-upload-item-icon text-muted-foreground flex size-9 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx64(FileIcon, { className: "size-4" }) }),
|
|
7065
|
-
/* @__PURE__ */
|
|
7153
|
+
/* @__PURE__ */ jsxs46("div", { className: "min-w-0", children: [
|
|
7066
7154
|
/* @__PURE__ */ jsx64("div", { className: "truncate text-sm font-medium", children: item.name }),
|
|
7067
|
-
/* @__PURE__ */
|
|
7155
|
+
/* @__PURE__ */ jsxs46("div", { className: "text-muted-foreground flex flex-wrap gap-x-2 text-xs", children: [
|
|
7068
7156
|
formatBytes(item.size) ? /* @__PURE__ */ jsx64("span", { children: formatBytes(item.size) }) : null,
|
|
7069
7157
|
/* @__PURE__ */ jsx64("span", { children: item.source === "remote" ? "uploaded" : "local" })
|
|
7070
7158
|
] })
|
|
@@ -7113,13 +7201,13 @@ function FileUpload({
|
|
|
7113
7201
|
);
|
|
7114
7202
|
}
|
|
7115
7203
|
}
|
|
7116
|
-
return /* @__PURE__ */
|
|
7204
|
+
return /* @__PURE__ */ jsxs46(
|
|
7117
7205
|
"div",
|
|
7118
7206
|
{
|
|
7119
7207
|
"data-slot": "file-upload-wrapper",
|
|
7120
7208
|
className: cn("flex flex-col gap-4", className),
|
|
7121
7209
|
children: [
|
|
7122
|
-
/* @__PURE__ */
|
|
7210
|
+
/* @__PURE__ */ jsxs46(
|
|
7123
7211
|
"label",
|
|
7124
7212
|
{
|
|
7125
7213
|
"data-slot": "file-upload-dropzone",
|
|
@@ -7154,15 +7242,15 @@ function FileUpload({
|
|
|
7154
7242
|
onChange: handleInputChange
|
|
7155
7243
|
}
|
|
7156
7244
|
),
|
|
7157
|
-
/* @__PURE__ */
|
|
7245
|
+
/* @__PURE__ */ jsxs46(
|
|
7158
7246
|
"div",
|
|
7159
7247
|
{
|
|
7160
7248
|
"data-slot": "file-upload-prompt",
|
|
7161
7249
|
className: "cn-file-upload-prompt flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
7162
7250
|
children: [
|
|
7163
|
-
/* @__PURE__ */
|
|
7251
|
+
/* @__PURE__ */ jsxs46("div", { className: "cn-file-upload-prompt-main flex items-start gap-3", children: [
|
|
7164
7252
|
/* @__PURE__ */ jsx64("div", { className: "cn-file-upload-icon text-muted-foreground flex size-10 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx64(IconUpload, { className: "size-4" }) }),
|
|
7165
|
-
/* @__PURE__ */
|
|
7253
|
+
/* @__PURE__ */ jsxs46("div", { className: "cn-file-upload-copy space-y-1", children: [
|
|
7166
7254
|
/* @__PURE__ */ jsx64(
|
|
7167
7255
|
"div",
|
|
7168
7256
|
{
|
|
@@ -7179,7 +7267,7 @@ function FileUpload({
|
|
|
7179
7267
|
children: description
|
|
7180
7268
|
}
|
|
7181
7269
|
),
|
|
7182
|
-
accept ? /* @__PURE__ */
|
|
7270
|
+
accept ? /* @__PURE__ */ jsxs46(
|
|
7183
7271
|
"div",
|
|
7184
7272
|
{
|
|
7185
7273
|
"data-slot": "file-upload-accept",
|
|
@@ -7237,7 +7325,7 @@ import Cropper from "react-easy-crop";
|
|
|
7237
7325
|
// src/components/ui/slider.tsx
|
|
7238
7326
|
import { Slider as SliderPrimitive } from "@base-ui/react/slider";
|
|
7239
7327
|
import * as React8 from "react";
|
|
7240
|
-
import { jsx as jsx65, jsxs as
|
|
7328
|
+
import { jsx as jsx65, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
7241
7329
|
function Slider({
|
|
7242
7330
|
className,
|
|
7243
7331
|
defaultValue,
|
|
@@ -7275,7 +7363,7 @@ function Slider({
|
|
|
7275
7363
|
max,
|
|
7276
7364
|
thumbAlignment: "edge",
|
|
7277
7365
|
...props,
|
|
7278
|
-
children: /* @__PURE__ */
|
|
7366
|
+
children: /* @__PURE__ */ jsxs47(SliderPrimitive.Control, { className: "cn-slider relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", children: [
|
|
7279
7367
|
/* @__PURE__ */ jsx65(
|
|
7280
7368
|
SliderPrimitive.Track,
|
|
7281
7369
|
{
|
|
@@ -7382,7 +7470,7 @@ async function getCroppedImage({
|
|
|
7382
7470
|
|
|
7383
7471
|
// src/components/files/image-crop-dialog.tsx
|
|
7384
7472
|
import "react-easy-crop/react-easy-crop.css";
|
|
7385
|
-
import { jsx as jsx66, jsxs as
|
|
7473
|
+
import { jsx as jsx66, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
7386
7474
|
function ImageCropDialog({
|
|
7387
7475
|
open,
|
|
7388
7476
|
file,
|
|
@@ -7454,9 +7542,9 @@ function ImageCropDialog({
|
|
|
7454
7542
|
setSaving(false);
|
|
7455
7543
|
}
|
|
7456
7544
|
};
|
|
7457
|
-
return /* @__PURE__ */ jsx66(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
7545
|
+
return /* @__PURE__ */ jsx66(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs48(DialogContent, { className: "w-[min(96vw,72rem)] max-w-none overflow-hidden p-0", children: [
|
|
7458
7546
|
/* @__PURE__ */ jsx66(DialogHeader, { className: "border-border/70 gap-1 border-b px-5 py-4 sm:px-6", children: /* @__PURE__ */ jsx66(DialogTitle, { className: "text-lg font-semibold sm:text-xl", children: title }) }),
|
|
7459
|
-
/* @__PURE__ */
|
|
7547
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid gap-0 lg:grid-cols-[minmax(0,1fr)_340px]", children: [
|
|
7460
7548
|
/* @__PURE__ */ jsx66("div", { className: "border-b p-4 lg:border-r lg:border-b-0 lg:p-6", children: /* @__PURE__ */ jsx66("div", { className: "bg-muted/30 relative min-h-[320px] min-w-0 overflow-hidden rounded-[var(--radius-lg)] lg:min-h-[560px]", children: previewUrl ? /* @__PURE__ */ jsx66(
|
|
7461
7549
|
Cropper,
|
|
7462
7550
|
{
|
|
@@ -7473,7 +7561,7 @@ function ImageCropDialog({
|
|
|
7473
7561
|
objectFit: "contain"
|
|
7474
7562
|
}
|
|
7475
7563
|
) : null }) }),
|
|
7476
|
-
/* @__PURE__ */
|
|
7564
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex min-w-0 flex-col gap-5 px-5 py-4 sm:px-6 sm:py-5", children: [
|
|
7477
7565
|
/* @__PURE__ */ jsx66("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx66(
|
|
7478
7566
|
Button,
|
|
7479
7567
|
{
|
|
@@ -7488,13 +7576,13 @@ function ImageCropDialog({
|
|
|
7488
7576
|
children: "Reset"
|
|
7489
7577
|
}
|
|
7490
7578
|
) }),
|
|
7491
|
-
/* @__PURE__ */
|
|
7492
|
-
/* @__PURE__ */
|
|
7493
|
-
/* @__PURE__ */
|
|
7579
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-3", children: [
|
|
7580
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
7581
|
+
/* @__PURE__ */ jsxs48(Label, { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
7494
7582
|
/* @__PURE__ */ jsx66(IconZoomIn, { className: "size-4" }),
|
|
7495
7583
|
"Zoom"
|
|
7496
7584
|
] }),
|
|
7497
|
-
/* @__PURE__ */
|
|
7585
|
+
/* @__PURE__ */ jsxs48(Text, { size: "sm", variant: "muted", children: [
|
|
7498
7586
|
zoom.toFixed(2),
|
|
7499
7587
|
"x"
|
|
7500
7588
|
] })
|
|
@@ -7509,21 +7597,21 @@ function ImageCropDialog({
|
|
|
7509
7597
|
onValueChange: (value) => setZoom(Number(value))
|
|
7510
7598
|
}
|
|
7511
7599
|
),
|
|
7512
|
-
/* @__PURE__ */
|
|
7513
|
-
/* @__PURE__ */
|
|
7600
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex justify-between", children: [
|
|
7601
|
+
/* @__PURE__ */ jsxs48(Text, { size: "xs", variant: "muted", children: [
|
|
7514
7602
|
/* @__PURE__ */ jsx66(IconZoomOut, { className: "mr-1 inline size-3" }),
|
|
7515
7603
|
"1x"
|
|
7516
7604
|
] }),
|
|
7517
7605
|
/* @__PURE__ */ jsx66(Text, { size: "xs", variant: "muted", children: "3x" })
|
|
7518
7606
|
] })
|
|
7519
7607
|
] }),
|
|
7520
|
-
/* @__PURE__ */
|
|
7521
|
-
/* @__PURE__ */
|
|
7522
|
-
/* @__PURE__ */
|
|
7608
|
+
/* @__PURE__ */ jsxs48("div", { className: "space-y-3", children: [
|
|
7609
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-3", children: [
|
|
7610
|
+
/* @__PURE__ */ jsxs48(Label, { className: "flex items-center gap-2 text-sm font-semibold", children: [
|
|
7523
7611
|
/* @__PURE__ */ jsx66(IconRotate, { className: "size-4" }),
|
|
7524
7612
|
"Rotation"
|
|
7525
7613
|
] }),
|
|
7526
|
-
/* @__PURE__ */
|
|
7614
|
+
/* @__PURE__ */ jsxs48(Text, { size: "sm", variant: "muted", children: [
|
|
7527
7615
|
rotation,
|
|
7528
7616
|
"\xB0"
|
|
7529
7617
|
] })
|
|
@@ -7551,7 +7639,7 @@ function ImageCropDialog({
|
|
|
7551
7639
|
] })
|
|
7552
7640
|
] })
|
|
7553
7641
|
] }),
|
|
7554
|
-
/* @__PURE__ */
|
|
7642
|
+
/* @__PURE__ */ jsxs48(DialogFooter, { className: "border-border/70 flex justify-end border-t px-5 py-4 sm:px-6", children: [
|
|
7555
7643
|
/* @__PURE__ */ jsx66(Button, { variant: "outline", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
7556
7644
|
/* @__PURE__ */ jsx66(Button, { onClick: handleSave, loading: saving, children: "Use image" })
|
|
7557
7645
|
] })
|
|
@@ -7566,7 +7654,7 @@ import {
|
|
|
7566
7654
|
IconTrash as IconTrash4
|
|
7567
7655
|
} from "@tabler/icons-react";
|
|
7568
7656
|
import { useEffect as useEffect12, useId as useId2, useRef as useRef8, useState as useState17 } from "react";
|
|
7569
|
-
import { Fragment as Fragment13, jsx as jsx67, jsxs as
|
|
7657
|
+
import { Fragment as Fragment13, jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
7570
7658
|
function ImageUpload({
|
|
7571
7659
|
className,
|
|
7572
7660
|
file: fileProp,
|
|
@@ -7617,20 +7705,20 @@ function ImageUpload({
|
|
|
7617
7705
|
}
|
|
7618
7706
|
setFile(nextFile);
|
|
7619
7707
|
};
|
|
7620
|
-
return /* @__PURE__ */
|
|
7708
|
+
return /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
7621
7709
|
/* @__PURE__ */ jsx67(
|
|
7622
7710
|
"div",
|
|
7623
7711
|
{
|
|
7624
7712
|
"data-slot": "image-upload-wrapper",
|
|
7625
7713
|
className: cn("flex flex-col gap-4", className),
|
|
7626
|
-
children: /* @__PURE__ */
|
|
7714
|
+
children: /* @__PURE__ */ jsxs49(
|
|
7627
7715
|
"div",
|
|
7628
7716
|
{
|
|
7629
7717
|
"data-slot": "image-upload",
|
|
7630
7718
|
className: "cn-image-upload flex flex-col gap-4 rounded-[var(--radius-lg)] border bg-background p-4",
|
|
7631
7719
|
children: [
|
|
7632
|
-
/* @__PURE__ */
|
|
7633
|
-
/* @__PURE__ */
|
|
7720
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [
|
|
7721
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-copy space-y-1", children: [
|
|
7634
7722
|
/* @__PURE__ */ jsx67(
|
|
7635
7723
|
"div",
|
|
7636
7724
|
{
|
|
@@ -7648,7 +7736,7 @@ function ImageUpload({
|
|
|
7648
7736
|
}
|
|
7649
7737
|
)
|
|
7650
7738
|
] }),
|
|
7651
|
-
/* @__PURE__ */
|
|
7739
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-toolbar flex gap-2", children: [
|
|
7652
7740
|
file && enableCrop ? /* @__PURE__ */ jsx67(
|
|
7653
7741
|
Button,
|
|
7654
7742
|
{
|
|
@@ -7713,7 +7801,7 @@ function ImageUpload({
|
|
|
7713
7801
|
"cn-image-upload-dropzone block cursor-pointer rounded-[var(--radius-lg)] border border-dashed p-3 transition-colors hover:bg-accent/40",
|
|
7714
7802
|
disabled && "cursor-not-allowed opacity-60"
|
|
7715
7803
|
),
|
|
7716
|
-
children: previewUrl ? /* @__PURE__ */
|
|
7804
|
+
children: previewUrl ? /* @__PURE__ */ jsxs49("div", { className: "grid gap-4 lg:grid-cols-[minmax(0,1fr)_220px]", children: [
|
|
7717
7805
|
/* @__PURE__ */ jsx67("div", { className: "cn-image-upload-preview relative aspect-[4/3] overflow-hidden", children: /* @__PURE__ */ jsx67(
|
|
7718
7806
|
Image,
|
|
7719
7807
|
{
|
|
@@ -7722,8 +7810,8 @@ function ImageUpload({
|
|
|
7722
7810
|
className: "size-full object-cover"
|
|
7723
7811
|
}
|
|
7724
7812
|
) }),
|
|
7725
|
-
/* @__PURE__ */
|
|
7726
|
-
/* @__PURE__ */
|
|
7813
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-sidebar flex flex-col justify-between gap-4", children: [
|
|
7814
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-meta space-y-1", children: [
|
|
7727
7815
|
/* @__PURE__ */ jsx67(
|
|
7728
7816
|
"div",
|
|
7729
7817
|
{
|
|
@@ -7733,12 +7821,12 @@ function ImageUpload({
|
|
|
7733
7821
|
}
|
|
7734
7822
|
),
|
|
7735
7823
|
/* @__PURE__ */ jsx67("div", { className: "text-muted-foreground text-xs", children: file ? `${Math.round(file.size / 1024)} KB` : "Remote preview" }),
|
|
7736
|
-
/* @__PURE__ */
|
|
7824
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-muted-foreground text-xs", children: [
|
|
7737
7825
|
"Accepts ",
|
|
7738
7826
|
accept
|
|
7739
7827
|
] })
|
|
7740
7828
|
] }),
|
|
7741
|
-
/* @__PURE__ */
|
|
7829
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-actions flex flex-wrap gap-2", children: [
|
|
7742
7830
|
/* @__PURE__ */ jsx67(
|
|
7743
7831
|
Button,
|
|
7744
7832
|
{
|
|
@@ -7769,11 +7857,11 @@ function ImageUpload({
|
|
|
7769
7857
|
) : null
|
|
7770
7858
|
] })
|
|
7771
7859
|
] })
|
|
7772
|
-
] }) : /* @__PURE__ */
|
|
7860
|
+
] }) : /* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-placeholder flex min-h-64 flex-col items-center justify-center gap-3 px-6 text-center", children: [
|
|
7773
7861
|
/* @__PURE__ */ jsx67("div", { className: "cn-image-upload-placeholder-icon text-muted-foreground flex size-12 items-center justify-center", children: /* @__PURE__ */ jsx67(IconPhotoPlus, { className: "size-5" }) }),
|
|
7774
|
-
/* @__PURE__ */
|
|
7862
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-placeholder-copy space-y-1", children: [
|
|
7775
7863
|
/* @__PURE__ */ jsx67("div", { className: "text-sm font-medium", children: "Drag and drop or click to upload" }),
|
|
7776
|
-
/* @__PURE__ */
|
|
7864
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-muted-foreground text-sm", children: [
|
|
7777
7865
|
"Accepts ",
|
|
7778
7866
|
accept
|
|
7779
7867
|
] }),
|
|
@@ -7821,9 +7909,9 @@ function PageContainer({ className, children }) {
|
|
|
7821
7909
|
}
|
|
7822
7910
|
|
|
7823
7911
|
// src/components/layout/page/page-section.tsx
|
|
7824
|
-
import { jsx as jsx70, jsxs as
|
|
7912
|
+
import { jsx as jsx70, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
7825
7913
|
function PageSection({ title, className, children }) {
|
|
7826
|
-
return /* @__PURE__ */
|
|
7914
|
+
return /* @__PURE__ */ jsxs50("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
7827
7915
|
title ? /* @__PURE__ */ jsx70("h4", { className: "font-medium text-foreground", children: title }) : null,
|
|
7828
7916
|
children
|
|
7829
7917
|
] });
|
|
@@ -7836,7 +7924,7 @@ function PageSubTitle({ className, children }) {
|
|
|
7836
7924
|
}
|
|
7837
7925
|
|
|
7838
7926
|
// src/components/layout/page/page-title.tsx
|
|
7839
|
-
import { jsx as jsx72, jsxs as
|
|
7927
|
+
import { jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
7840
7928
|
function PageTitle({
|
|
7841
7929
|
icon,
|
|
7842
7930
|
back,
|
|
@@ -7844,7 +7932,7 @@ function PageTitle({
|
|
|
7844
7932
|
children,
|
|
7845
7933
|
className
|
|
7846
7934
|
}) {
|
|
7847
|
-
return /* @__PURE__ */
|
|
7935
|
+
return /* @__PURE__ */ jsxs51(
|
|
7848
7936
|
"div",
|
|
7849
7937
|
{
|
|
7850
7938
|
className: cn(
|
|
@@ -7854,7 +7942,7 @@ function PageTitle({
|
|
|
7854
7942
|
children: [
|
|
7855
7943
|
back ?? null,
|
|
7856
7944
|
icon ?? null,
|
|
7857
|
-
/* @__PURE__ */
|
|
7945
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex grow items-center justify-between", children: [
|
|
7858
7946
|
/* @__PURE__ */ jsx72("h3", { className: "font-medium", children }),
|
|
7859
7947
|
action ?? null
|
|
7860
7948
|
] })
|
|
@@ -7892,6 +7980,11 @@ var Toaster = ({ ...props }) => {
|
|
|
7892
7980
|
"group-[.toast]:text-muted-foreground",
|
|
7893
7981
|
props.toastOptions?.classNames?.description
|
|
7894
7982
|
].filter(Boolean).join(" "),
|
|
7983
|
+
title: [
|
|
7984
|
+
"group-[.toast]:text-current",
|
|
7985
|
+
"font-medium",
|
|
7986
|
+
props.toastOptions?.classNames?.title
|
|
7987
|
+
].filter(Boolean).join(" "),
|
|
7895
7988
|
actionButton: [
|
|
7896
7989
|
"group-[.toast]:bg-primary",
|
|
7897
7990
|
"group-[.toast]:text-primary-foreground",
|
|
@@ -7909,18 +8002,31 @@ var Toaster = ({ ...props }) => {
|
|
|
7909
8002
|
Sonner,
|
|
7910
8003
|
{
|
|
7911
8004
|
theme,
|
|
8005
|
+
richColors: props.richColors ?? true,
|
|
7912
8006
|
className: "toaster group",
|
|
7913
8007
|
icons: {
|
|
7914
8008
|
success: /* @__PURE__ */ jsx73(IconCircleCheck, { className: "size-4" }),
|
|
7915
8009
|
info: /* @__PURE__ */ jsx73(IconInfoCircle, { className: "size-4" }),
|
|
7916
8010
|
warning: /* @__PURE__ */ jsx73(IconAlertTriangle, { className: "size-4" }),
|
|
7917
8011
|
error: /* @__PURE__ */ jsx73(IconX7, { className: "size-4" }),
|
|
7918
|
-
loading: /* @__PURE__ */ jsx73(IconLoader22, { className: "size-4 animate-spin" })
|
|
8012
|
+
loading: /* @__PURE__ */ jsx73(IconLoader22, { className: "cn-spinner size-4 animate-spin" })
|
|
7919
8013
|
},
|
|
7920
8014
|
style: {
|
|
7921
8015
|
"--normal-bg": "var(--popover)",
|
|
7922
8016
|
"--normal-text": "var(--popover-foreground)",
|
|
7923
8017
|
"--normal-border": "var(--border)",
|
|
8018
|
+
"--success-bg": "oklch(0.962 0.044 163.31)",
|
|
8019
|
+
"--success-border": "oklch(0.845 0.143 164.98)",
|
|
8020
|
+
"--success-text": "oklch(0.372 0.116 166.6)",
|
|
8021
|
+
"--info-bg": "oklch(0.964 0.03 240.13)",
|
|
8022
|
+
"--info-border": "oklch(0.809 0.105 240.95)",
|
|
8023
|
+
"--info-text": "oklch(0.402 0.097 241.53)",
|
|
8024
|
+
"--warning-bg": "oklch(0.973 0.071 93.84)",
|
|
8025
|
+
"--warning-border": "oklch(0.864 0.173 91.82)",
|
|
8026
|
+
"--warning-text": "oklch(0.442 0.095 80.63)",
|
|
8027
|
+
"--error-bg": "oklch(0.957 0.032 17.26)",
|
|
8028
|
+
"--error-border": "oklch(0.808 0.114 19.57)",
|
|
8029
|
+
"--error-text": "oklch(0.444 0.137 25.33)",
|
|
7924
8030
|
"--border-radius": "var(--radius)"
|
|
7925
8031
|
},
|
|
7926
8032
|
toastOptions,
|
|
@@ -7930,7 +8036,7 @@ var Toaster = ({ ...props }) => {
|
|
|
7930
8036
|
};
|
|
7931
8037
|
|
|
7932
8038
|
// src/components/layout/shell.tsx
|
|
7933
|
-
import { jsx as jsx74, jsxs as
|
|
8039
|
+
import { jsx as jsx74, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
7934
8040
|
function Shell({
|
|
7935
8041
|
sidebar,
|
|
7936
8042
|
headerActions,
|
|
@@ -7938,13 +8044,13 @@ function Shell({
|
|
|
7938
8044
|
showToaster = true,
|
|
7939
8045
|
contentClassName
|
|
7940
8046
|
}) {
|
|
7941
|
-
return /* @__PURE__ */ jsx74(BreadcrumbProvider, { children: /* @__PURE__ */
|
|
8047
|
+
return /* @__PURE__ */ jsx74(BreadcrumbProvider, { children: /* @__PURE__ */ jsxs52(SidebarProvider, { children: [
|
|
7942
8048
|
sidebar,
|
|
7943
|
-
/* @__PURE__ */
|
|
7944
|
-
/* @__PURE__ */
|
|
7945
|
-
/* @__PURE__ */
|
|
8049
|
+
/* @__PURE__ */ jsxs52(SidebarInset, { children: [
|
|
8050
|
+
/* @__PURE__ */ jsxs52("header", { className: "cn-shell-header", children: [
|
|
8051
|
+
/* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-2", children: [
|
|
7946
8052
|
/* @__PURE__ */ jsx74(SidebarTrigger, { className: "-ml-1" }),
|
|
7947
|
-
/* @__PURE__ */
|
|
8053
|
+
/* @__PURE__ */ jsxs52("div", { className: "hidden md:flex md:items-center md:gap-2", children: [
|
|
7948
8054
|
/* @__PURE__ */ jsx74(
|
|
7949
8055
|
Separator,
|
|
7950
8056
|
{
|
|
@@ -7982,7 +8088,6 @@ import { useState as useState22 } from "react";
|
|
|
7982
8088
|
import { Controller as Controller2 } from "react-hook-form";
|
|
7983
8089
|
|
|
7984
8090
|
// src/provider/mesob-provider.tsx
|
|
7985
|
-
import { createNavigation } from "next-intl/navigation";
|
|
7986
8091
|
import { createContext as createContext3, useContext as useContext3, useMemo as useMemo10 } from "react";
|
|
7987
8092
|
import { z as z2 } from "zod";
|
|
7988
8093
|
|
|
@@ -8162,7 +8267,7 @@ function pad2(n) {
|
|
|
8162
8267
|
}
|
|
8163
8268
|
|
|
8164
8269
|
// src/components/date-time/date-picker/picker-content.tsx
|
|
8165
|
-
import { Fragment as Fragment14, jsx as jsx76, jsxs as
|
|
8270
|
+
import { Fragment as Fragment14, jsx as jsx76, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
8166
8271
|
var JS_WEEKDAY_SHORT = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
8167
8272
|
function weekdayHeaderLabels(firstDayOfWeek) {
|
|
8168
8273
|
return Array.from({ length: 7 }, (_, col) => {
|
|
@@ -8232,7 +8337,7 @@ function DatePickerContent({
|
|
|
8232
8337
|
}) {
|
|
8233
8338
|
const monthShortList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
8234
8339
|
const hasPresets = !!presets?.length;
|
|
8235
|
-
return /* @__PURE__ */
|
|
8340
|
+
return /* @__PURE__ */ jsxs53("div", { className: "flex", children: [
|
|
8236
8341
|
hasPresets && /* @__PURE__ */ jsx76("div", { className: "flex flex-col gap-0.5 border-r border-border py-2 pl-2 pr-1", children: presets.map((preset) => /* @__PURE__ */ jsx76(
|
|
8237
8342
|
"button",
|
|
8238
8343
|
{
|
|
@@ -8244,7 +8349,7 @@ function DatePickerContent({
|
|
|
8244
8349
|
},
|
|
8245
8350
|
preset.label
|
|
8246
8351
|
)) }),
|
|
8247
|
-
/* @__PURE__ */
|
|
8352
|
+
/* @__PURE__ */ jsxs53(
|
|
8248
8353
|
"div",
|
|
8249
8354
|
{
|
|
8250
8355
|
className: cn(
|
|
@@ -8254,7 +8359,7 @@ function DatePickerContent({
|
|
|
8254
8359
|
hasPresets && "min-w-0 flex-1"
|
|
8255
8360
|
),
|
|
8256
8361
|
children: [
|
|
8257
|
-
/* @__PURE__ */
|
|
8362
|
+
/* @__PURE__ */ jsxs53("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
8258
8363
|
/* @__PURE__ */ jsx76(
|
|
8259
8364
|
"button",
|
|
8260
8365
|
{
|
|
@@ -8296,8 +8401,8 @@ function DatePickerContent({
|
|
|
8296
8401
|
const dayGridClass = withWeekNumbers ? "grid grid-cols-[2rem_repeat(7,minmax(0,1fr))]" : "grid grid-cols-7";
|
|
8297
8402
|
const rowCount = cells.length / 7;
|
|
8298
8403
|
const labels = weekdayHeaderLabels(firstDayOfWeek);
|
|
8299
|
-
return /* @__PURE__ */
|
|
8300
|
-
!hideWeekdays && /* @__PURE__ */
|
|
8404
|
+
return /* @__PURE__ */ jsxs53(Fragment14, { children: [
|
|
8405
|
+
!hideWeekdays && /* @__PURE__ */ jsxs53("div", { className: cn("mb-0.5", dayGridClass), children: [
|
|
8301
8406
|
withWeekNumbers && /* @__PURE__ */ jsx76("div", { className: "select-none py-1.5 text-center text-xs font-medium text-muted-foreground", children: "#" }),
|
|
8302
8407
|
labels.map((wd, i) => {
|
|
8303
8408
|
const js = (firstDayOfWeek + i) % 7;
|
|
@@ -8324,7 +8429,7 @@ function DatePickerContent({
|
|
|
8324
8429
|
children: Array.from({ length: rowCount }, (_, row) => {
|
|
8325
8430
|
const rowCells = cells.slice(row * 7, row * 7 + 7);
|
|
8326
8431
|
const weekNo = getISOWeekNumber(rowCells[0].gcDate);
|
|
8327
|
-
return /* @__PURE__ */
|
|
8432
|
+
return /* @__PURE__ */ jsxs53(
|
|
8328
8433
|
"div",
|
|
8329
8434
|
{
|
|
8330
8435
|
className: dayGridClass,
|
|
@@ -8351,7 +8456,7 @@ function DatePickerContent({
|
|
|
8351
8456
|
const showStrip = hasRange && (inRange || (rStart || rEnd) && !(rStart && rEnd));
|
|
8352
8457
|
return (
|
|
8353
8458
|
/* biome-ignore lint/a11y/useSemanticElements: calendar cell, not a form fieldset */
|
|
8354
|
-
/* @__PURE__ */
|
|
8459
|
+
/* @__PURE__ */ jsxs53(
|
|
8355
8460
|
"div",
|
|
8356
8461
|
{
|
|
8357
8462
|
role: "group",
|
|
@@ -8476,7 +8581,7 @@ function DatePickerContent({
|
|
|
8476
8581
|
y
|
|
8477
8582
|
);
|
|
8478
8583
|
}) }),
|
|
8479
|
-
/* @__PURE__ */
|
|
8584
|
+
/* @__PURE__ */ jsxs53("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
|
|
8480
8585
|
/* @__PURE__ */ jsx76(
|
|
8481
8586
|
"button",
|
|
8482
8587
|
{
|
|
@@ -9357,7 +9462,7 @@ function FormMessage({ className, ...props }) {
|
|
|
9357
9462
|
import { IconMinus } from "@tabler/icons-react";
|
|
9358
9463
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
9359
9464
|
import * as React10 from "react";
|
|
9360
|
-
import { jsx as jsx79, jsxs as
|
|
9465
|
+
import { jsx as jsx79, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
9361
9466
|
function InputOTP({
|
|
9362
9467
|
className,
|
|
9363
9468
|
containerClassName,
|
|
@@ -9394,7 +9499,7 @@ function InputOTPSlot({
|
|
|
9394
9499
|
}) {
|
|
9395
9500
|
const inputOTPContext = React10.useContext(OTPInputContext);
|
|
9396
9501
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
9397
|
-
return /* @__PURE__ */
|
|
9502
|
+
return /* @__PURE__ */ jsxs54(
|
|
9398
9503
|
"div",
|
|
9399
9504
|
{
|
|
9400
9505
|
"data-slot": "input-otp-slot",
|
|
@@ -9578,7 +9683,7 @@ function HardbreakControl({ editor }) {
|
|
|
9578
9683
|
// src/components/rich-text/controls/iframe-control.tsx
|
|
9579
9684
|
import { IconExternalLink } from "@tabler/icons-react";
|
|
9580
9685
|
import { useState as useState19 } from "react";
|
|
9581
|
-
import { jsx as jsx82, jsxs as
|
|
9686
|
+
import { jsx as jsx82, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
9582
9687
|
function IframeControl() {
|
|
9583
9688
|
const { editor } = useRichTextEditorContext();
|
|
9584
9689
|
const [open, setOpen] = useState19(false);
|
|
@@ -9612,7 +9717,7 @@ function IframeControl() {
|
|
|
9612
9717
|
setOpen(false);
|
|
9613
9718
|
setIframeTag("");
|
|
9614
9719
|
};
|
|
9615
|
-
return /* @__PURE__ */
|
|
9720
|
+
return /* @__PURE__ */ jsxs55(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9616
9721
|
/* @__PURE__ */ jsx82(
|
|
9617
9722
|
DialogTrigger,
|
|
9618
9723
|
{
|
|
@@ -9628,9 +9733,9 @@ function IframeControl() {
|
|
|
9628
9733
|
children: /* @__PURE__ */ jsx82(IconExternalLink, { className: "size-4" })
|
|
9629
9734
|
}
|
|
9630
9735
|
),
|
|
9631
|
-
/* @__PURE__ */
|
|
9736
|
+
/* @__PURE__ */ jsxs55(DialogContent, { children: [
|
|
9632
9737
|
/* @__PURE__ */ jsx82(DialogHeader, { children: /* @__PURE__ */ jsx82(DialogTitle, { children: "Insert Iframe" }) }),
|
|
9633
|
-
/* @__PURE__ */ jsx82("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */
|
|
9738
|
+
/* @__PURE__ */ jsx82("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ jsxs55("div", { className: "flex flex-col gap-2", children: [
|
|
9634
9739
|
/* @__PURE__ */ jsx82(Label, { htmlFor: "iframe-tag", children: "Iframe Tag" }),
|
|
9635
9740
|
/* @__PURE__ */ jsx82(
|
|
9636
9741
|
Input,
|
|
@@ -9648,7 +9753,7 @@ function IframeControl() {
|
|
|
9648
9753
|
}
|
|
9649
9754
|
)
|
|
9650
9755
|
] }) }),
|
|
9651
|
-
/* @__PURE__ */
|
|
9756
|
+
/* @__PURE__ */ jsxs55(DialogFooter, { children: [
|
|
9652
9757
|
/* @__PURE__ */ jsx82(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9653
9758
|
/* @__PURE__ */ jsx82(Button, { onClick: handleAdd, children: "Add Iframe" })
|
|
9654
9759
|
] })
|
|
@@ -9659,7 +9764,7 @@ function IframeControl() {
|
|
|
9659
9764
|
// src/components/rich-text/controls/image-control.tsx
|
|
9660
9765
|
import { IconPhoto as IconPhoto2 } from "@tabler/icons-react";
|
|
9661
9766
|
import { useState as useState20 } from "react";
|
|
9662
|
-
import { jsx as jsx83, jsxs as
|
|
9767
|
+
import { jsx as jsx83, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
9663
9768
|
function ImageControl() {
|
|
9664
9769
|
const { editor } = useRichTextEditorContext();
|
|
9665
9770
|
const [open, setOpen] = useState20(false);
|
|
@@ -9680,7 +9785,7 @@ function ImageControl() {
|
|
|
9680
9785
|
setOpen(false);
|
|
9681
9786
|
setUrl("");
|
|
9682
9787
|
};
|
|
9683
|
-
return /* @__PURE__ */
|
|
9788
|
+
return /* @__PURE__ */ jsxs56(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9684
9789
|
/* @__PURE__ */ jsx83(
|
|
9685
9790
|
DialogTrigger,
|
|
9686
9791
|
{
|
|
@@ -9696,9 +9801,9 @@ function ImageControl() {
|
|
|
9696
9801
|
children: /* @__PURE__ */ jsx83(IconPhoto2, { className: "size-4" })
|
|
9697
9802
|
}
|
|
9698
9803
|
),
|
|
9699
|
-
/* @__PURE__ */
|
|
9804
|
+
/* @__PURE__ */ jsxs56(DialogContent, { children: [
|
|
9700
9805
|
/* @__PURE__ */ jsx83(DialogHeader, { children: /* @__PURE__ */ jsx83(DialogTitle, { children: "Insert Image" }) }),
|
|
9701
|
-
/* @__PURE__ */ jsx83("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */
|
|
9806
|
+
/* @__PURE__ */ jsx83("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ jsxs56("div", { className: "flex flex-col gap-2", children: [
|
|
9702
9807
|
/* @__PURE__ */ jsx83(Label, { htmlFor: "image-url", children: "Image URL" }),
|
|
9703
9808
|
/* @__PURE__ */ jsx83(
|
|
9704
9809
|
Input,
|
|
@@ -9716,7 +9821,7 @@ function ImageControl() {
|
|
|
9716
9821
|
}
|
|
9717
9822
|
)
|
|
9718
9823
|
] }) }),
|
|
9719
|
-
/* @__PURE__ */
|
|
9824
|
+
/* @__PURE__ */ jsxs56(DialogFooter, { children: [
|
|
9720
9825
|
/* @__PURE__ */ jsx83(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9721
9826
|
/* @__PURE__ */ jsx83(Button, { onClick: handleAdd, children: "Add Image" })
|
|
9722
9827
|
] })
|
|
@@ -9733,7 +9838,7 @@ import {
|
|
|
9733
9838
|
IconTableMinus,
|
|
9734
9839
|
IconTrash as IconTrash5
|
|
9735
9840
|
} from "@tabler/icons-react";
|
|
9736
|
-
import { Fragment as Fragment15, jsx as jsx84, jsxs as
|
|
9841
|
+
import { Fragment as Fragment15, jsx as jsx84, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
9737
9842
|
function TableControl({ editor }) {
|
|
9738
9843
|
if (!editor) {
|
|
9739
9844
|
return null;
|
|
@@ -9741,7 +9846,7 @@ function TableControl({ editor }) {
|
|
|
9741
9846
|
const handleInsertTable = () => {
|
|
9742
9847
|
editor.chain().focus().insertTable({ rows: 2, cols: 2, withHeaderRow: true }).run();
|
|
9743
9848
|
};
|
|
9744
|
-
return /* @__PURE__ */
|
|
9849
|
+
return /* @__PURE__ */ jsxs57(Fragment15, { children: [
|
|
9745
9850
|
/* @__PURE__ */ jsx84(
|
|
9746
9851
|
RichTextEditorControl,
|
|
9747
9852
|
{
|
|
@@ -9808,7 +9913,7 @@ function TableControl({ editor }) {
|
|
|
9808
9913
|
// src/components/rich-text/controls/youtube-control.tsx
|
|
9809
9914
|
import { IconBrandYoutube } from "@tabler/icons-react";
|
|
9810
9915
|
import { useState as useState21 } from "react";
|
|
9811
|
-
import { jsx as jsx85, jsxs as
|
|
9916
|
+
import { jsx as jsx85, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
9812
9917
|
function YoutubeControl() {
|
|
9813
9918
|
const { editor } = useRichTextEditorContext();
|
|
9814
9919
|
const [open, setOpen] = useState21(false);
|
|
@@ -9829,7 +9934,7 @@ function YoutubeControl() {
|
|
|
9829
9934
|
setOpen(false);
|
|
9830
9935
|
setUrl("");
|
|
9831
9936
|
};
|
|
9832
|
-
return /* @__PURE__ */
|
|
9937
|
+
return /* @__PURE__ */ jsxs58(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9833
9938
|
/* @__PURE__ */ jsx85(
|
|
9834
9939
|
DialogTrigger,
|
|
9835
9940
|
{
|
|
@@ -9845,9 +9950,9 @@ function YoutubeControl() {
|
|
|
9845
9950
|
children: /* @__PURE__ */ jsx85(IconBrandYoutube, { className: "size-4" })
|
|
9846
9951
|
}
|
|
9847
9952
|
),
|
|
9848
|
-
/* @__PURE__ */
|
|
9953
|
+
/* @__PURE__ */ jsxs58(DialogContent, { children: [
|
|
9849
9954
|
/* @__PURE__ */ jsx85(DialogHeader, { children: /* @__PURE__ */ jsx85(DialogTitle, { children: "Insert YouTube Video" }) }),
|
|
9850
|
-
/* @__PURE__ */ jsx85("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */
|
|
9955
|
+
/* @__PURE__ */ jsx85("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ jsxs58("div", { className: "flex flex-col gap-2", children: [
|
|
9851
9956
|
/* @__PURE__ */ jsx85(Label, { htmlFor: "youtube-url", children: "YouTube URL" }),
|
|
9852
9957
|
/* @__PURE__ */ jsx85(
|
|
9853
9958
|
Input,
|
|
@@ -9865,7 +9970,7 @@ function YoutubeControl() {
|
|
|
9865
9970
|
}
|
|
9866
9971
|
)
|
|
9867
9972
|
] }) }),
|
|
9868
|
-
/* @__PURE__ */
|
|
9973
|
+
/* @__PURE__ */ jsxs58(DialogFooter, { children: [
|
|
9869
9974
|
/* @__PURE__ */ jsx85(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9870
9975
|
/* @__PURE__ */ jsx85(Button, { onClick: handleAdd, children: "Add Video" })
|
|
9871
9976
|
] })
|
|
@@ -9991,7 +10096,7 @@ var Iframe = Node.create({
|
|
|
9991
10096
|
});
|
|
9992
10097
|
|
|
9993
10098
|
// src/components/rich-text/rich-text-input.tsx
|
|
9994
|
-
import { Fragment as Fragment16, jsx as jsx86, jsxs as
|
|
10099
|
+
import { Fragment as Fragment16, jsx as jsx86, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
9995
10100
|
var EMPTY_KEY = "__empty__";
|
|
9996
10101
|
function RichTextInputEditor({
|
|
9997
10102
|
field,
|
|
@@ -10118,14 +10223,14 @@ function RichTextInputEditor({
|
|
|
10118
10223
|
}, [editor, value]);
|
|
10119
10224
|
const enabledControllersLength = enabledControllers.length;
|
|
10120
10225
|
const isControllerEnabled = (controller) => enabledControllersLength === 0 || enabledControllers.includes(controller);
|
|
10121
|
-
return /* @__PURE__ */
|
|
10122
|
-
label && /* @__PURE__ */
|
|
10226
|
+
return /* @__PURE__ */ jsxs59("div", { className: cn("flex flex-col gap-2", className), children: [
|
|
10227
|
+
label && /* @__PURE__ */ jsxs59(Label, { children: [
|
|
10123
10228
|
label,
|
|
10124
10229
|
withAsterisk && /* @__PURE__ */ jsx86("span", { className: "text-destructive", children: "*" })
|
|
10125
10230
|
] }),
|
|
10126
|
-
/* @__PURE__ */
|
|
10127
|
-
/* @__PURE__ */
|
|
10128
|
-
/* @__PURE__ */
|
|
10231
|
+
/* @__PURE__ */ jsxs59(RichTextEditor, { editor, children: [
|
|
10232
|
+
/* @__PURE__ */ jsxs59(RichTextEditorToolbar, { children: [
|
|
10233
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10129
10234
|
isControllerEnabled("bold") && /* @__PURE__ */ jsx86(
|
|
10130
10235
|
RichTextEditorControl,
|
|
10131
10236
|
{
|
|
@@ -10201,7 +10306,7 @@ function RichTextInputEditor({
|
|
|
10201
10306
|
}
|
|
10202
10307
|
)
|
|
10203
10308
|
] }),
|
|
10204
|
-
/* @__PURE__ */
|
|
10309
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10205
10310
|
isControllerEnabled("h1") && /* @__PURE__ */ jsx86(
|
|
10206
10311
|
RichTextEditorControl,
|
|
10207
10312
|
{
|
|
@@ -10243,7 +10348,7 @@ function RichTextInputEditor({
|
|
|
10243
10348
|
}
|
|
10244
10349
|
)
|
|
10245
10350
|
] }),
|
|
10246
|
-
/* @__PURE__ */
|
|
10351
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10247
10352
|
isControllerEnabled("bulletList") && /* @__PURE__ */ jsx86(
|
|
10248
10353
|
RichTextEditorControl,
|
|
10249
10354
|
{
|
|
@@ -10265,8 +10370,8 @@ function RichTextInputEditor({
|
|
|
10265
10370
|
}
|
|
10266
10371
|
)
|
|
10267
10372
|
] }),
|
|
10268
|
-
/* @__PURE__ */
|
|
10269
|
-
isControllerEnabled("link") && /* @__PURE__ */
|
|
10373
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10374
|
+
isControllerEnabled("link") && /* @__PURE__ */ jsxs59(Fragment16, { children: [
|
|
10270
10375
|
/* @__PURE__ */ jsx86(
|
|
10271
10376
|
RichTextEditorControl,
|
|
10272
10377
|
{
|
|
@@ -10304,7 +10409,7 @@ function RichTextInputEditor({
|
|
|
10304
10409
|
}
|
|
10305
10410
|
)
|
|
10306
10411
|
] }),
|
|
10307
|
-
/* @__PURE__ */
|
|
10412
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10308
10413
|
isControllerEnabled("alignLeft") && /* @__PURE__ */ jsx86(
|
|
10309
10414
|
RichTextEditorControl,
|
|
10310
10415
|
{
|
|
@@ -10346,7 +10451,7 @@ function RichTextInputEditor({
|
|
|
10346
10451
|
}
|
|
10347
10452
|
)
|
|
10348
10453
|
] }),
|
|
10349
|
-
/* @__PURE__ */
|
|
10454
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10350
10455
|
isControllerEnabled("subscript") && /* @__PURE__ */ jsx86(
|
|
10351
10456
|
RichTextEditorControl,
|
|
10352
10457
|
{
|
|
@@ -10369,9 +10474,9 @@ function RichTextInputEditor({
|
|
|
10369
10474
|
)
|
|
10370
10475
|
] }),
|
|
10371
10476
|
editor && isControllerEnabled("hardBreak") && /* @__PURE__ */ jsx86(HardbreakControl, { editor }),
|
|
10372
|
-
mode === "large" && /* @__PURE__ */
|
|
10477
|
+
mode === "large" && /* @__PURE__ */ jsxs59(Fragment16, { children: [
|
|
10373
10478
|
isControllerEnabled("table") && /* @__PURE__ */ jsx86(RichTextEditorControlsGroup, { children: /* @__PURE__ */ jsx86(TableControl, { editor }) }),
|
|
10374
|
-
/* @__PURE__ */
|
|
10479
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10375
10480
|
isControllerEnabled("image") && /* @__PURE__ */ jsx86(ImageControl, {}),
|
|
10376
10481
|
isControllerEnabled("youtube") && /* @__PURE__ */ jsx86(YoutubeControl, {}),
|
|
10377
10482
|
isControllerEnabled("map") && /* @__PURE__ */ jsx86(IframeControl, {})
|
|
@@ -10403,7 +10508,7 @@ function VisuallyHidden({ className, ...props }) {
|
|
|
10403
10508
|
}
|
|
10404
10509
|
|
|
10405
10510
|
// src/components/locale/locale-input-rich-text.tsx
|
|
10406
|
-
import { jsx as jsx88, jsxs as
|
|
10511
|
+
import { jsx as jsx88, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
10407
10512
|
function LocaleInputRichText({
|
|
10408
10513
|
label,
|
|
10409
10514
|
required,
|
|
@@ -10421,13 +10526,13 @@ function LocaleInputRichText({
|
|
|
10421
10526
|
const otherLanguages = supportedLanguages.filter(
|
|
10422
10527
|
(lang) => lang.value !== defaultLanguage
|
|
10423
10528
|
);
|
|
10424
|
-
return /* @__PURE__ */
|
|
10425
|
-
label && /* @__PURE__ */
|
|
10529
|
+
return /* @__PURE__ */ jsxs60(Field, { className: cn(className), children: [
|
|
10530
|
+
label && /* @__PURE__ */ jsxs60(FieldLabel, { children: [
|
|
10426
10531
|
label,
|
|
10427
10532
|
required && /* @__PURE__ */ jsx88("span", { className: "text-destructive ml-1", children: "*" })
|
|
10428
10533
|
] }),
|
|
10429
|
-
/* @__PURE__ */
|
|
10430
|
-
/* @__PURE__ */
|
|
10534
|
+
/* @__PURE__ */ jsxs60(FieldContent, { children: [
|
|
10535
|
+
/* @__PURE__ */ jsxs60("div", { className: "relative", children: [
|
|
10431
10536
|
/* @__PURE__ */ jsx88(
|
|
10432
10537
|
Controller2,
|
|
10433
10538
|
{
|
|
@@ -10445,7 +10550,7 @@ function LocaleInputRichText({
|
|
|
10445
10550
|
)
|
|
10446
10551
|
}
|
|
10447
10552
|
),
|
|
10448
|
-
/* @__PURE__ */
|
|
10553
|
+
/* @__PURE__ */ jsxs60("div", { className: "absolute top-3 right-2 z-10 flex items-center gap-1", children: [
|
|
10449
10554
|
/* @__PURE__ */ jsx88(
|
|
10450
10555
|
"button",
|
|
10451
10556
|
{
|
|
@@ -10466,7 +10571,7 @@ function LocaleInputRichText({
|
|
|
10466
10571
|
)
|
|
10467
10572
|
] })
|
|
10468
10573
|
] }),
|
|
10469
|
-
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx88("div", { className: "cn-locale-input-expanded-rich", children: otherLanguages.map((lang) => /* @__PURE__ */
|
|
10574
|
+
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx88("div", { className: "cn-locale-input-expanded-rich", children: otherLanguages.map((lang) => /* @__PURE__ */ jsxs60("div", { className: "space-y-2", children: [
|
|
10470
10575
|
/* @__PURE__ */ jsx88(FieldLabel, { className: "text-xs text-muted-foreground", children: lang.label }),
|
|
10471
10576
|
/* @__PURE__ */ jsx88(
|
|
10472
10577
|
Controller2,
|
|
@@ -10486,7 +10591,7 @@ function LocaleInputRichText({
|
|
|
10486
10591
|
}
|
|
10487
10592
|
)
|
|
10488
10593
|
] }, lang.value)) }),
|
|
10489
|
-
/* @__PURE__ */ jsx88(Dialog, { open: fullscreen, onOpenChange: setFullscreen, children: /* @__PURE__ */
|
|
10594
|
+
/* @__PURE__ */ jsx88(Dialog, { open: fullscreen, onOpenChange: setFullscreen, children: /* @__PURE__ */ jsxs60(
|
|
10490
10595
|
DialogContent,
|
|
10491
10596
|
{
|
|
10492
10597
|
showCloseButton: false,
|
|
@@ -10495,7 +10600,7 @@ function LocaleInputRichText({
|
|
|
10495
10600
|
"!top-0 !left-0 !right-0 !bottom-0 !h-screen !w-screen !max-w-none !translate-x-0 !translate-y-0 !rounded-none"
|
|
10496
10601
|
),
|
|
10497
10602
|
children: [
|
|
10498
|
-
/* @__PURE__ */ jsx88(VisuallyHidden, { children: /* @__PURE__ */
|
|
10603
|
+
/* @__PURE__ */ jsx88(VisuallyHidden, { children: /* @__PURE__ */ jsxs60(DialogTitle, { children: [
|
|
10499
10604
|
label || "Edit content",
|
|
10500
10605
|
" - Fullscreen editor"
|
|
10501
10606
|
] }) }),
|
|
@@ -10535,7 +10640,7 @@ function LocaleInputRichText({
|
|
|
10535
10640
|
// src/components/locale/locale-input-text.tsx
|
|
10536
10641
|
import { IconTextRecognition as IconTextRecognition2 } from "@tabler/icons-react";
|
|
10537
10642
|
import { useState as useState23 } from "react";
|
|
10538
|
-
import { jsx as jsx89, jsxs as
|
|
10643
|
+
import { jsx as jsx89, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
10539
10644
|
function LocaleInputText({
|
|
10540
10645
|
label,
|
|
10541
10646
|
required,
|
|
@@ -10552,13 +10657,13 @@ function LocaleInputText({
|
|
|
10552
10657
|
(lang) => lang.value !== defaultLanguage
|
|
10553
10658
|
);
|
|
10554
10659
|
const defaultError = errors?.[field]?.[defaultLanguage];
|
|
10555
|
-
return /* @__PURE__ */
|
|
10556
|
-
label && /* @__PURE__ */
|
|
10660
|
+
return /* @__PURE__ */ jsxs61(Field, { className: cn(className), children: [
|
|
10661
|
+
label && /* @__PURE__ */ jsxs61(FieldLabel, { children: [
|
|
10557
10662
|
label,
|
|
10558
10663
|
required && /* @__PURE__ */ jsx89("span", { className: "text-destructive ", children: "*" })
|
|
10559
10664
|
] }),
|
|
10560
|
-
/* @__PURE__ */
|
|
10561
|
-
/* @__PURE__ */
|
|
10665
|
+
/* @__PURE__ */ jsxs61(FieldContent, { children: [
|
|
10666
|
+
/* @__PURE__ */ jsxs61("div", { className: "relative", children: [
|
|
10562
10667
|
/* @__PURE__ */ jsx89(
|
|
10563
10668
|
Input,
|
|
10564
10669
|
{
|
|
@@ -10581,9 +10686,9 @@ function LocaleInputText({
|
|
|
10581
10686
|
)
|
|
10582
10687
|
] }),
|
|
10583
10688
|
/* @__PURE__ */ jsx89(FieldError, { errors: defaultError ? [defaultError] : void 0 }),
|
|
10584
|
-
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx89("div", { className: "cn-locale-input-expanded", children: otherLanguages.map((lang) => /* @__PURE__ */ jsx89("div", { className: "space-y-1", children: /* @__PURE__ */
|
|
10689
|
+
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx89("div", { className: "cn-locale-input-expanded", children: otherLanguages.map((lang) => /* @__PURE__ */ jsx89("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-2", children: [
|
|
10585
10690
|
/* @__PURE__ */ jsx89(FieldLabel, { className: "min-w-[60px] text-xs text-muted-foreground", children: lang.label }),
|
|
10586
|
-
/* @__PURE__ */
|
|
10691
|
+
/* @__PURE__ */ jsxs61("div", { className: "flex-1 space-y-1", children: [
|
|
10587
10692
|
/* @__PURE__ */ jsx89(
|
|
10588
10693
|
Input,
|
|
10589
10694
|
{
|
|
@@ -10611,7 +10716,7 @@ function LocaleInputText({
|
|
|
10611
10716
|
// src/components/locale/locale-input-textarea.tsx
|
|
10612
10717
|
import { IconTextRecognition as IconTextRecognition3 } from "@tabler/icons-react";
|
|
10613
10718
|
import { useState as useState24 } from "react";
|
|
10614
|
-
import { jsx as jsx90, jsxs as
|
|
10719
|
+
import { jsx as jsx90, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
10615
10720
|
function LocaleInputTextarea({
|
|
10616
10721
|
label,
|
|
10617
10722
|
required,
|
|
@@ -10629,13 +10734,13 @@ function LocaleInputTextarea({
|
|
|
10629
10734
|
(lang) => lang.value !== defaultLanguage
|
|
10630
10735
|
);
|
|
10631
10736
|
const defaultError = errors?.[field]?.[defaultLanguage];
|
|
10632
|
-
return /* @__PURE__ */
|
|
10633
|
-
label && /* @__PURE__ */
|
|
10737
|
+
return /* @__PURE__ */ jsxs62(Field, { className: cn("cn-locale-input", className), children: [
|
|
10738
|
+
label && /* @__PURE__ */ jsxs62(FieldLabel, { children: [
|
|
10634
10739
|
label,
|
|
10635
10740
|
required && /* @__PURE__ */ jsx90("span", { className: "text-destructive ml-1", children: "*" })
|
|
10636
10741
|
] }),
|
|
10637
|
-
/* @__PURE__ */
|
|
10638
|
-
/* @__PURE__ */
|
|
10742
|
+
/* @__PURE__ */ jsxs62(FieldContent, { children: [
|
|
10743
|
+
/* @__PURE__ */ jsxs62("div", { className: "relative", children: [
|
|
10639
10744
|
/* @__PURE__ */ jsx90(
|
|
10640
10745
|
Textarea,
|
|
10641
10746
|
{
|
|
@@ -10659,9 +10764,9 @@ function LocaleInputTextarea({
|
|
|
10659
10764
|
)
|
|
10660
10765
|
] }),
|
|
10661
10766
|
/* @__PURE__ */ jsx90(FieldError, { errors: defaultError ? [defaultError] : void 0 }),
|
|
10662
|
-
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx90("div", { className: "cn-locale-input-expanded", children: otherLanguages.map((lang) => /* @__PURE__ */ jsx90("div", { className: "space-y-1", children: /* @__PURE__ */
|
|
10767
|
+
expanded && otherLanguages.length > 0 && /* @__PURE__ */ jsx90("div", { className: "cn-locale-input-expanded", children: otherLanguages.map((lang) => /* @__PURE__ */ jsx90("div", { className: "space-y-1", children: /* @__PURE__ */ jsxs62("div", { className: "flex items-start gap-2", children: [
|
|
10663
10768
|
/* @__PURE__ */ jsx90(FieldLabel, { className: "min-w-[60px] text-xs text-muted-foreground mt-2", children: lang.label }),
|
|
10664
|
-
/* @__PURE__ */
|
|
10769
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex-1 space-y-1", children: [
|
|
10665
10770
|
/* @__PURE__ */ jsx90(
|
|
10666
10771
|
Textarea,
|
|
10667
10772
|
{
|
|
@@ -10719,7 +10824,7 @@ function LocaleText({ text, defaultLocale }) {
|
|
|
10719
10824
|
}
|
|
10720
10825
|
|
|
10721
10826
|
// src/components/mesob-logo.tsx
|
|
10722
|
-
import { jsx as jsx93, jsxs as
|
|
10827
|
+
import { jsx as jsx93, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
10723
10828
|
function MesobLogo({
|
|
10724
10829
|
width,
|
|
10725
10830
|
height,
|
|
@@ -10728,7 +10833,7 @@ function MesobLogo({
|
|
|
10728
10833
|
iconColor = "#fff",
|
|
10729
10834
|
className
|
|
10730
10835
|
}) {
|
|
10731
|
-
return /* @__PURE__ */
|
|
10836
|
+
return /* @__PURE__ */ jsxs63(
|
|
10732
10837
|
"svg",
|
|
10733
10838
|
{
|
|
10734
10839
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -10799,7 +10904,7 @@ function MesobLogo({
|
|
|
10799
10904
|
import { IconX as IconX9 } from "@tabler/icons-react";
|
|
10800
10905
|
import { cva as cva9 } from "class-variance-authority";
|
|
10801
10906
|
import { useState as useState25 } from "react";
|
|
10802
|
-
import { jsx as jsx94, jsxs as
|
|
10907
|
+
import { jsx as jsx94, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
10803
10908
|
var modalContentVariants = cva9(
|
|
10804
10909
|
cn(
|
|
10805
10910
|
"p-0 gap-0 flex flex-col overflow-hidden",
|
|
@@ -10868,7 +10973,7 @@ function ModalContent({
|
|
|
10868
10973
|
);
|
|
10869
10974
|
}
|
|
10870
10975
|
function ModalHeader({ className, children, ...props }) {
|
|
10871
|
-
return /* @__PURE__ */
|
|
10976
|
+
return /* @__PURE__ */ jsxs64(
|
|
10872
10977
|
DialogHeader,
|
|
10873
10978
|
{
|
|
10874
10979
|
"data-slot": "modal-header",
|
|
@@ -10970,9 +11075,9 @@ function Modal({
|
|
|
10970
11075
|
};
|
|
10971
11076
|
const shouldShowHeader = title || subtitle;
|
|
10972
11077
|
const shouldShowFooter = footer !== void 0;
|
|
10973
|
-
return /* @__PURE__ */
|
|
11078
|
+
return /* @__PURE__ */ jsxs64(ModalRoot, { open: currentOpen, onOpenChange: handleOpenChange, ...props, children: [
|
|
10974
11079
|
trigger && /* @__PURE__ */ jsx94(ModalTrigger, { render: trigger, ...triggerProps }),
|
|
10975
|
-
/* @__PURE__ */
|
|
11080
|
+
/* @__PURE__ */ jsxs64(
|
|
10976
11081
|
ModalContent,
|
|
10977
11082
|
{
|
|
10978
11083
|
size,
|
|
@@ -10980,7 +11085,7 @@ function Modal({
|
|
|
10980
11085
|
className: contentProps?.className,
|
|
10981
11086
|
...contentProps,
|
|
10982
11087
|
children: [
|
|
10983
|
-
shouldShowHeader && /* @__PURE__ */
|
|
11088
|
+
shouldShowHeader && /* @__PURE__ */ jsxs64(ModalHeader, { className: headerProps?.className, ...headerProps, children: [
|
|
10984
11089
|
title && /* @__PURE__ */ jsx94(ModalTitle, { children: title }),
|
|
10985
11090
|
subtitle && /* @__PURE__ */ jsx94(ModalSubtitle, { children: subtitle })
|
|
10986
11091
|
] }),
|
|
@@ -10993,7 +11098,7 @@ function Modal({
|
|
|
10993
11098
|
}
|
|
10994
11099
|
|
|
10995
11100
|
// src/components/powered-by.tsx
|
|
10996
|
-
import { jsx as jsx95, jsxs as
|
|
11101
|
+
import { jsx as jsx95, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
10997
11102
|
function PoweredBy({ className }) {
|
|
10998
11103
|
return /* @__PURE__ */ jsx95(
|
|
10999
11104
|
"div",
|
|
@@ -11002,7 +11107,7 @@ function PoweredBy({ className }) {
|
|
|
11002
11107
|
"flex flex-col items-center gap-1.5 py-3 text-center",
|
|
11003
11108
|
className
|
|
11004
11109
|
),
|
|
11005
|
-
children: /* @__PURE__ */
|
|
11110
|
+
children: /* @__PURE__ */ jsxs65(
|
|
11006
11111
|
"a",
|
|
11007
11112
|
{
|
|
11008
11113
|
href: "https://mesob.com",
|
|
@@ -11046,11 +11151,11 @@ function RichTextDisplay({ content, className }) {
|
|
|
11046
11151
|
// src/components/theme-toggle.tsx
|
|
11047
11152
|
import { IconMoon, IconSun } from "@tabler/icons-react";
|
|
11048
11153
|
import { useTheme as useTheme2 } from "next-themes";
|
|
11049
|
-
import { jsx as jsx97, jsxs as
|
|
11154
|
+
import { jsx as jsx97, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
11050
11155
|
function ThemeToggle({ className }) {
|
|
11051
11156
|
const { resolvedTheme, setTheme, theme } = useTheme2();
|
|
11052
11157
|
const isDark = (theme ?? resolvedTheme) === "dark";
|
|
11053
|
-
return /* @__PURE__ */
|
|
11158
|
+
return /* @__PURE__ */ jsxs66(
|
|
11054
11159
|
Button,
|
|
11055
11160
|
{
|
|
11056
11161
|
variant: "ghost",
|
|
@@ -11521,14 +11626,14 @@ function useDateInput(props) {
|
|
|
11521
11626
|
}
|
|
11522
11627
|
|
|
11523
11628
|
// src/components/date-time/date-input/date-input.tsx
|
|
11524
|
-
import { jsx as jsx99, jsxs as
|
|
11629
|
+
import { jsx as jsx99, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
11525
11630
|
var SIZE_CLASS = {
|
|
11526
11631
|
sm: "[&_[data-slot=input-group-control]]:min-h-8 [&_[data-slot=input-group-control]]:text-xs",
|
|
11527
11632
|
md: "[&_[data-slot=input-group-control]]:min-h-10 [&_[data-slot=input-group-control]]:text-sm",
|
|
11528
11633
|
lg: "[&_[data-slot=input-group-control]]:min-h-11 [&_[data-slot=input-group-control]]:text-sm",
|
|
11529
11634
|
xl: "[&_[data-slot=input-group-control]]:min-h-12 [&_[data-slot=input-group-control]]:text-base"
|
|
11530
11635
|
};
|
|
11531
|
-
var CalendarIcon = /* @__PURE__ */
|
|
11636
|
+
var CalendarIcon = /* @__PURE__ */ jsxs67("svg", { className: "size-4", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
|
|
11532
11637
|
/* @__PURE__ */ jsx99("title", { className: "sr-only", children: "Calendar" }),
|
|
11533
11638
|
/* @__PURE__ */ jsx99(
|
|
11534
11639
|
"path",
|
|
@@ -11541,7 +11646,7 @@ var CalendarIcon = /* @__PURE__ */ jsxs66("svg", { className: "size-4", fill: "n
|
|
|
11541
11646
|
}
|
|
11542
11647
|
)
|
|
11543
11648
|
] });
|
|
11544
|
-
var CloseIcon = /* @__PURE__ */
|
|
11649
|
+
var CloseIcon = /* @__PURE__ */ jsxs67("svg", { className: "size-3.5", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
|
|
11545
11650
|
/* @__PURE__ */ jsx99("title", { className: "sr-only", children: "Clear" }),
|
|
11546
11651
|
/* @__PURE__ */ jsx99(
|
|
11547
11652
|
"path",
|
|
@@ -11618,8 +11723,8 @@ var DateInput = forwardRef4(
|
|
|
11618
11723
|
disabled,
|
|
11619
11724
|
className,
|
|
11620
11725
|
labelProps: { htmlFor: inputId },
|
|
11621
|
-
children: /* @__PURE__ */
|
|
11622
|
-
/* @__PURE__ */ jsx99("div", { ref: state2.triggerRef, className: "w-full", children: /* @__PURE__ */
|
|
11726
|
+
children: /* @__PURE__ */ jsxs67(Popover, { open: state2.open, onOpenChange: state2.handleOpenChange, children: [
|
|
11727
|
+
/* @__PURE__ */ jsx99("div", { ref: state2.triggerRef, className: "w-full", children: /* @__PURE__ */ jsxs67(
|
|
11623
11728
|
InputGroup,
|
|
11624
11729
|
{
|
|
11625
11730
|
disabled,
|
|
@@ -11654,7 +11759,7 @@ var DateInput = forwardRef4(
|
|
|
11654
11759
|
"aria-label": ariaLabel
|
|
11655
11760
|
}
|
|
11656
11761
|
),
|
|
11657
|
-
/* @__PURE__ */
|
|
11762
|
+
/* @__PURE__ */ jsxs67("span", { className: "mr-1 flex items-center gap-0.5 pr-0.5", children: [
|
|
11658
11763
|
state2.showClear ? /* @__PURE__ */ jsx99(
|
|
11659
11764
|
InputGroupButton,
|
|
11660
11765
|
{
|
|
@@ -11745,7 +11850,7 @@ import { forwardRef as forwardRef6 } from "react";
|
|
|
11745
11850
|
|
|
11746
11851
|
// src/components/date-time/datetime-picker/trigger-button.tsx
|
|
11747
11852
|
import { forwardRef as forwardRef5 } from "react";
|
|
11748
|
-
import { jsx as jsx100, jsxs as
|
|
11853
|
+
import { jsx as jsx100, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
11749
11854
|
var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
11750
11855
|
displayValue,
|
|
11751
11856
|
placeholder,
|
|
@@ -11760,7 +11865,7 @@ var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
|
11760
11865
|
"aria-label": ariaLabel
|
|
11761
11866
|
}, ref) {
|
|
11762
11867
|
const filled = variant === "filled";
|
|
11763
|
-
return /* @__PURE__ */
|
|
11868
|
+
return /* @__PURE__ */ jsxs68(
|
|
11764
11869
|
"button",
|
|
11765
11870
|
{
|
|
11766
11871
|
ref,
|
|
@@ -11797,7 +11902,7 @@ var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
|
11797
11902
|
});
|
|
11798
11903
|
|
|
11799
11904
|
// src/components/date-time/datetime-picker/input-shell.tsx
|
|
11800
|
-
import { jsx as jsx101, jsxs as
|
|
11905
|
+
import { jsx as jsx101, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
11801
11906
|
function DateInputShell({
|
|
11802
11907
|
label,
|
|
11803
11908
|
placeholder,
|
|
@@ -11844,14 +11949,26 @@ function DateInputShell({
|
|
|
11844
11949
|
"aria-label": ariaLabel
|
|
11845
11950
|
}
|
|
11846
11951
|
);
|
|
11847
|
-
const wrapper = /* @__PURE__ */
|
|
11848
|
-
label ? /* @__PURE__ */
|
|
11952
|
+
const wrapper = /* @__PURE__ */ jsxs69("div", { className: cn("relative inline-block w-full", className), children: [
|
|
11953
|
+
label ? /* @__PURE__ */ jsxs69("label", { className: "mb-1.5 block text-sm font-semibold text-foreground", children: [
|
|
11849
11954
|
label,
|
|
11850
11955
|
required || withAsterisk ? /* @__PURE__ */ jsx101("span", { className: "ml-0.5 text-destructive", "aria-hidden": true, children: "*" }) : null
|
|
11851
11956
|
] }) : null,
|
|
11852
11957
|
description ? /* @__PURE__ */ jsx101("p", { className: "mb-1.5 text-xs text-muted-foreground", children: description }) : null,
|
|
11853
|
-
/* @__PURE__ */
|
|
11854
|
-
dropdownType === "modal" ? /* @__PURE__ */ jsx101(
|
|
11958
|
+
/* @__PURE__ */ jsxs69("div", { ref: triggerRef, className: "relative", children: [
|
|
11959
|
+
dropdownType === "modal" ? /* @__PURE__ */ jsx101(
|
|
11960
|
+
DialogTrigger,
|
|
11961
|
+
{
|
|
11962
|
+
render: /* @__PURE__ */ jsx101("div", { "data-slot": "dialog-trigger", className: "block w-full" }),
|
|
11963
|
+
children: triggerButton
|
|
11964
|
+
}
|
|
11965
|
+
) : /* @__PURE__ */ jsx101(
|
|
11966
|
+
PopoverTrigger,
|
|
11967
|
+
{
|
|
11968
|
+
render: /* @__PURE__ */ jsx101("div", { "data-slot": "popover-trigger", className: "block w-full" }),
|
|
11969
|
+
children: triggerButton
|
|
11970
|
+
}
|
|
11971
|
+
),
|
|
11855
11972
|
showClear && /* @__PURE__ */ jsx101(
|
|
11856
11973
|
"button",
|
|
11857
11974
|
{
|
|
@@ -11862,7 +11979,7 @@ function DateInputShell({
|
|
|
11862
11979
|
},
|
|
11863
11980
|
className: "absolute right-2.5 top-1/2 -translate-y-1/2 rounded-sm p-0.5 text-muted-foreground hover:text-foreground",
|
|
11864
11981
|
"aria-label": "Clear",
|
|
11865
|
-
children: /* @__PURE__ */
|
|
11982
|
+
children: /* @__PURE__ */ jsxs69(
|
|
11866
11983
|
"svg",
|
|
11867
11984
|
{
|
|
11868
11985
|
className: "size-3.5",
|
|
@@ -11888,7 +12005,7 @@ function DateInputShell({
|
|
|
11888
12005
|
)
|
|
11889
12006
|
] }),
|
|
11890
12007
|
error ? /* @__PURE__ */ jsx101("p", { className: "mt-1.5 text-xs text-destructive", children: error }) : null,
|
|
11891
|
-
dropdownType === "modal" ? /* @__PURE__ */
|
|
12008
|
+
dropdownType === "modal" ? /* @__PURE__ */ jsxs69(
|
|
11892
12009
|
DialogContent,
|
|
11893
12010
|
{
|
|
11894
12011
|
className: cn(
|
|
@@ -12109,7 +12226,7 @@ function DateCalendar(props) {
|
|
|
12109
12226
|
import { forwardRef as forwardRef7 } from "react";
|
|
12110
12227
|
|
|
12111
12228
|
// src/components/date-time/datetime-picker/dropdown-content.tsx
|
|
12112
|
-
import { Fragment as Fragment18, jsx as jsx104, jsxs as
|
|
12229
|
+
import { Fragment as Fragment18, jsx as jsx104, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
12113
12230
|
var ChevronLeft2 = /* @__PURE__ */ jsx104(
|
|
12114
12231
|
"svg",
|
|
12115
12232
|
{
|
|
@@ -12159,9 +12276,9 @@ function TimeRow({
|
|
|
12159
12276
|
const hourVal = String(hour12);
|
|
12160
12277
|
const minVal = timeM ? pad2(Number.parseInt(timeM, 10)) : "00";
|
|
12161
12278
|
const secVal = timeS ? pad2(Number.parseInt(timeS, 10)) : "00";
|
|
12162
|
-
return /* @__PURE__ */
|
|
12279
|
+
return /* @__PURE__ */ jsxs70("fieldset", { className: "mt-2 flex w-fit flex-wrap items-center gap-2 rounded-lg border border-input bg-muted/30 px-3 py-2.5", children: [
|
|
12163
12280
|
/* @__PURE__ */ jsx104("legend", { className: "sr-only", children: "Time" }),
|
|
12164
|
-
/* @__PURE__ */
|
|
12281
|
+
/* @__PURE__ */ jsxs70(Select, { value: hourVal, onValueChange: (v) => setHour12(Number(v), ampm), children: [
|
|
12165
12282
|
/* @__PURE__ */ jsx104(
|
|
12166
12283
|
SelectTrigger,
|
|
12167
12284
|
{
|
|
@@ -12174,7 +12291,7 @@ function TimeRow({
|
|
|
12174
12291
|
/* @__PURE__ */ jsx104(SelectContent, { ...TIME_SELECT_CONTENT_PROPS, children: HOURS_12.map((h) => /* @__PURE__ */ jsx104(SelectItem, { value: String(h), children: pad2(h) }, h)) })
|
|
12175
12292
|
] }),
|
|
12176
12293
|
/* @__PURE__ */ jsx104("span", { className: "text-muted-foreground", children: ":" }),
|
|
12177
|
-
/* @__PURE__ */
|
|
12294
|
+
/* @__PURE__ */ jsxs70(
|
|
12178
12295
|
Select,
|
|
12179
12296
|
{
|
|
12180
12297
|
value: minVal,
|
|
@@ -12195,9 +12312,9 @@ function TimeRow({
|
|
|
12195
12312
|
]
|
|
12196
12313
|
}
|
|
12197
12314
|
),
|
|
12198
|
-
withSeconds && /* @__PURE__ */
|
|
12315
|
+
withSeconds && /* @__PURE__ */ jsxs70(Fragment18, { children: [
|
|
12199
12316
|
/* @__PURE__ */ jsx104("span", { className: "text-muted-foreground", children: ":" }),
|
|
12200
|
-
/* @__PURE__ */
|
|
12317
|
+
/* @__PURE__ */ jsxs70(
|
|
12201
12318
|
Select,
|
|
12202
12319
|
{
|
|
12203
12320
|
value: secVal,
|
|
@@ -12269,7 +12386,7 @@ function DateTimeDropdownContent({
|
|
|
12269
12386
|
hasPresets
|
|
12270
12387
|
}) {
|
|
12271
12388
|
const monthShortList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
12272
|
-
return /* @__PURE__ */
|
|
12389
|
+
return /* @__PURE__ */ jsxs70("div", { className: "flex", children: [
|
|
12273
12390
|
hasPresets && presets?.length ? /* @__PURE__ */ jsx104("div", { className: "flex flex-col gap-0.5 border-r border-border py-2 pl-2 pr-1", children: presets.map((preset) => /* @__PURE__ */ jsx104(
|
|
12274
12391
|
"button",
|
|
12275
12392
|
{
|
|
@@ -12280,7 +12397,7 @@ function DateTimeDropdownContent({
|
|
|
12280
12397
|
},
|
|
12281
12398
|
preset.label
|
|
12282
12399
|
)) }) : null,
|
|
12283
|
-
/* @__PURE__ */
|
|
12400
|
+
/* @__PURE__ */ jsxs70(
|
|
12284
12401
|
"div",
|
|
12285
12402
|
{
|
|
12286
12403
|
className: cn(
|
|
@@ -12290,7 +12407,7 @@ function DateTimeDropdownContent({
|
|
|
12290
12407
|
hasPresets && presets?.length && "flex-1"
|
|
12291
12408
|
),
|
|
12292
12409
|
children: [
|
|
12293
|
-
/* @__PURE__ */
|
|
12410
|
+
/* @__PURE__ */ jsxs70("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
12294
12411
|
/* @__PURE__ */ jsx104(
|
|
12295
12412
|
"button",
|
|
12296
12413
|
{
|
|
@@ -12321,7 +12438,7 @@ function DateTimeDropdownContent({
|
|
|
12321
12438
|
}
|
|
12322
12439
|
)
|
|
12323
12440
|
] }),
|
|
12324
|
-
view === "days" && /* @__PURE__ */
|
|
12441
|
+
view === "days" && /* @__PURE__ */ jsxs70(Fragment18, { children: [
|
|
12325
12442
|
/* @__PURE__ */ jsx104("div", { className: "mb-0.5 grid grid-cols-7", children: WEEKDAYS.map((wd, i) => /* @__PURE__ */ jsx104(
|
|
12326
12443
|
"div",
|
|
12327
12444
|
{
|
|
@@ -12418,8 +12535,8 @@ function DateTimeDropdownContent({
|
|
|
12418
12535
|
onTimeSChange
|
|
12419
12536
|
}
|
|
12420
12537
|
),
|
|
12421
|
-
/* @__PURE__ */
|
|
12422
|
-
/* @__PURE__ */
|
|
12538
|
+
/* @__PURE__ */ jsxs70("div", { className: "mt-2 flex items-center justify-between gap-2 border-t border-border pt-2", children: [
|
|
12539
|
+
/* @__PURE__ */ jsxs70("div", { className: "flex gap-1", children: [
|
|
12423
12540
|
/* @__PURE__ */ jsx104(
|
|
12424
12541
|
"button",
|
|
12425
12542
|
{
|
|
@@ -13062,7 +13179,7 @@ function TimeGrid({
|
|
|
13062
13179
|
|
|
13063
13180
|
// src/components/date-time/datetime-picker/time-input.tsx
|
|
13064
13181
|
import { useCallback as useCallback13, useEffect as useEffect18, useState as useState30 } from "react";
|
|
13065
|
-
import { Fragment as Fragment19, jsx as jsx108, jsxs as
|
|
13182
|
+
import { Fragment as Fragment19, jsx as jsx108, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
13066
13183
|
function TimeInput({
|
|
13067
13184
|
value,
|
|
13068
13185
|
onChange,
|
|
@@ -13128,7 +13245,7 @@ function TimeInput({
|
|
|
13128
13245
|
}
|
|
13129
13246
|
commit(nh || h, nm || m, withSeconds ? ns || s : "00");
|
|
13130
13247
|
}, [h, m, s, commit, withSeconds]);
|
|
13131
|
-
return /* @__PURE__ */
|
|
13248
|
+
return /* @__PURE__ */ jsxs71(
|
|
13132
13249
|
"fieldset",
|
|
13133
13250
|
{
|
|
13134
13251
|
className: cn(
|
|
@@ -13170,7 +13287,7 @@ function TimeInput({
|
|
|
13170
13287
|
className: "w-7 shrink-0 border-0 bg-transparent text-center text-sm text-foreground outline-none placeholder:text-muted-foreground"
|
|
13171
13288
|
}
|
|
13172
13289
|
),
|
|
13173
|
-
withSeconds && /* @__PURE__ */
|
|
13290
|
+
withSeconds && /* @__PURE__ */ jsxs71(Fragment19, { children: [
|
|
13174
13291
|
/* @__PURE__ */ jsx108("span", { className: "select-none text-sm text-muted-foreground", children: ":" }),
|
|
13175
13292
|
/* @__PURE__ */ jsx108(
|
|
13176
13293
|
"input",
|
|
@@ -13314,7 +13431,7 @@ function useMiniCalendar(props) {
|
|
|
13314
13431
|
}
|
|
13315
13432
|
|
|
13316
13433
|
// src/components/date-time/mini-calendar/mini-calendar.tsx
|
|
13317
|
-
import { jsx as jsx110, jsxs as
|
|
13434
|
+
import { jsx as jsx110, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
13318
13435
|
var ChevronLeft3 = /* @__PURE__ */ jsx110(
|
|
13319
13436
|
"svg",
|
|
13320
13437
|
{
|
|
@@ -13361,7 +13478,7 @@ function MiniCalendar({
|
|
|
13361
13478
|
type: _nextType,
|
|
13362
13479
|
...nextSpread
|
|
13363
13480
|
} = nextControlProps ?? {};
|
|
13364
|
-
return /* @__PURE__ */
|
|
13481
|
+
return /* @__PURE__ */ jsxs72(
|
|
13365
13482
|
"div",
|
|
13366
13483
|
{
|
|
13367
13484
|
className: cn("flex w-full max-w-full items-stretch gap-0.5", className),
|
|
@@ -13407,7 +13524,7 @@ function MiniCalendar({
|
|
|
13407
13524
|
...userRest
|
|
13408
13525
|
} = user;
|
|
13409
13526
|
const disabled = dayDisabled || !!userDisabled;
|
|
13410
|
-
return /* @__PURE__ */
|
|
13527
|
+
return /* @__PURE__ */ jsxs72(
|
|
13411
13528
|
"button",
|
|
13412
13529
|
{
|
|
13413
13530
|
type: "button",
|
|
@@ -13481,7 +13598,7 @@ function MiniCalendar({
|
|
|
13481
13598
|
}
|
|
13482
13599
|
|
|
13483
13600
|
// src/components/date-time/month-picker/picker-content.tsx
|
|
13484
|
-
import { jsx as jsx111, jsxs as
|
|
13601
|
+
import { jsx as jsx111, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
13485
13602
|
var ChevronLeft4 = /* @__PURE__ */ jsx111(
|
|
13486
13603
|
"svg",
|
|
13487
13604
|
{
|
|
@@ -13528,8 +13645,8 @@ function MonthPickerContent({
|
|
|
13528
13645
|
isRangeEnd
|
|
13529
13646
|
}) {
|
|
13530
13647
|
const monthList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
13531
|
-
return /* @__PURE__ */
|
|
13532
|
-
/* @__PURE__ */
|
|
13648
|
+
return /* @__PURE__ */ jsxs73("div", { className: "min-w-[22rem] p-3", children: [
|
|
13649
|
+
/* @__PURE__ */ jsxs73("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
13533
13650
|
/* @__PURE__ */ jsx111(
|
|
13534
13651
|
"button",
|
|
13535
13652
|
{
|
|
@@ -13573,7 +13690,7 @@ function MonthPickerContent({
|
|
|
13573
13690
|
const showStrip = hasRange && (inRange || (rStart || rEnd) && !(rStart && rEnd));
|
|
13574
13691
|
return (
|
|
13575
13692
|
/* biome-ignore lint/a11y/useSemanticElements: calendar cell, not a form fieldset */
|
|
13576
|
-
/* @__PURE__ */
|
|
13693
|
+
/* @__PURE__ */ jsxs73(
|
|
13577
13694
|
"div",
|
|
13578
13695
|
{
|
|
13579
13696
|
role: "group",
|
|
@@ -13642,7 +13759,7 @@ function MonthPickerContent({
|
|
|
13642
13759
|
y
|
|
13643
13760
|
);
|
|
13644
13761
|
}) }),
|
|
13645
|
-
/* @__PURE__ */
|
|
13762
|
+
/* @__PURE__ */ jsxs73("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
|
|
13646
13763
|
/* @__PURE__ */ jsx111(
|
|
13647
13764
|
"button",
|
|
13648
13765
|
{
|
|
@@ -14207,8 +14324,8 @@ var MonthPickerInput = forwardRef8(function MonthPickerInput2(props, ref) {
|
|
|
14207
14324
|
import { forwardRef as forwardRef9 } from "react";
|
|
14208
14325
|
|
|
14209
14326
|
// src/components/date-time/time-picker/time-picker-content.tsx
|
|
14210
|
-
import { Fragment as Fragment20, jsx as jsx114, jsxs as
|
|
14211
|
-
var CheckIcon = /* @__PURE__ */
|
|
14327
|
+
import { Fragment as Fragment20, jsx as jsx114, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
14328
|
+
var CheckIcon = /* @__PURE__ */ jsxs74(
|
|
14212
14329
|
"svg",
|
|
14213
14330
|
{
|
|
14214
14331
|
className: "size-4",
|
|
@@ -14236,8 +14353,8 @@ function TimePickerContent({
|
|
|
14236
14353
|
onTimeSChange,
|
|
14237
14354
|
onConfirm
|
|
14238
14355
|
}) {
|
|
14239
|
-
return /* @__PURE__ */ jsx114("div", { className: "p-3", children: /* @__PURE__ */
|
|
14240
|
-
/* @__PURE__ */
|
|
14356
|
+
return /* @__PURE__ */ jsx114("div", { className: "p-3", children: /* @__PURE__ */ jsxs74("div", { className: "flex items-center gap-2", children: [
|
|
14357
|
+
/* @__PURE__ */ jsxs74("fieldset", { className: "flex flex-1 flex-row items-center gap-0.5 rounded border border-solid border-input bg-background px-2.5 py-0", children: [
|
|
14241
14358
|
/* @__PURE__ */ jsx114("legend", { className: "sr-only", children: "Time" }),
|
|
14242
14359
|
/* @__PURE__ */ jsx114(
|
|
14243
14360
|
"input",
|
|
@@ -14274,7 +14391,7 @@ function TimePickerContent({
|
|
|
14274
14391
|
className: "w-7 shrink-0 border-0 bg-transparent text-center text-sm text-foreground outline-none placeholder:text-muted-foreground"
|
|
14275
14392
|
}
|
|
14276
14393
|
),
|
|
14277
|
-
withSeconds && /* @__PURE__ */
|
|
14394
|
+
withSeconds && /* @__PURE__ */ jsxs74(Fragment20, { children: [
|
|
14278
14395
|
/* @__PURE__ */ jsx114("span", { className: "select-none px-1 text-sm text-muted-foreground", children: ":" }),
|
|
14279
14396
|
/* @__PURE__ */ jsx114(
|
|
14280
14397
|
"input",
|
|
@@ -14503,7 +14620,7 @@ var TimePicker = forwardRef9(
|
|
|
14503
14620
|
);
|
|
14504
14621
|
|
|
14505
14622
|
// src/components/date-time/year-picker/picker-content.tsx
|
|
14506
|
-
import { jsx as jsx116, jsxs as
|
|
14623
|
+
import { jsx as jsx116, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
14507
14624
|
var ChevronLeft5 = /* @__PURE__ */ jsx116(
|
|
14508
14625
|
"svg",
|
|
14509
14626
|
{
|
|
@@ -14542,8 +14659,8 @@ function YearPickerContent({
|
|
|
14542
14659
|
isRangeStart,
|
|
14543
14660
|
isRangeEnd
|
|
14544
14661
|
}) {
|
|
14545
|
-
return /* @__PURE__ */
|
|
14546
|
-
/* @__PURE__ */
|
|
14662
|
+
return /* @__PURE__ */ jsxs75("div", { className: "min-w-[22rem] p-3", children: [
|
|
14663
|
+
/* @__PURE__ */ jsxs75("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
14547
14664
|
/* @__PURE__ */ jsx116(
|
|
14548
14665
|
"button",
|
|
14549
14666
|
{
|
|
@@ -14603,7 +14720,7 @@ function YearPickerContent({
|
|
|
14603
14720
|
})
|
|
14604
14721
|
}
|
|
14605
14722
|
),
|
|
14606
|
-
/* @__PURE__ */
|
|
14723
|
+
/* @__PURE__ */ jsxs75("div", { className: "mt-2 flex justify-end gap-1 border-t border-border pt-2", children: [
|
|
14607
14724
|
/* @__PURE__ */ jsx116(
|
|
14608
14725
|
"button",
|
|
14609
14726
|
{
|
|
@@ -15022,7 +15139,7 @@ var YearPickerInput = forwardRef10(function YearPickerInput2(props, ref) {
|
|
|
15022
15139
|
// src/components/ui/accordion.tsx
|
|
15023
15140
|
import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
|
|
15024
15141
|
import { IconChevronDown as IconChevronDown6, IconChevronUp as IconChevronUp3 } from "@tabler/icons-react";
|
|
15025
|
-
import { Fragment as Fragment21, jsx as jsx119, jsxs as
|
|
15142
|
+
import { Fragment as Fragment21, jsx as jsx119, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
15026
15143
|
var ACCORDION_ROOT_BASE_CN = "flex w-full flex-col";
|
|
15027
15144
|
var ACCORDION_TRIGGER_BASE_CN = cn(
|
|
15028
15145
|
"group/accordion-trigger relative flex flex-1 items-start justify-between",
|
|
@@ -15084,7 +15201,7 @@ function AccordionTrigger({
|
|
|
15084
15201
|
...props
|
|
15085
15202
|
}) {
|
|
15086
15203
|
const showChevron = chevron !== null;
|
|
15087
|
-
return /* @__PURE__ */ jsx119(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */
|
|
15204
|
+
return /* @__PURE__ */ jsx119(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs76(
|
|
15088
15205
|
AccordionPrimitive.Trigger,
|
|
15089
15206
|
{
|
|
15090
15207
|
"data-slot": "accordion-trigger",
|
|
@@ -15095,7 +15212,7 @@ function AccordionTrigger({
|
|
|
15095
15212
|
),
|
|
15096
15213
|
...props,
|
|
15097
15214
|
children: [
|
|
15098
|
-
showChevron && chevronPosition === "left" && /* @__PURE__ */ jsx119("span", { className: "mr-2 inline-flex items-center", children: chevron ?? /* @__PURE__ */
|
|
15215
|
+
showChevron && chevronPosition === "left" && /* @__PURE__ */ jsx119("span", { className: "mr-2 inline-flex items-center", children: chevron ?? /* @__PURE__ */ jsxs76(Fragment21, { children: [
|
|
15099
15216
|
/* @__PURE__ */ jsx119(
|
|
15100
15217
|
IconChevronDown6,
|
|
15101
15218
|
{
|
|
@@ -15113,7 +15230,7 @@ function AccordionTrigger({
|
|
|
15113
15230
|
] }) }),
|
|
15114
15231
|
icon && /* @__PURE__ */ jsx119("span", { className: "text-muted-foreground mr-2 inline-flex shrink-0", children: icon }),
|
|
15115
15232
|
children,
|
|
15116
|
-
showChevron && chevronPosition !== "left" && (chevron ?? /* @__PURE__ */
|
|
15233
|
+
showChevron && chevronPosition !== "left" && (chevron ?? /* @__PURE__ */ jsxs76(Fragment21, { children: [
|
|
15117
15234
|
/* @__PURE__ */ jsx119(
|
|
15118
15235
|
IconChevronDown6,
|
|
15119
15236
|
{
|
|
@@ -15168,7 +15285,7 @@ function AccordionContent({
|
|
|
15168
15285
|
// src/components/ui/action-icon.tsx
|
|
15169
15286
|
import { useRender as useRender5 } from "@base-ui/react/use-render";
|
|
15170
15287
|
import { cva as cva10 } from "class-variance-authority";
|
|
15171
|
-
import { Fragment as Fragment22, jsx as jsx120, jsxs as
|
|
15288
|
+
import { Fragment as Fragment22, jsx as jsx120, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
15172
15289
|
var actionIconVariants = cva10(
|
|
15173
15290
|
"cn-action-icon inline-flex items-center justify-center shrink-0 font-medium transition-colors cursor-pointer select-none leading-none relative overflow-hidden disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed data-[loading]:cursor-not-allowed [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
15174
15291
|
{
|
|
@@ -15239,7 +15356,7 @@ function ActionIcon({
|
|
|
15239
15356
|
color && "bg-[var(--action-icon-color)] hover:bg-[var(--action-icon-color-hover)]",
|
|
15240
15357
|
className
|
|
15241
15358
|
),
|
|
15242
|
-
children: /* @__PURE__ */
|
|
15359
|
+
children: /* @__PURE__ */ jsxs77(Fragment22, { children: [
|
|
15243
15360
|
loading && /* @__PURE__ */ jsx120("span", { className: "cn-action-icon-loader absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx120(
|
|
15244
15361
|
Spinner,
|
|
15245
15362
|
{
|
|
@@ -15413,7 +15530,7 @@ function Anchor({
|
|
|
15413
15530
|
...props
|
|
15414
15531
|
}) {
|
|
15415
15532
|
const mesob = useMesob7();
|
|
15416
|
-
const Link2 = mesob?.
|
|
15533
|
+
const Link2 = mesob?.navigation?.Link;
|
|
15417
15534
|
const locale = mesob?.locale;
|
|
15418
15535
|
const useLink = href && !isExternal2(href) && Link2;
|
|
15419
15536
|
const Comp = useLink ? Link2 : "a";
|
|
@@ -15434,8 +15551,9 @@ function Anchor({
|
|
|
15434
15551
|
|
|
15435
15552
|
// src/components/ui/angle-slider.tsx
|
|
15436
15553
|
import { useCallback as useCallback20, useRef as useRef13, useState as useState35 } from "react";
|
|
15437
|
-
import { jsx as jsx124, jsxs as
|
|
15554
|
+
import { jsx as jsx124, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
15438
15555
|
var TAU = 2 * Math.PI;
|
|
15556
|
+
var px = (n) => `${Math.round(n * 1e4) / 1e4}px`;
|
|
15439
15557
|
function AngleSlider({
|
|
15440
15558
|
className,
|
|
15441
15559
|
value: valueProp,
|
|
@@ -15514,7 +15632,7 @@ function AngleSlider({
|
|
|
15514
15632
|
const innerInset = Math.max(12, Math.round(size * 0.18));
|
|
15515
15633
|
const thumbX = size / 2 + r * Math.cos(angleRad) - thumbOffset;
|
|
15516
15634
|
const thumbY = size / 2 + r * Math.sin(angleRad) - thumbOffset;
|
|
15517
|
-
return /* @__PURE__ */
|
|
15635
|
+
return /* @__PURE__ */ jsxs78(
|
|
15518
15636
|
"div",
|
|
15519
15637
|
{
|
|
15520
15638
|
ref,
|
|
@@ -15531,11 +15649,11 @@ function AngleSlider({
|
|
|
15531
15649
|
disabled && "pointer-events-none cursor-not-allowed opacity-50",
|
|
15532
15650
|
className
|
|
15533
15651
|
),
|
|
15534
|
-
style: { width: size, height: size },
|
|
15652
|
+
style: { width: px(size), height: px(size) },
|
|
15535
15653
|
onPointerDown: handlePointerDown,
|
|
15536
15654
|
...props,
|
|
15537
15655
|
children: [
|
|
15538
|
-
/* @__PURE__ */
|
|
15656
|
+
/* @__PURE__ */ jsxs78(
|
|
15539
15657
|
"svg",
|
|
15540
15658
|
{
|
|
15541
15659
|
className: "absolute inset-0 size-full",
|
|
@@ -15577,7 +15695,7 @@ function AngleSlider({
|
|
|
15577
15695
|
{
|
|
15578
15696
|
className: "cn-angle-slider-inner absolute",
|
|
15579
15697
|
style: {
|
|
15580
|
-
inset: innerInset
|
|
15698
|
+
inset: px(innerInset)
|
|
15581
15699
|
}
|
|
15582
15700
|
}
|
|
15583
15701
|
),
|
|
@@ -15587,10 +15705,10 @@ function AngleSlider({
|
|
|
15587
15705
|
"data-slot": "angle-slider-thumb",
|
|
15588
15706
|
className: "cn-angle-slider-thumb absolute",
|
|
15589
15707
|
style: {
|
|
15590
|
-
width: thumbSize,
|
|
15591
|
-
height: thumbSize,
|
|
15592
|
-
left: thumbX,
|
|
15593
|
-
top: thumbY
|
|
15708
|
+
width: px(thumbSize),
|
|
15709
|
+
height: px(thumbSize),
|
|
15710
|
+
left: px(thumbX),
|
|
15711
|
+
top: px(thumbY)
|
|
15594
15712
|
}
|
|
15595
15713
|
}
|
|
15596
15714
|
),
|
|
@@ -15605,7 +15723,7 @@ import { useMesob as useMesob8 } from "@mesob/ui/providers";
|
|
|
15605
15723
|
import { IconChevronDown as IconChevronDown7 } from "@tabler/icons-react";
|
|
15606
15724
|
import { motion } from "motion/react";
|
|
15607
15725
|
import { useLayoutEffect as useLayoutEffect2, useMemo as useMemo12, useRef as useRef14, useState as useState36 } from "react";
|
|
15608
|
-
import { jsx as jsx125, jsxs as
|
|
15726
|
+
import { jsx as jsx125, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
15609
15727
|
function AnimatedTabs({
|
|
15610
15728
|
tabs,
|
|
15611
15729
|
activeTab: controlledActiveTab,
|
|
@@ -15615,7 +15733,7 @@ function AnimatedTabs({
|
|
|
15615
15733
|
linkComponent: linkProp
|
|
15616
15734
|
}) {
|
|
15617
15735
|
const mesob = useMesob8();
|
|
15618
|
-
const LinkComponent = linkProp ?? mesob?.
|
|
15736
|
+
const LinkComponent = linkProp ?? mesob?.navigation?.Link;
|
|
15619
15737
|
const locale = mesob?.locale;
|
|
15620
15738
|
const [internalActiveTab, setInternalActiveTab] = useState36(
|
|
15621
15739
|
defaultTab ?? tabs[0]?.value ?? ""
|
|
@@ -15785,13 +15903,13 @@ function AnimatedTabs({
|
|
|
15785
15903
|
tab.value
|
|
15786
15904
|
);
|
|
15787
15905
|
};
|
|
15788
|
-
return /* @__PURE__ */
|
|
15906
|
+
return /* @__PURE__ */ jsxs79(
|
|
15789
15907
|
"div",
|
|
15790
15908
|
{
|
|
15791
15909
|
"data-slot": "animated-tabs",
|
|
15792
15910
|
className: cn("cn-animated-tabs flex flex-col", className),
|
|
15793
15911
|
children: [
|
|
15794
|
-
/* @__PURE__ */ jsx125("div", { ref: containerRef, className: "w-full", children: /* @__PURE__ */
|
|
15912
|
+
/* @__PURE__ */ jsx125("div", { ref: containerRef, className: "w-full", children: /* @__PURE__ */ jsxs79(
|
|
15795
15913
|
"div",
|
|
15796
15914
|
{
|
|
15797
15915
|
ref: tabsListRef,
|
|
@@ -15802,8 +15920,8 @@ function AnimatedTabs({
|
|
|
15802
15920
|
const originalIndex = tabs.findIndex((t) => t.value === tab.value);
|
|
15803
15921
|
return renderTab(tab, originalIndex);
|
|
15804
15922
|
}),
|
|
15805
|
-
overflowTabs.length > 0 && /* @__PURE__ */
|
|
15806
|
-
/* @__PURE__ */
|
|
15923
|
+
overflowTabs.length > 0 && /* @__PURE__ */ jsxs79(DropdownMenu, { children: [
|
|
15924
|
+
/* @__PURE__ */ jsxs79(
|
|
15807
15925
|
DropdownMenuTrigger,
|
|
15808
15926
|
{
|
|
15809
15927
|
ref: dropdownTriggerRef,
|
|
@@ -15895,7 +16013,7 @@ function BackgroundImage({
|
|
|
15895
16013
|
// src/components/ui/badge.tsx
|
|
15896
16014
|
import { useRender as useRender6 } from "@base-ui/react/use-render";
|
|
15897
16015
|
import { cva as cva12 } from "class-variance-authority";
|
|
15898
|
-
import { Fragment as Fragment23, jsx as jsx128, jsxs as
|
|
16016
|
+
import { Fragment as Fragment23, jsx as jsx128, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
15899
16017
|
var BADGE_VARIANT_CN = {
|
|
15900
16018
|
default: "cn-badge-variant-default",
|
|
15901
16019
|
secondary: "cn-badge-variant-secondary",
|
|
@@ -15977,7 +16095,7 @@ function Badge({
|
|
|
15977
16095
|
color && "bg-[var(--badge-color)] text-[var(--badge-color-fg)]",
|
|
15978
16096
|
className
|
|
15979
16097
|
),
|
|
15980
|
-
children: /* @__PURE__ */
|
|
16098
|
+
children: /* @__PURE__ */ jsxs80(Fragment23, { children: [
|
|
15981
16099
|
leftSection,
|
|
15982
16100
|
children,
|
|
15983
16101
|
rightSection
|
|
@@ -16343,7 +16461,7 @@ function CalendarDayButton({
|
|
|
16343
16461
|
import { IconChevronLeft as IconChevronLeft3, IconChevronRight as IconChevronRight6 } from "@tabler/icons-react";
|
|
16344
16462
|
import useEmblaCarousel from "embla-carousel-react";
|
|
16345
16463
|
import * as React12 from "react";
|
|
16346
|
-
import { jsx as jsx133, jsxs as
|
|
16464
|
+
import { jsx as jsx133, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
16347
16465
|
var CarouselContext = React12.createContext(null);
|
|
16348
16466
|
function useCarousel() {
|
|
16349
16467
|
const context = React12.useContext(CarouselContext);
|
|
@@ -16484,7 +16602,7 @@ function CarouselPrevious({
|
|
|
16484
16602
|
...props
|
|
16485
16603
|
}) {
|
|
16486
16604
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
16487
|
-
return /* @__PURE__ */
|
|
16605
|
+
return /* @__PURE__ */ jsxs81(
|
|
16488
16606
|
Button,
|
|
16489
16607
|
{
|
|
16490
16608
|
"data-slot": "carousel-previous",
|
|
@@ -16512,7 +16630,7 @@ function CarouselNext({
|
|
|
16512
16630
|
...props
|
|
16513
16631
|
}) {
|
|
16514
16632
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
16515
|
-
return /* @__PURE__ */
|
|
16633
|
+
return /* @__PURE__ */ jsxs81(
|
|
16516
16634
|
Button,
|
|
16517
16635
|
{
|
|
16518
16636
|
"data-slot": "carousel-next",
|
|
@@ -16555,7 +16673,7 @@ function Center({ className, inline, children, ...props }) {
|
|
|
16555
16673
|
// src/components/ui/chart.tsx
|
|
16556
16674
|
import * as React13 from "react";
|
|
16557
16675
|
import * as RechartsPrimitive from "recharts";
|
|
16558
|
-
import { Fragment as Fragment24, jsx as jsx135, jsxs as
|
|
16676
|
+
import { Fragment as Fragment24, jsx as jsx135, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
16559
16677
|
var THEMES = { light: "", dark: ".dark" };
|
|
16560
16678
|
var sanitizeToken = (value) => value.replace(/[^a-zA-Z0-9-_]/g, "");
|
|
16561
16679
|
var ChartContext = React13.createContext(null);
|
|
@@ -16577,7 +16695,7 @@ function ChartContainer({
|
|
|
16577
16695
|
const sanitizedUniqueId = sanitizeToken(uniqueId);
|
|
16578
16696
|
const chartToken = id ? sanitizeToken(id) : sanitizedUniqueId;
|
|
16579
16697
|
const chartId = `chart-${chartToken || sanitizedUniqueId}`;
|
|
16580
|
-
return /* @__PURE__ */ jsx135(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */
|
|
16698
|
+
return /* @__PURE__ */ jsx135(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs82(
|
|
16581
16699
|
"div",
|
|
16582
16700
|
{
|
|
16583
16701
|
"data-slot": "chart",
|
|
@@ -16656,7 +16774,7 @@ function ChartTooltipContent({
|
|
|
16656
16774
|
return null;
|
|
16657
16775
|
}
|
|
16658
16776
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
16659
|
-
return /* @__PURE__ */
|
|
16777
|
+
return /* @__PURE__ */ jsxs82(
|
|
16660
16778
|
"div",
|
|
16661
16779
|
{
|
|
16662
16780
|
className: cn(
|
|
@@ -16676,7 +16794,7 @@ function ChartTooltipContent({
|
|
|
16676
16794
|
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
|
16677
16795
|
indicator === "dot" && "items-center"
|
|
16678
16796
|
),
|
|
16679
|
-
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */
|
|
16797
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs82(Fragment24, { children: [
|
|
16680
16798
|
itemConfig?.icon ? /* @__PURE__ */ jsx135(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx135(
|
|
16681
16799
|
"div",
|
|
16682
16800
|
{
|
|
@@ -16695,7 +16813,7 @@ function ChartTooltipContent({
|
|
|
16695
16813
|
}
|
|
16696
16814
|
}
|
|
16697
16815
|
),
|
|
16698
|
-
/* @__PURE__ */
|
|
16816
|
+
/* @__PURE__ */ jsxs82(
|
|
16699
16817
|
"div",
|
|
16700
16818
|
{
|
|
16701
16819
|
className: cn(
|
|
@@ -16703,7 +16821,7 @@ function ChartTooltipContent({
|
|
|
16703
16821
|
nestLabel ? "items-end" : "items-center"
|
|
16704
16822
|
),
|
|
16705
16823
|
children: [
|
|
16706
|
-
/* @__PURE__ */
|
|
16824
|
+
/* @__PURE__ */ jsxs82("div", { className: "grid gap-1.5", children: [
|
|
16707
16825
|
nestLabel ? tooltipLabel : null,
|
|
16708
16826
|
/* @__PURE__ */ jsx135("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
16709
16827
|
] }),
|
|
@@ -16743,7 +16861,7 @@ function ChartLegendContent({
|
|
|
16743
16861
|
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
16744
16862
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
16745
16863
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
16746
|
-
return /* @__PURE__ */
|
|
16864
|
+
return /* @__PURE__ */ jsxs82(
|
|
16747
16865
|
"div",
|
|
16748
16866
|
{
|
|
16749
16867
|
className: cn(
|
|
@@ -17106,7 +17224,7 @@ function hasAlpha(format) {
|
|
|
17106
17224
|
import { useCallback as useCallback21, useEffect as useEffect24, useRef as useRef16, useState as useState38 } from "react";
|
|
17107
17225
|
|
|
17108
17226
|
// src/components/ui/color-swatch.tsx
|
|
17109
|
-
import { jsx as jsx139, jsxs as
|
|
17227
|
+
import { jsx as jsx139, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
17110
17228
|
var radiusClasses = {
|
|
17111
17229
|
xs: "rounded-[var(--radius-xs)]",
|
|
17112
17230
|
sm: "rounded-[var(--radius-sm)]",
|
|
@@ -17126,7 +17244,7 @@ function ColorSwatch({
|
|
|
17126
17244
|
...props
|
|
17127
17245
|
}) {
|
|
17128
17246
|
const sizeStyle = typeof size === "number" ? { width: size, height: size, minWidth: size, minHeight: size } : { width: size, height: size, minWidth: size, minHeight: size };
|
|
17129
|
-
return /* @__PURE__ */
|
|
17247
|
+
return /* @__PURE__ */ jsxs83(
|
|
17130
17248
|
"div",
|
|
17131
17249
|
{
|
|
17132
17250
|
"data-slot": "color-swatch",
|
|
@@ -17153,7 +17271,7 @@ function ColorSwatch({
|
|
|
17153
17271
|
}
|
|
17154
17272
|
|
|
17155
17273
|
// src/components/ui/color-picker.tsx
|
|
17156
|
-
import { Fragment as Fragment25, jsx as jsx140, jsxs as
|
|
17274
|
+
import { Fragment as Fragment25, jsx as jsx140, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
17157
17275
|
var SATURATION_HEIGHT = {
|
|
17158
17276
|
xs: 80,
|
|
17159
17277
|
sm: 100,
|
|
@@ -17370,7 +17488,7 @@ function ColorPicker({
|
|
|
17370
17488
|
const showAlpha = hasAlpha(format);
|
|
17371
17489
|
const satHeight = SATURATION_HEIGHT[size];
|
|
17372
17490
|
const thumbSize = THUMB_SIZE[size];
|
|
17373
|
-
const pickerEl = /* @__PURE__ */
|
|
17491
|
+
const pickerEl = /* @__PURE__ */ jsxs84(
|
|
17374
17492
|
"div",
|
|
17375
17493
|
{
|
|
17376
17494
|
className: cn(
|
|
@@ -17384,7 +17502,7 @@ function ColorPicker({
|
|
|
17384
17502
|
"--cp-thumb-size": `${thumbSize}px`
|
|
17385
17503
|
},
|
|
17386
17504
|
children: [
|
|
17387
|
-
withPicker && /* @__PURE__ */
|
|
17505
|
+
withPicker && /* @__PURE__ */ jsxs84(Fragment25, { children: [
|
|
17388
17506
|
/* @__PURE__ */ jsx140(
|
|
17389
17507
|
"div",
|
|
17390
17508
|
{
|
|
@@ -17421,7 +17539,7 @@ function ColorPicker({
|
|
|
17421
17539
|
)
|
|
17422
17540
|
}
|
|
17423
17541
|
),
|
|
17424
|
-
/* @__PURE__ */
|
|
17542
|
+
/* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1", children: [
|
|
17425
17543
|
hueLabel && /* @__PURE__ */ jsx140("span", { className: "text-muted-foreground text-xs", children: hueLabel }),
|
|
17426
17544
|
/* @__PURE__ */ jsx140(
|
|
17427
17545
|
HueAlphaSlider,
|
|
@@ -17439,9 +17557,9 @@ function ColorPicker({
|
|
|
17439
17557
|
}
|
|
17440
17558
|
)
|
|
17441
17559
|
] }),
|
|
17442
|
-
showAlpha && /* @__PURE__ */
|
|
17560
|
+
showAlpha && /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1", children: [
|
|
17443
17561
|
alphaLabel && /* @__PURE__ */ jsx140("span", { className: "text-muted-foreground text-xs", children: alphaLabel }),
|
|
17444
|
-
/* @__PURE__ */
|
|
17562
|
+
/* @__PURE__ */ jsxs84("div", { className: "relative", children: [
|
|
17445
17563
|
/* @__PURE__ */ jsx140(
|
|
17446
17564
|
"div",
|
|
17447
17565
|
{
|
|
@@ -17468,7 +17586,7 @@ function ColorPicker({
|
|
|
17468
17586
|
)
|
|
17469
17587
|
] })
|
|
17470
17588
|
] }),
|
|
17471
|
-
showAlpha && /* @__PURE__ */
|
|
17589
|
+
showAlpha && /* @__PURE__ */ jsxs84("div", { className: "flex items-center gap-2", children: [
|
|
17472
17590
|
/* @__PURE__ */ jsx140(
|
|
17473
17591
|
ColorSwatch,
|
|
17474
17592
|
{
|
|
@@ -17571,7 +17689,7 @@ function ColorPicker({
|
|
|
17571
17689
|
}
|
|
17572
17690
|
|
|
17573
17691
|
// src/components/ui/color-input.tsx
|
|
17574
|
-
import { jsx as jsx141, jsxs as
|
|
17692
|
+
import { jsx as jsx141, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
17575
17693
|
var sizeClasses3 = {
|
|
17576
17694
|
xs: "h-7 text-xs px-2",
|
|
17577
17695
|
sm: "h-8 text-sm px-2.5",
|
|
@@ -17790,7 +17908,7 @@ var ColorInput = React14.forwardRef(
|
|
|
17790
17908
|
)
|
|
17791
17909
|
}
|
|
17792
17910
|
) : null;
|
|
17793
|
-
const inputEl = /* @__PURE__ */
|
|
17911
|
+
const inputEl = /* @__PURE__ */ jsxs85("div", { ref: anchorRef, className: "relative w-full", children: [
|
|
17794
17912
|
leftSection && /* @__PURE__ */ jsx141("div", { className: "pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 flex items-center", children: leftSection }),
|
|
17795
17913
|
/* @__PURE__ */ jsx141(
|
|
17796
17914
|
Input,
|
|
@@ -17829,7 +17947,7 @@ var ColorInput = React14.forwardRef(
|
|
|
17829
17947
|
),
|
|
17830
17948
|
rightSection && /* @__PURE__ */ jsx141("div", { className: "absolute right-0.5 top-1/2 -translate-y-1/2 flex items-center pointer-events-auto", children: rightSection })
|
|
17831
17949
|
] });
|
|
17832
|
-
const content = !withPopover || popoverDisabled ? inputEl : /* @__PURE__ */
|
|
17950
|
+
const content = !withPopover || popoverDisabled ? inputEl : /* @__PURE__ */ jsxs85(Popover, { open: dropdownOpened, onOpenChange: setDropdownOpened, children: [
|
|
17833
17951
|
inputEl,
|
|
17834
17952
|
/* @__PURE__ */ jsx141(
|
|
17835
17953
|
PopoverContent,
|
|
@@ -17904,7 +18022,7 @@ ColorInput.displayName = "ColorInput";
|
|
|
17904
18022
|
import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
|
|
17905
18023
|
import { IconCheck as IconCheck4, IconChevronDown as IconChevronDown9 } from "@tabler/icons-react";
|
|
17906
18024
|
import { useMemo as useMemo13, useState as useState40 } from "react";
|
|
17907
|
-
import { jsx as jsx142, jsxs as
|
|
18025
|
+
import { jsx as jsx142, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
17908
18026
|
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)]";
|
|
17909
18027
|
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";
|
|
17910
18028
|
function Combobox({
|
|
@@ -17930,7 +18048,7 @@ function Combobox({
|
|
|
17930
18048
|
const q = inputValue.toLowerCase();
|
|
17931
18049
|
return options.filter((o) => o.label.toLowerCase().includes(q));
|
|
17932
18050
|
}, [inputValue, options]);
|
|
17933
|
-
return /* @__PURE__ */
|
|
18051
|
+
return /* @__PURE__ */ jsxs86(
|
|
17934
18052
|
ComboboxPrimitive.Root,
|
|
17935
18053
|
{
|
|
17936
18054
|
"data-slot": "combobox",
|
|
@@ -17941,7 +18059,7 @@ function Combobox({
|
|
|
17941
18059
|
onValueChange: (next) => onValueChange?.(next ?? null),
|
|
17942
18060
|
...props,
|
|
17943
18061
|
children: [
|
|
17944
|
-
/* @__PURE__ */
|
|
18062
|
+
/* @__PURE__ */ jsxs86(InputGroup, { className: cn("w-auto", className), children: [
|
|
17945
18063
|
/* @__PURE__ */ jsx142(
|
|
17946
18064
|
ComboboxPrimitive.Input,
|
|
17947
18065
|
{
|
|
@@ -17954,36 +18072,44 @@ function Combobox({
|
|
|
17954
18072
|
)
|
|
17955
18073
|
}
|
|
17956
18074
|
),
|
|
17957
|
-
/* @__PURE__ */
|
|
17958
|
-
|
|
17959
|
-
|
|
17960
|
-
|
|
17961
|
-
|
|
17962
|
-
|
|
17963
|
-
|
|
17964
|
-
|
|
18075
|
+
/* @__PURE__ */ jsxs86(
|
|
18076
|
+
"div",
|
|
18077
|
+
{
|
|
18078
|
+
"data-slot": "input-group-addon",
|
|
18079
|
+
"data-align": "inline-end",
|
|
18080
|
+
className: "cn-input-group-addon cn-input-group-addon-align-inline-end order-last flex cursor-text items-center justify-center select-none appearance-none border-0 bg-transparent p-0 text-inherit",
|
|
18081
|
+
children: [
|
|
18082
|
+
/* @__PURE__ */ jsx142(
|
|
18083
|
+
InputGroupButton,
|
|
18084
|
+
{
|
|
18085
|
+
size: "icon-xs",
|
|
18086
|
+
variant: "ghost",
|
|
18087
|
+
render: /* @__PURE__ */ jsx142(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", children: /* @__PURE__ */ jsx142(
|
|
18088
|
+
IconChevronDown9,
|
|
18089
|
+
{
|
|
18090
|
+
"data-slot": "combobox-trigger-icon",
|
|
18091
|
+
className: "cn-combobox-trigger-icon"
|
|
18092
|
+
}
|
|
18093
|
+
) }),
|
|
18094
|
+
disabled,
|
|
18095
|
+
className: cn(
|
|
18096
|
+
showClear && "group-has-data-[slot=combobox-clear]/input-group:hidden",
|
|
18097
|
+
"data-pressed:bg-transparent"
|
|
18098
|
+
)
|
|
18099
|
+
}
|
|
18100
|
+
),
|
|
18101
|
+
showClear && /* @__PURE__ */ jsx142(
|
|
18102
|
+
ComboboxPrimitive.Clear,
|
|
17965
18103
|
{
|
|
17966
|
-
"data-slot": "combobox-
|
|
17967
|
-
|
|
18104
|
+
"data-slot": "combobox-clear",
|
|
18105
|
+
render: /* @__PURE__ */ jsx142(InputGroupButton, { variant: "ghost", size: "icon-xs" }),
|
|
18106
|
+
disabled,
|
|
18107
|
+
children: /* @__PURE__ */ jsx142("span", { className: "sr-only", children: "Clear" })
|
|
17968
18108
|
}
|
|
17969
|
-
) }),
|
|
17970
|
-
disabled,
|
|
17971
|
-
className: cn(
|
|
17972
|
-
showClear && "group-has-data-[slot=combobox-clear]/input-group:hidden",
|
|
17973
|
-
"data-pressed:bg-transparent"
|
|
17974
18109
|
)
|
|
17975
|
-
|
|
17976
|
-
|
|
17977
|
-
|
|
17978
|
-
ComboboxPrimitive.Clear,
|
|
17979
|
-
{
|
|
17980
|
-
"data-slot": "combobox-clear",
|
|
17981
|
-
render: /* @__PURE__ */ jsx142(InputGroupButton, { variant: "ghost", size: "icon-xs" }),
|
|
17982
|
-
disabled,
|
|
17983
|
-
children: /* @__PURE__ */ jsx142("span", { className: "sr-only", children: "Clear" })
|
|
17984
|
-
}
|
|
17985
|
-
)
|
|
17986
|
-
] })
|
|
18110
|
+
]
|
|
18111
|
+
}
|
|
18112
|
+
)
|
|
17987
18113
|
] }),
|
|
17988
18114
|
/* @__PURE__ */ jsx142(ComboboxPrimitive.Portal, { children: /* @__PURE__ */ jsx142(
|
|
17989
18115
|
ComboboxPrimitive.Positioner,
|
|
@@ -18010,7 +18136,7 @@ function Combobox({
|
|
|
18010
18136
|
className: "cn-combobox-empty",
|
|
18011
18137
|
children: emptyText
|
|
18012
18138
|
}
|
|
18013
|
-
) : filteredOptions.map((option) => /* @__PURE__ */
|
|
18139
|
+
) : filteredOptions.map((option) => /* @__PURE__ */ jsxs86(
|
|
18014
18140
|
ComboboxPrimitive.Item,
|
|
18015
18141
|
{
|
|
18016
18142
|
value: option.value,
|
|
@@ -18071,7 +18197,7 @@ var containerVariants = cva16("mx-auto w-full", {
|
|
|
18071
18197
|
function Container({
|
|
18072
18198
|
className,
|
|
18073
18199
|
size,
|
|
18074
|
-
px,
|
|
18200
|
+
px: px2,
|
|
18075
18201
|
fluid,
|
|
18076
18202
|
children,
|
|
18077
18203
|
...props
|
|
@@ -18082,7 +18208,7 @@ function Container({
|
|
|
18082
18208
|
"data-slot": "container",
|
|
18083
18209
|
className: cn(
|
|
18084
18210
|
"cn-container min-w-0 transition-[max-width,padding]",
|
|
18085
|
-
containerVariants({ size: fluid ? "fluid" : size, px }),
|
|
18211
|
+
containerVariants({ size: fluid ? "fluid" : size, px: px2 }),
|
|
18086
18212
|
className
|
|
18087
18213
|
),
|
|
18088
18214
|
...props,
|
|
@@ -18094,7 +18220,7 @@ function Container({
|
|
|
18094
18220
|
// src/components/ui/context-menu.tsx
|
|
18095
18221
|
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
|
|
18096
18222
|
import { IconCheck as IconCheck5, IconChevronRight as IconChevronRight7 } from "@tabler/icons-react";
|
|
18097
|
-
import { jsx as jsx144, jsxs as
|
|
18223
|
+
import { jsx as jsx144, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
18098
18224
|
var CONTEXT_MENU_POSITIONER_CN = "isolate z-50 outline-none";
|
|
18099
18225
|
var CONTEXT_MENU_CONTENT_CN = cn(
|
|
18100
18226
|
"cn-context-menu-content cn-context-menu-content-logical cn-menu-target",
|
|
@@ -18163,7 +18289,7 @@ function ContextMenuSubTrigger({
|
|
|
18163
18289
|
children,
|
|
18164
18290
|
...props
|
|
18165
18291
|
}) {
|
|
18166
|
-
return /* @__PURE__ */
|
|
18292
|
+
return /* @__PURE__ */ jsxs87(
|
|
18167
18293
|
ContextMenuPrimitive.SubmenuTrigger,
|
|
18168
18294
|
{
|
|
18169
18295
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -18275,7 +18401,7 @@ function ContextMenuCheckboxItem({
|
|
|
18275
18401
|
inset,
|
|
18276
18402
|
...props
|
|
18277
18403
|
}) {
|
|
18278
|
-
return /* @__PURE__ */
|
|
18404
|
+
return /* @__PURE__ */ jsxs87(
|
|
18279
18405
|
ContextMenuPrimitive.CheckboxItem,
|
|
18280
18406
|
{
|
|
18281
18407
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -18300,7 +18426,7 @@ function ContextMenuRadioItem({
|
|
|
18300
18426
|
inset,
|
|
18301
18427
|
...props
|
|
18302
18428
|
}) {
|
|
18303
|
-
return /* @__PURE__ */
|
|
18429
|
+
return /* @__PURE__ */ jsxs87(
|
|
18304
18430
|
ContextMenuPrimitive.RadioItem,
|
|
18305
18431
|
{
|
|
18306
18432
|
"data-slot": "context-menu-radio-item",
|
|
@@ -18413,7 +18539,7 @@ import {
|
|
|
18413
18539
|
useReactTable
|
|
18414
18540
|
} from "@tanstack/react-table";
|
|
18415
18541
|
import * as React15 from "react";
|
|
18416
|
-
import { jsx as jsx146, jsxs as
|
|
18542
|
+
import { jsx as jsx146, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
18417
18543
|
function DataTable({
|
|
18418
18544
|
columns,
|
|
18419
18545
|
data,
|
|
@@ -18501,7 +18627,7 @@ function DataTable({
|
|
|
18501
18627
|
getFacetedRowModel: getFacetedRowModel(),
|
|
18502
18628
|
getFacetedUniqueValues: getFacetedUniqueValues()
|
|
18503
18629
|
});
|
|
18504
|
-
return /* @__PURE__ */ jsx146("div", { "data-slot": "data-table", className: "cn-data-table", children: /* @__PURE__ */
|
|
18630
|
+
return /* @__PURE__ */ jsx146("div", { "data-slot": "data-table", className: "cn-data-table", children: /* @__PURE__ */ jsxs88(Table, { children: [
|
|
18505
18631
|
/* @__PURE__ */ jsx146(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx146(TableRow, { children: headerGroup.headers.map((header, index) => {
|
|
18506
18632
|
const isFirst = index === 0;
|
|
18507
18633
|
const isLast = index === headerGroup.headers.length - 1;
|
|
@@ -18561,13 +18687,13 @@ function DataTable({
|
|
|
18561
18687
|
|
|
18562
18688
|
// src/components/ui/data-table/data-table-action.tsx
|
|
18563
18689
|
import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
|
|
18564
|
-
import { jsx as jsx147, jsxs as
|
|
18690
|
+
import { jsx as jsx147, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
18565
18691
|
function DataTableAction({
|
|
18566
18692
|
onClick,
|
|
18567
18693
|
disabled,
|
|
18568
18694
|
"aria-label": ariaLabel = "Open menu"
|
|
18569
18695
|
}) {
|
|
18570
|
-
return /* @__PURE__ */ jsx147("div", { className: "cn-data-table-action flex justify-end", children: /* @__PURE__ */
|
|
18696
|
+
return /* @__PURE__ */ jsx147("div", { className: "cn-data-table-action flex justify-end", children: /* @__PURE__ */ jsxs89(
|
|
18571
18697
|
Button,
|
|
18572
18698
|
{
|
|
18573
18699
|
variant: "ghost",
|
|
@@ -18603,12 +18729,12 @@ function DataTableColumnHeader({
|
|
|
18603
18729
|
|
|
18604
18730
|
// src/components/ui/data-table/data-table-view-options.tsx
|
|
18605
18731
|
import { IconSettings } from "@tabler/icons-react";
|
|
18606
|
-
import { jsx as jsx149, jsxs as
|
|
18732
|
+
import { jsx as jsx149, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
18607
18733
|
function DataTableViewOptions({
|
|
18608
18734
|
table
|
|
18609
18735
|
}) {
|
|
18610
|
-
return /* @__PURE__ */
|
|
18611
|
-
/* @__PURE__ */
|
|
18736
|
+
return /* @__PURE__ */ jsxs90(DropdownMenu, { children: [
|
|
18737
|
+
/* @__PURE__ */ jsxs90(
|
|
18612
18738
|
DropdownMenuTrigger,
|
|
18613
18739
|
{
|
|
18614
18740
|
render: /* @__PURE__ */ jsx149(
|
|
@@ -18631,7 +18757,7 @@ function DataTableViewOptions({
|
|
|
18631
18757
|
DropdownMenuContent,
|
|
18632
18758
|
{
|
|
18633
18759
|
className: cn("cn-data-table-view-options-content w-[150px]"),
|
|
18634
|
-
children: /* @__PURE__ */
|
|
18760
|
+
children: /* @__PURE__ */ jsxs90(DropdownMenuGroup, { children: [
|
|
18635
18761
|
/* @__PURE__ */ jsx149(DropdownMenuLabel, { children: "Toggle columns" }),
|
|
18636
18762
|
table.getAllColumns().filter(
|
|
18637
18763
|
(column) => typeof column.accessorFn !== "undefined" && column.getCanHide()
|
|
@@ -18659,7 +18785,7 @@ import {
|
|
|
18659
18785
|
|
|
18660
18786
|
// src/components/ui/drawer.tsx
|
|
18661
18787
|
import { Dialog as DrawerPrimitive } from "@base-ui/react/dialog";
|
|
18662
|
-
import { jsx as jsx150, jsxs as
|
|
18788
|
+
import { jsx as jsx150, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
18663
18789
|
function Drawer({
|
|
18664
18790
|
...props
|
|
18665
18791
|
}) {
|
|
@@ -18699,9 +18825,9 @@ function DrawerContent({
|
|
|
18699
18825
|
side = "bottom",
|
|
18700
18826
|
...props
|
|
18701
18827
|
}) {
|
|
18702
|
-
return /* @__PURE__ */
|
|
18828
|
+
return /* @__PURE__ */ jsxs91(DrawerPortal, { "data-slot": "drawer-portal", keepMounted: true, children: [
|
|
18703
18829
|
/* @__PURE__ */ jsx150(DrawerOverlay, {}),
|
|
18704
|
-
/* @__PURE__ */
|
|
18830
|
+
/* @__PURE__ */ jsxs91(
|
|
18705
18831
|
DrawerPrimitive.Popup,
|
|
18706
18832
|
{
|
|
18707
18833
|
"data-slot": "drawer-content",
|
|
@@ -18768,7 +18894,7 @@ function DrawerDescription({
|
|
|
18768
18894
|
|
|
18769
18895
|
// src/components/ui/dropdown-button.tsx
|
|
18770
18896
|
import { IconChevronDown as IconChevronDown10 } from "@tabler/icons-react";
|
|
18771
|
-
import { Fragment as Fragment26, jsx as jsx151, jsxs as
|
|
18897
|
+
import { Fragment as Fragment26, jsx as jsx151, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
18772
18898
|
var DROPDOWN_BUTTON_TRIGGER_SIZE_CN = {
|
|
18773
18899
|
xs: "px-1.5",
|
|
18774
18900
|
sm: "px-2",
|
|
@@ -18783,7 +18909,7 @@ function getButtonVariant(variant) {
|
|
|
18783
18909
|
return variant;
|
|
18784
18910
|
}
|
|
18785
18911
|
function renderItemContent(item) {
|
|
18786
|
-
return /* @__PURE__ */
|
|
18912
|
+
return /* @__PURE__ */ jsxs92(Fragment26, { children: [
|
|
18787
18913
|
item.icon,
|
|
18788
18914
|
/* @__PURE__ */ jsx151("span", { className: "min-w-0 flex-1 truncate", children: item.label }),
|
|
18789
18915
|
item.shortcut ? /* @__PURE__ */ jsx151(DropdownMenuShortcut, { children: item.shortcut }) : null
|
|
@@ -18791,7 +18917,7 @@ function renderItemContent(item) {
|
|
|
18791
18917
|
}
|
|
18792
18918
|
function renderActionItem(item, key) {
|
|
18793
18919
|
if (item.items?.length) {
|
|
18794
|
-
return /* @__PURE__ */
|
|
18920
|
+
return /* @__PURE__ */ jsxs92(DropdownMenuSub, { children: [
|
|
18795
18921
|
/* @__PURE__ */ jsx151(DropdownMenuSubTrigger, { inset: item.inset, children: renderItemContent(item) }),
|
|
18796
18922
|
/* @__PURE__ */ jsx151(DropdownMenuSubContent, { children: renderDropdownButtonItems(item.items) })
|
|
18797
18923
|
] }, key);
|
|
@@ -18873,7 +18999,7 @@ function DropdownButton({
|
|
|
18873
18999
|
const variantClass = variant === "danger" ? "cn-dropdown-button-variant-danger" : "";
|
|
18874
19000
|
const isDisabled = buttonProps.disabled || buttonProps.loading || items.length === 0;
|
|
18875
19001
|
if (!split) {
|
|
18876
|
-
return /* @__PURE__ */
|
|
19002
|
+
return /* @__PURE__ */ jsxs92(DropdownMenu, { children: [
|
|
18877
19003
|
/* @__PURE__ */ jsx151(
|
|
18878
19004
|
DropdownMenuTrigger,
|
|
18879
19005
|
{
|
|
@@ -18904,8 +19030,8 @@ function DropdownButton({
|
|
|
18904
19030
|
) })
|
|
18905
19031
|
] });
|
|
18906
19032
|
}
|
|
18907
|
-
return /* @__PURE__ */
|
|
18908
|
-
/* @__PURE__ */
|
|
19033
|
+
return /* @__PURE__ */ jsxs92(DropdownMenu, { children: [
|
|
19034
|
+
/* @__PURE__ */ jsxs92("div", { className: cn("cn-dropdown-button-shell", className), children: [
|
|
18909
19035
|
/* @__PURE__ */ jsx151(
|
|
18910
19036
|
Button,
|
|
18911
19037
|
{
|
|
@@ -18961,7 +19087,7 @@ function DropdownButton({
|
|
|
18961
19087
|
|
|
18962
19088
|
// src/components/ui/file-button.tsx
|
|
18963
19089
|
import { useRef as useRef18 } from "react";
|
|
18964
|
-
import { Fragment as Fragment27, jsx as jsx152, jsxs as
|
|
19090
|
+
import { Fragment as Fragment27, jsx as jsx152, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
18965
19091
|
function FileButton({
|
|
18966
19092
|
onChange,
|
|
18967
19093
|
accept,
|
|
@@ -18979,7 +19105,7 @@ function FileButton({
|
|
|
18979
19105
|
const handleChange = (e) => {
|
|
18980
19106
|
onChange(e.target.files);
|
|
18981
19107
|
};
|
|
18982
|
-
return /* @__PURE__ */
|
|
19108
|
+
return /* @__PURE__ */ jsxs93(Fragment27, { children: [
|
|
18983
19109
|
/* @__PURE__ */ jsx152(
|
|
18984
19110
|
"input",
|
|
18985
19111
|
{
|
|
@@ -19147,7 +19273,7 @@ function FilePreviewSurface({
|
|
|
19147
19273
|
}
|
|
19148
19274
|
|
|
19149
19275
|
// src/components/ui/file-drop-input.tsx
|
|
19150
|
-
import { Fragment as Fragment28, jsx as jsx154, jsxs as
|
|
19276
|
+
import { Fragment as Fragment28, jsx as jsx154, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
19151
19277
|
function FileDropInput({
|
|
19152
19278
|
className,
|
|
19153
19279
|
onFilesChange,
|
|
@@ -19224,14 +19350,14 @@ function FileDropInput({
|
|
|
19224
19350
|
}
|
|
19225
19351
|
setFiles(nextFiles);
|
|
19226
19352
|
};
|
|
19227
|
-
const fileDropInputElement = /* @__PURE__ */
|
|
19228
|
-
/* @__PURE__ */
|
|
19353
|
+
const fileDropInputElement = /* @__PURE__ */ jsxs94(Fragment28, { children: [
|
|
19354
|
+
/* @__PURE__ */ jsxs94(
|
|
19229
19355
|
"div",
|
|
19230
19356
|
{
|
|
19231
19357
|
"data-slot": "file-drop-input-wrapper",
|
|
19232
19358
|
className: cn("cn-file-drop-input-wrapper", className),
|
|
19233
19359
|
children: [
|
|
19234
|
-
/* @__PURE__ */
|
|
19360
|
+
/* @__PURE__ */ jsxs94(
|
|
19235
19361
|
"label",
|
|
19236
19362
|
{
|
|
19237
19363
|
htmlFor: inputId,
|
|
@@ -19261,7 +19387,7 @@ function FileDropInput({
|
|
|
19261
19387
|
...props
|
|
19262
19388
|
}
|
|
19263
19389
|
),
|
|
19264
|
-
singleItem ? /* @__PURE__ */
|
|
19390
|
+
singleItem ? /* @__PURE__ */ jsxs94(
|
|
19265
19391
|
"div",
|
|
19266
19392
|
{
|
|
19267
19393
|
"data-slot": "file-drop-input-single-preview",
|
|
@@ -19281,7 +19407,7 @@ function FileDropInput({
|
|
|
19281
19407
|
)
|
|
19282
19408
|
}
|
|
19283
19409
|
),
|
|
19284
|
-
/* @__PURE__ */
|
|
19410
|
+
/* @__PURE__ */ jsxs94(
|
|
19285
19411
|
"div",
|
|
19286
19412
|
{
|
|
19287
19413
|
"data-slot": "file-drop-input-preview-actions",
|
|
@@ -19328,14 +19454,14 @@ function FileDropInput({
|
|
|
19328
19454
|
)
|
|
19329
19455
|
]
|
|
19330
19456
|
}
|
|
19331
|
-
) : /* @__PURE__ */
|
|
19457
|
+
) : /* @__PURE__ */ jsxs94(
|
|
19332
19458
|
"div",
|
|
19333
19459
|
{
|
|
19334
19460
|
"data-slot": "file-drop-input-prompt",
|
|
19335
19461
|
className: "cn-file-drop-input-prompt",
|
|
19336
19462
|
children: [
|
|
19337
19463
|
/* @__PURE__ */ jsx154(IconPhoto4, { className: "cn-file-drop-input-icon" }),
|
|
19338
|
-
/* @__PURE__ */
|
|
19464
|
+
/* @__PURE__ */ jsxs94("div", { children: [
|
|
19339
19465
|
/* @__PURE__ */ jsx154("div", { className: "cn-file-drop-input-title", children: dropLabel }),
|
|
19340
19466
|
/* @__PURE__ */ jsx154("div", { className: "cn-file-drop-input-description", children: dropDescription })
|
|
19341
19467
|
] })
|
|
@@ -19352,13 +19478,13 @@ function FileDropInput({
|
|
|
19352
19478
|
className: "cn-file-drop-input-list",
|
|
19353
19479
|
children: items.map((item) => {
|
|
19354
19480
|
const ItemIcon = getFileIcon2(item.type);
|
|
19355
|
-
return /* @__PURE__ */
|
|
19481
|
+
return /* @__PURE__ */ jsxs94(
|
|
19356
19482
|
"div",
|
|
19357
19483
|
{
|
|
19358
19484
|
"data-slot": "file-drop-input-item",
|
|
19359
19485
|
className: "cn-file-drop-input-item",
|
|
19360
19486
|
children: [
|
|
19361
|
-
/* @__PURE__ */
|
|
19487
|
+
/* @__PURE__ */ jsxs94("div", { className: "cn-file-drop-input-item-left", children: [
|
|
19362
19488
|
/* @__PURE__ */ jsx154(ItemIcon, { className: "cn-file-drop-input-item-icon" }),
|
|
19363
19489
|
/* @__PURE__ */ jsx154("span", { className: "cn-file-drop-input-item-name", children: item.name }),
|
|
19364
19490
|
formatBytes2(item.size) ? /* @__PURE__ */ jsx154("span", { className: "cn-file-drop-input-item-size", children: formatBytes2(item.size) }) : null
|
|
@@ -19439,7 +19565,7 @@ import {
|
|
|
19439
19565
|
IconX as IconX12
|
|
19440
19566
|
} from "@tabler/icons-react";
|
|
19441
19567
|
import { useId as useId7, useRef as useRef20, useState as useState45 } from "react";
|
|
19442
|
-
import { Fragment as Fragment29, jsx as jsx155, jsxs as
|
|
19568
|
+
import { Fragment as Fragment29, jsx as jsx155, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
19443
19569
|
function FileInput({
|
|
19444
19570
|
className,
|
|
19445
19571
|
onFilesChange,
|
|
@@ -19520,18 +19646,18 @@ function FileInput({
|
|
|
19520
19646
|
const RootIcon = singleItem ? getFileIcon2(singleItem.type) : IconPaperclip;
|
|
19521
19647
|
let metaContent = null;
|
|
19522
19648
|
if (items.length > 1) {
|
|
19523
|
-
metaContent = /* @__PURE__ */
|
|
19649
|
+
metaContent = /* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
|
|
19524
19650
|
items.length,
|
|
19525
19651
|
" files selected"
|
|
19526
19652
|
] });
|
|
19527
19653
|
} else if (props.accept) {
|
|
19528
|
-
metaContent = /* @__PURE__ */
|
|
19654
|
+
metaContent = /* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
|
|
19529
19655
|
"Accepts ",
|
|
19530
19656
|
props.accept
|
|
19531
19657
|
] });
|
|
19532
19658
|
}
|
|
19533
|
-
const fileInputElement = /* @__PURE__ */
|
|
19534
|
-
/* @__PURE__ */
|
|
19659
|
+
const fileInputElement = /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19660
|
+
/* @__PURE__ */ jsxs95(
|
|
19535
19661
|
"div",
|
|
19536
19662
|
{
|
|
19537
19663
|
"data-slot": "file-input-wrapper",
|
|
@@ -19560,7 +19686,7 @@ function FileInput({
|
|
|
19560
19686
|
className: "cn-file-input-root",
|
|
19561
19687
|
onClick: () => inputRef.current?.click(),
|
|
19562
19688
|
disabled,
|
|
19563
|
-
children: singleItem ? /* @__PURE__ */
|
|
19689
|
+
children: singleItem ? /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19564
19690
|
/* @__PURE__ */ jsx155(
|
|
19565
19691
|
"div",
|
|
19566
19692
|
{
|
|
@@ -19575,7 +19701,7 @@ function FileInput({
|
|
|
19575
19701
|
)
|
|
19576
19702
|
}
|
|
19577
19703
|
),
|
|
19578
|
-
/* @__PURE__ */
|
|
19704
|
+
/* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
|
|
19579
19705
|
/* @__PURE__ */ jsx155(
|
|
19580
19706
|
"div",
|
|
19581
19707
|
{
|
|
@@ -19586,7 +19712,7 @@ function FileInput({
|
|
|
19586
19712
|
),
|
|
19587
19713
|
/* @__PURE__ */ jsx155("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: formatBytes2(singleItem.size) ?? "uploaded file" })
|
|
19588
19714
|
] }),
|
|
19589
|
-
/* @__PURE__ */
|
|
19715
|
+
/* @__PURE__ */ jsxs95(
|
|
19590
19716
|
"div",
|
|
19591
19717
|
{
|
|
19592
19718
|
"data-slot": "file-input-actions",
|
|
@@ -19625,7 +19751,7 @@ function FileInput({
|
|
|
19625
19751
|
]
|
|
19626
19752
|
}
|
|
19627
19753
|
)
|
|
19628
|
-
] }) : /* @__PURE__ */
|
|
19754
|
+
] }) : /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19629
19755
|
/* @__PURE__ */ jsx155(
|
|
19630
19756
|
"div",
|
|
19631
19757
|
{
|
|
@@ -19634,7 +19760,7 @@ function FileInput({
|
|
|
19634
19760
|
children: leftSection ?? /* @__PURE__ */ jsx155(RootIcon, { className: "size-4" })
|
|
19635
19761
|
}
|
|
19636
19762
|
),
|
|
19637
|
-
/* @__PURE__ */
|
|
19763
|
+
/* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
|
|
19638
19764
|
/* @__PURE__ */ jsx155(
|
|
19639
19765
|
"div",
|
|
19640
19766
|
{
|
|
@@ -19658,13 +19784,13 @@ function FileInput({
|
|
|
19658
19784
|
),
|
|
19659
19785
|
!singleItem && items.length > 1 ? /* @__PURE__ */ jsx155("div", { "data-slot": "file-input-list", className: "cn-file-input-list", children: items.map((item) => {
|
|
19660
19786
|
const ItemIcon = getFileIcon2(item.type);
|
|
19661
|
-
return /* @__PURE__ */
|
|
19787
|
+
return /* @__PURE__ */ jsxs95(
|
|
19662
19788
|
"div",
|
|
19663
19789
|
{
|
|
19664
19790
|
"data-slot": "file-input-item",
|
|
19665
19791
|
className: "cn-file-input-item",
|
|
19666
19792
|
children: [
|
|
19667
|
-
/* @__PURE__ */
|
|
19793
|
+
/* @__PURE__ */ jsxs95("div", { className: "cn-file-input-item-left", children: [
|
|
19668
19794
|
/* @__PURE__ */ jsx155(ItemIcon, { className: "cn-file-input-item-icon" }),
|
|
19669
19795
|
/* @__PURE__ */ jsx155("span", { className: "cn-file-input-item-name", children: item.name }),
|
|
19670
19796
|
formatBytes2(item.size) ? /* @__PURE__ */ jsx155("span", { className: "cn-file-input-item-size", children: formatBytes2(item.size) }) : null
|
|
@@ -20236,7 +20362,7 @@ function HoverCardContent({
|
|
|
20236
20362
|
|
|
20237
20363
|
// src/components/ui/indicator.tsx
|
|
20238
20364
|
import { cva as cva18 } from "class-variance-authority";
|
|
20239
|
-
import { jsx as jsx163, jsxs as
|
|
20365
|
+
import { jsx as jsx163, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
20240
20366
|
var indicatorVariants = cva18(
|
|
20241
20367
|
"cn-indicator absolute flex items-center justify-center rounded-full text-xs font-medium transition-colors",
|
|
20242
20368
|
{
|
|
@@ -20300,7 +20426,7 @@ function Indicator({
|
|
|
20300
20426
|
if (disabled) {
|
|
20301
20427
|
return /* @__PURE__ */ jsx163("div", { className: cn(inline && "inline-block"), children });
|
|
20302
20428
|
}
|
|
20303
|
-
return /* @__PURE__ */
|
|
20429
|
+
return /* @__PURE__ */ jsxs96(
|
|
20304
20430
|
"div",
|
|
20305
20431
|
{
|
|
20306
20432
|
"data-slot": "indicator-wrapper",
|
|
@@ -20508,7 +20634,7 @@ function ItemFooter({ className, ...props }) {
|
|
|
20508
20634
|
|
|
20509
20635
|
// src/components/ui/json-input.tsx
|
|
20510
20636
|
import { useState as useState47 } from "react";
|
|
20511
|
-
import { jsx as jsx165, jsxs as
|
|
20637
|
+
import { jsx as jsx165, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
20512
20638
|
function JsonInput({
|
|
20513
20639
|
className,
|
|
20514
20640
|
value,
|
|
@@ -20561,7 +20687,7 @@ function JsonInput({
|
|
|
20561
20687
|
onBlur?.(e);
|
|
20562
20688
|
};
|
|
20563
20689
|
const errorMessage = validationError || error;
|
|
20564
|
-
return /* @__PURE__ */
|
|
20690
|
+
return /* @__PURE__ */ jsxs97("div", { "data-slot": "json-input", className: "cn-json-input relative w-full", children: [
|
|
20565
20691
|
/* @__PURE__ */ jsx165(
|
|
20566
20692
|
Textarea,
|
|
20567
20693
|
{
|
|
@@ -20695,7 +20821,7 @@ function Mark({ className, color, ...props }) {
|
|
|
20695
20821
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
20696
20822
|
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
|
|
20697
20823
|
import { IconCheck as IconCheck7, IconChevronRight as IconChevronRight9 } from "@tabler/icons-react";
|
|
20698
|
-
import { jsx as jsx169, jsxs as
|
|
20824
|
+
import { jsx as jsx169, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
20699
20825
|
var MENUBAR_POSITIONER_CN = "isolate z-50 outline-none";
|
|
20700
20826
|
var MENUBAR_CONTENT_CN = cn(
|
|
20701
20827
|
"cn-menubar-content cn-menubar-content-logical cn-menu-target",
|
|
@@ -20820,7 +20946,7 @@ function MenubarCheckboxItem({
|
|
|
20820
20946
|
inset,
|
|
20821
20947
|
...props
|
|
20822
20948
|
}) {
|
|
20823
|
-
return /* @__PURE__ */
|
|
20949
|
+
return /* @__PURE__ */ jsxs98(
|
|
20824
20950
|
MenuPrimitive.CheckboxItem,
|
|
20825
20951
|
{
|
|
20826
20952
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -20845,7 +20971,7 @@ function MenubarRadioItem({
|
|
|
20845
20971
|
inset,
|
|
20846
20972
|
...props
|
|
20847
20973
|
}) {
|
|
20848
|
-
return /* @__PURE__ */
|
|
20974
|
+
return /* @__PURE__ */ jsxs98(
|
|
20849
20975
|
MenuPrimitive.RadioItem,
|
|
20850
20976
|
{
|
|
20851
20977
|
"data-slot": "menubar-radio-item",
|
|
@@ -20911,7 +21037,7 @@ function MenubarSubTrigger({
|
|
|
20911
21037
|
children,
|
|
20912
21038
|
...props
|
|
20913
21039
|
}) {
|
|
20914
|
-
return /* @__PURE__ */
|
|
21040
|
+
return /* @__PURE__ */ jsxs98(
|
|
20915
21041
|
MenuPrimitive.SubmenuTrigger,
|
|
20916
21042
|
{
|
|
20917
21043
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -20964,7 +21090,7 @@ function MenubarSubContent({
|
|
|
20964
21090
|
|
|
20965
21091
|
// src/components/ui/money-input.tsx
|
|
20966
21092
|
import { forwardRef as forwardRef12, useCallback as useCallback23, useState as useState48 } from "react";
|
|
20967
|
-
import { jsx as jsx170, jsxs as
|
|
21093
|
+
import { jsx as jsx170, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
20968
21094
|
var defaultCurrencies = [
|
|
20969
21095
|
{ label: "ETB", value: "etb", symbol: "Br" },
|
|
20970
21096
|
{ label: "USD", value: "usd", symbol: "$" },
|
|
@@ -21055,7 +21181,7 @@ var MoneyInput = forwardRef12(
|
|
|
21055
21181
|
ref,
|
|
21056
21182
|
"data-slot": "money-input",
|
|
21057
21183
|
className: cn("w-full", className),
|
|
21058
|
-
children: /* @__PURE__ */
|
|
21184
|
+
children: /* @__PURE__ */ jsxs99(InputGroup, { disabled, className: cn(sizes.group), children: [
|
|
21059
21185
|
/* @__PURE__ */ jsx170(
|
|
21060
21186
|
InputGroupAddon,
|
|
21061
21187
|
{
|
|
@@ -21078,7 +21204,7 @@ var MoneyInput = forwardRef12(
|
|
|
21078
21204
|
className: "tabular-nums !pl-2"
|
|
21079
21205
|
}
|
|
21080
21206
|
),
|
|
21081
|
-
/* @__PURE__ */ jsx170(InputGroupAddon, { align: "inline-end", className: "py-0 pr-0", children: /* @__PURE__ */ jsx170("div", { className: "cn-money-input-currency-divider flex h-full items-center", children: /* @__PURE__ */
|
|
21207
|
+
/* @__PURE__ */ jsx170(InputGroupAddon, { align: "inline-end", className: "py-0 pr-0", as: "div", children: /* @__PURE__ */ jsx170("div", { className: "cn-money-input-currency-divider flex h-full items-center", children: /* @__PURE__ */ jsxs99(
|
|
21082
21208
|
Select,
|
|
21083
21209
|
{
|
|
21084
21210
|
value: internalCurrency,
|
|
@@ -21110,7 +21236,7 @@ MoneyInput.displayName = "MoneyInput";
|
|
|
21110
21236
|
import { Autocomplete as AutocompletePrimitive2 } from "@base-ui/react/autocomplete";
|
|
21111
21237
|
import { IconCheck as IconCheck8, IconChevronDown as IconChevronDown11, IconX as IconX13 } from "@tabler/icons-react";
|
|
21112
21238
|
import { useState as useState49 } from "react";
|
|
21113
|
-
import { jsx as jsx171, jsxs as
|
|
21239
|
+
import { jsx as jsx171, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
21114
21240
|
function MultiSelect({
|
|
21115
21241
|
options,
|
|
21116
21242
|
value = [],
|
|
@@ -21143,7 +21269,7 @@ function MultiSelect({
|
|
|
21143
21269
|
"relative w-full data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
21144
21270
|
className
|
|
21145
21271
|
),
|
|
21146
|
-
children: /* @__PURE__ */
|
|
21272
|
+
children: /* @__PURE__ */ jsxs100(
|
|
21147
21273
|
AutocompletePrimitive2.Root,
|
|
21148
21274
|
{
|
|
21149
21275
|
open: disabled ? false : open,
|
|
@@ -21160,16 +21286,16 @@ function MultiSelect({
|
|
|
21160
21286
|
inline: true,
|
|
21161
21287
|
...props,
|
|
21162
21288
|
children: [
|
|
21163
|
-
/* @__PURE__ */
|
|
21164
|
-
/* @__PURE__ */ jsx171("div", { className: "cn-combobox-chips", children: /* @__PURE__ */
|
|
21165
|
-
selectedOptions.map((option) => /* @__PURE__ */
|
|
21289
|
+
/* @__PURE__ */ jsxs100("div", { className: "relative", children: [
|
|
21290
|
+
/* @__PURE__ */ jsx171("div", { className: "cn-combobox-chips", children: /* @__PURE__ */ jsxs100("div", { className: "flex flex-wrap gap-1", children: [
|
|
21291
|
+
selectedOptions.map((option) => /* @__PURE__ */ jsxs100(
|
|
21166
21292
|
"span",
|
|
21167
21293
|
{
|
|
21168
21294
|
"data-slot": "multi-select-chip",
|
|
21169
21295
|
className: "cn-combobox-chip",
|
|
21170
21296
|
children: [
|
|
21171
21297
|
/* @__PURE__ */ jsx171("span", { className: "flex-1", children: option.label }),
|
|
21172
|
-
/* @__PURE__ */
|
|
21298
|
+
/* @__PURE__ */ jsxs100(
|
|
21173
21299
|
"button",
|
|
21174
21300
|
{
|
|
21175
21301
|
type: "button",
|
|
@@ -21209,7 +21335,7 @@ function MultiSelect({
|
|
|
21209
21335
|
{
|
|
21210
21336
|
"data-slot": "multi-select-content",
|
|
21211
21337
|
className: cn("cn-multi-select-content cn-combobox-content"),
|
|
21212
|
-
children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx171("div", { className: "cn-multi-select-empty", children: emptyText }) : filteredOptions.map((option) => /* @__PURE__ */
|
|
21338
|
+
children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx171("div", { className: "cn-multi-select-empty", children: emptyText }) : filteredOptions.map((option) => /* @__PURE__ */ jsxs100(
|
|
21213
21339
|
AutocompletePrimitive2.Item,
|
|
21214
21340
|
{
|
|
21215
21341
|
value: option.value,
|
|
@@ -21240,7 +21366,7 @@ function MultiSelect({
|
|
|
21240
21366
|
// src/components/ui/native-select.tsx
|
|
21241
21367
|
import { IconChevronDown as IconChevronDown12 } from "@tabler/icons-react";
|
|
21242
21368
|
import { forwardRef as forwardRef13 } from "react";
|
|
21243
|
-
import { jsx as jsx172, jsxs as
|
|
21369
|
+
import { jsx as jsx172, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
21244
21370
|
function mapNativeSelectSize(size) {
|
|
21245
21371
|
return size === "xs" || size === "sm" ? "sm" : "default";
|
|
21246
21372
|
}
|
|
@@ -21253,7 +21379,7 @@ var NativeSelectBase = forwardRef13(
|
|
|
21253
21379
|
({ className, size = "md", data, children, rightSection, ...props }, ref) => {
|
|
21254
21380
|
const options = data ? parseOptions(data) : null;
|
|
21255
21381
|
const mappedSize = mapNativeSelectSize(size);
|
|
21256
|
-
return /* @__PURE__ */
|
|
21382
|
+
return /* @__PURE__ */ jsxs101(
|
|
21257
21383
|
"div",
|
|
21258
21384
|
{
|
|
21259
21385
|
"data-slot": "native-select-wrapper",
|
|
@@ -21335,7 +21461,7 @@ NativeSelect.displayName = "NativeSelect";
|
|
|
21335
21461
|
// src/components/ui/nav-link.tsx
|
|
21336
21462
|
import { useMesob as useMesob9 } from "@mesob/ui/providers";
|
|
21337
21463
|
import { cva as cva21 } from "class-variance-authority";
|
|
21338
|
-
import { jsx as jsx173, jsxs as
|
|
21464
|
+
import { jsx as jsx173, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
21339
21465
|
var isExternal3 = (href) => !href || href.startsWith("http") || href.startsWith("//") || href.startsWith("mailto:") || href.startsWith("tel:");
|
|
21340
21466
|
var navLinkVariants = cva21(
|
|
21341
21467
|
"cn-nav-link flex items-center gap-3 px-3 py-2 text-sm font-medium transition-colors cursor-pointer",
|
|
@@ -21369,12 +21495,12 @@ function NavLink({
|
|
|
21369
21495
|
...props
|
|
21370
21496
|
}) {
|
|
21371
21497
|
const mesob = useMesob9();
|
|
21372
|
-
const Link2 = mesob?.
|
|
21498
|
+
const Link2 = mesob?.navigation?.Link;
|
|
21373
21499
|
const locale = mesob?.locale;
|
|
21374
21500
|
const useLink = href && !isExternal3(href) && Link2;
|
|
21375
21501
|
const Comp = useLink ? Link2 : "a";
|
|
21376
21502
|
const linkProps = useLink ? { ...props, href, ...locale && { locale } } : { ...props, href };
|
|
21377
|
-
return /* @__PURE__ */
|
|
21503
|
+
return /* @__PURE__ */ jsxs102(
|
|
21378
21504
|
Comp,
|
|
21379
21505
|
{
|
|
21380
21506
|
"data-slot": "nav-link",
|
|
@@ -21408,14 +21534,14 @@ function NavLink({
|
|
|
21408
21534
|
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
|
|
21409
21535
|
import { IconChevronDown as IconChevronDown13 } from "@tabler/icons-react";
|
|
21410
21536
|
import { cva as cva22 } from "class-variance-authority";
|
|
21411
|
-
import { jsx as jsx174, jsxs as
|
|
21537
|
+
import { jsx as jsx174, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
21412
21538
|
function NavigationMenu({
|
|
21413
21539
|
className,
|
|
21414
21540
|
children,
|
|
21415
21541
|
viewport = true,
|
|
21416
21542
|
...props
|
|
21417
21543
|
}) {
|
|
21418
|
-
return /* @__PURE__ */
|
|
21544
|
+
return /* @__PURE__ */ jsxs103(
|
|
21419
21545
|
NavigationMenuPrimitive.Root,
|
|
21420
21546
|
{
|
|
21421
21547
|
"data-slot": "navigation-menu",
|
|
@@ -21481,7 +21607,7 @@ function NavigationMenuTrigger({
|
|
|
21481
21607
|
children,
|
|
21482
21608
|
...props
|
|
21483
21609
|
}) {
|
|
21484
|
-
return /* @__PURE__ */
|
|
21610
|
+
return /* @__PURE__ */ jsxs103(
|
|
21485
21611
|
NavigationMenuPrimitive.Trigger,
|
|
21486
21612
|
{
|
|
21487
21613
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -21871,7 +21997,7 @@ function UnstyledButton({
|
|
|
21871
21997
|
}
|
|
21872
21998
|
|
|
21873
21999
|
// src/components/ui/number-input.tsx
|
|
21874
|
-
import { jsx as jsx178, jsxs as
|
|
22000
|
+
import { jsx as jsx178, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
21875
22001
|
var sizeClasses5 = {
|
|
21876
22002
|
xs: "h-7",
|
|
21877
22003
|
sm: "h-8",
|
|
@@ -21974,7 +22100,7 @@ var NumberInput = forwardRef14(
|
|
|
21974
22100
|
};
|
|
21975
22101
|
const hasWrapper = label || description || error || required || withAsterisk;
|
|
21976
22102
|
const showControls = controls && !disabled;
|
|
21977
|
-
const controlsEl = showControls ? /* @__PURE__ */
|
|
22103
|
+
const controlsEl = showControls ? /* @__PURE__ */ jsxs104(
|
|
21978
22104
|
"div",
|
|
21979
22105
|
{
|
|
21980
22106
|
"data-slot": "number-input-controls",
|
|
@@ -22015,7 +22141,7 @@ var NumberInput = forwardRef14(
|
|
|
22015
22141
|
]
|
|
22016
22142
|
}
|
|
22017
22143
|
) : null;
|
|
22018
|
-
const inputEl = /* @__PURE__ */
|
|
22144
|
+
const inputEl = /* @__PURE__ */ jsxs104(InputGroup, { disabled, className: cn(sizeClasses5[size]), children: [
|
|
22019
22145
|
leftSection && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-start", className: "pointer-events-none", children: leftSection }),
|
|
22020
22146
|
/* @__PURE__ */ jsx178(
|
|
22021
22147
|
InputGroupInput,
|
|
@@ -22035,12 +22161,13 @@ var NumberInput = forwardRef14(
|
|
|
22035
22161
|
...inputProps
|
|
22036
22162
|
}
|
|
22037
22163
|
),
|
|
22038
|
-
rightSection && !showControls && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-end", children: rightSection }),
|
|
22164
|
+
rightSection && !showControls && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-end", as: "div", children: rightSection }),
|
|
22039
22165
|
showControls && /* @__PURE__ */ jsx178(
|
|
22040
22166
|
InputGroupAddon,
|
|
22041
22167
|
{
|
|
22042
22168
|
align: "inline-end",
|
|
22043
22169
|
className: "cn-number-input-controls-addon",
|
|
22170
|
+
as: "div",
|
|
22044
22171
|
children: controlsEl
|
|
22045
22172
|
}
|
|
22046
22173
|
)
|
|
@@ -22075,7 +22202,7 @@ import {
|
|
|
22075
22202
|
IconChevronRight as IconChevronRight10,
|
|
22076
22203
|
IconDots as IconDots2
|
|
22077
22204
|
} from "@tabler/icons-react";
|
|
22078
|
-
import { jsx as jsx179, jsxs as
|
|
22205
|
+
import { jsx as jsx179, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
22079
22206
|
function Pagination({ className, ...props }) {
|
|
22080
22207
|
return /* @__PURE__ */ jsx179(
|
|
22081
22208
|
"nav",
|
|
@@ -22131,7 +22258,7 @@ function PaginationPrevious({
|
|
|
22131
22258
|
className,
|
|
22132
22259
|
...props
|
|
22133
22260
|
}) {
|
|
22134
|
-
return /* @__PURE__ */
|
|
22261
|
+
return /* @__PURE__ */ jsxs105(
|
|
22135
22262
|
PaginationLink,
|
|
22136
22263
|
{
|
|
22137
22264
|
"aria-label": "Go to previous page",
|
|
@@ -22149,7 +22276,7 @@ function PaginationNext({
|
|
|
22149
22276
|
className,
|
|
22150
22277
|
...props
|
|
22151
22278
|
}) {
|
|
22152
|
-
return /* @__PURE__ */
|
|
22279
|
+
return /* @__PURE__ */ jsxs105(
|
|
22153
22280
|
PaginationLink,
|
|
22154
22281
|
{
|
|
22155
22282
|
"aria-label": "Go to next page",
|
|
@@ -22167,7 +22294,7 @@ function PaginationEllipsis({
|
|
|
22167
22294
|
className,
|
|
22168
22295
|
...props
|
|
22169
22296
|
}) {
|
|
22170
|
-
return /* @__PURE__ */
|
|
22297
|
+
return /* @__PURE__ */ jsxs105(
|
|
22171
22298
|
"span",
|
|
22172
22299
|
{
|
|
22173
22300
|
"aria-hidden": true,
|
|
@@ -22236,7 +22363,7 @@ function Paper({
|
|
|
22236
22363
|
// src/components/ui/password-input.tsx
|
|
22237
22364
|
import { IconEye, IconEyeOff } from "@tabler/icons-react";
|
|
22238
22365
|
import { forwardRef as forwardRef15, useState as useState50 } from "react";
|
|
22239
|
-
import { jsx as jsx181, jsxs as
|
|
22366
|
+
import { jsx as jsx181, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
22240
22367
|
var PasswordInput = forwardRef15(
|
|
22241
22368
|
({ className, showToggle = true, size, ...props }, ref) => {
|
|
22242
22369
|
const [showPassword, setShowPassword] = useState50(false);
|
|
@@ -22248,7 +22375,7 @@ var PasswordInput = forwardRef15(
|
|
|
22248
22375
|
xl: "h-12"
|
|
22249
22376
|
};
|
|
22250
22377
|
const iconButtonSize = size === "xs" || size === "sm" ? "icon-xs" : "icon-sm";
|
|
22251
|
-
return /* @__PURE__ */
|
|
22378
|
+
return /* @__PURE__ */ jsxs106(
|
|
22252
22379
|
InputGroup,
|
|
22253
22380
|
{
|
|
22254
22381
|
disabled: props.disabled,
|
|
@@ -22263,7 +22390,7 @@ var PasswordInput = forwardRef15(
|
|
|
22263
22390
|
...props
|
|
22264
22391
|
}
|
|
22265
22392
|
),
|
|
22266
|
-
showToggle && /* @__PURE__ */ jsx181(InputGroupAddon, { align: "inline-end", children: /* @__PURE__ */ jsx181(
|
|
22393
|
+
showToggle && /* @__PURE__ */ jsx181(InputGroupAddon, { align: "inline-end", as: "div", children: /* @__PURE__ */ jsx181(
|
|
22267
22394
|
InputGroupButton,
|
|
22268
22395
|
{
|
|
22269
22396
|
type: "button",
|
|
@@ -22326,7 +22453,7 @@ PasswordInputWithWrapper.displayName = "PasswordInputWithWrapper";
|
|
|
22326
22453
|
|
|
22327
22454
|
// src/components/ui/pill.tsx
|
|
22328
22455
|
import { cva as cva23 } from "class-variance-authority";
|
|
22329
|
-
import { jsx as jsx182, jsxs as
|
|
22456
|
+
import { jsx as jsx182, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
22330
22457
|
var pillVariants = cva23(
|
|
22331
22458
|
"cn-pill inline-flex items-center gap-1 font-medium shrink-0 outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-100",
|
|
22332
22459
|
{
|
|
@@ -22370,7 +22497,7 @@ function Pill({
|
|
|
22370
22497
|
disabled,
|
|
22371
22498
|
...props
|
|
22372
22499
|
}) {
|
|
22373
|
-
return /* @__PURE__ */
|
|
22500
|
+
return /* @__PURE__ */ jsxs107(
|
|
22374
22501
|
"span",
|
|
22375
22502
|
{
|
|
22376
22503
|
"data-slot": "pill",
|
|
@@ -22614,7 +22741,7 @@ function ResizableHandle({
|
|
|
22614
22741
|
}
|
|
22615
22742
|
|
|
22616
22743
|
// src/components/ui/ring-progress.tsx
|
|
22617
|
-
import { jsx as jsx186, jsxs as
|
|
22744
|
+
import { jsx as jsx186, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
22618
22745
|
function RingProgress({
|
|
22619
22746
|
value,
|
|
22620
22747
|
size = 120,
|
|
@@ -22628,7 +22755,7 @@ function RingProgress({
|
|
|
22628
22755
|
const radius = (size - thickness) / 2;
|
|
22629
22756
|
const circumference = 2 * Math.PI * radius;
|
|
22630
22757
|
const offset = circumference - normalizedValue / 100 * circumference;
|
|
22631
|
-
return /* @__PURE__ */
|
|
22758
|
+
return /* @__PURE__ */ jsxs108(
|
|
22632
22759
|
"div",
|
|
22633
22760
|
{
|
|
22634
22761
|
"data-slot": "ring-progress",
|
|
@@ -22639,12 +22766,8 @@ function RingProgress({
|
|
|
22639
22766
|
style: { width: size, height: size },
|
|
22640
22767
|
...props,
|
|
22641
22768
|
children: [
|
|
22642
|
-
/* @__PURE__ */
|
|
22643
|
-
/* @__PURE__ */
|
|
22644
|
-
"Progress: ",
|
|
22645
|
-
normalizedValue,
|
|
22646
|
-
"%"
|
|
22647
|
-
] }),
|
|
22769
|
+
/* @__PURE__ */ jsxs108("svg", { width: size, height: size, className: "-rotate-90", "aria-hidden": "true", children: [
|
|
22770
|
+
/* @__PURE__ */ jsx186("title", { children: `Progress: ${normalizedValue}%` }),
|
|
22648
22771
|
/* @__PURE__ */ jsx186(
|
|
22649
22772
|
"circle",
|
|
22650
22773
|
{
|
|
@@ -22680,7 +22803,7 @@ function RingProgress({
|
|
|
22680
22803
|
}
|
|
22681
22804
|
|
|
22682
22805
|
// src/components/ui/semi-circle-progress.tsx
|
|
22683
|
-
import { jsx as jsx187, jsxs as
|
|
22806
|
+
import { jsx as jsx187, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
22684
22807
|
function SemiCircleProgress({
|
|
22685
22808
|
className,
|
|
22686
22809
|
value,
|
|
@@ -22694,7 +22817,7 @@ function SemiCircleProgress({
|
|
|
22694
22817
|
const radius = (size - thickness) / 2;
|
|
22695
22818
|
const circumference = Math.PI * radius;
|
|
22696
22819
|
const strokeDashoffset = circumference - normalizedValue / 100 * circumference;
|
|
22697
|
-
return /* @__PURE__ */
|
|
22820
|
+
return /* @__PURE__ */ jsxs109(
|
|
22698
22821
|
"div",
|
|
22699
22822
|
{
|
|
22700
22823
|
"data-slot": "semi-circle-progress",
|
|
@@ -22704,7 +22827,7 @@ function SemiCircleProgress({
|
|
|
22704
22827
|
),
|
|
22705
22828
|
...props,
|
|
22706
22829
|
children: [
|
|
22707
|
-
/* @__PURE__ */
|
|
22830
|
+
/* @__PURE__ */ jsxs109(
|
|
22708
22831
|
"svg",
|
|
22709
22832
|
{
|
|
22710
22833
|
width: size,
|
|
@@ -22714,11 +22837,7 @@ function SemiCircleProgress({
|
|
|
22714
22837
|
role: "img",
|
|
22715
22838
|
"aria-label": `Progress: ${Math.round(normalizedValue)}%`,
|
|
22716
22839
|
children: [
|
|
22717
|
-
/* @__PURE__ */
|
|
22718
|
-
"Progress: ",
|
|
22719
|
-
Math.round(normalizedValue),
|
|
22720
|
-
"%"
|
|
22721
|
-
] }),
|
|
22840
|
+
/* @__PURE__ */ jsx187("title", { children: `Progress: ${Math.round(normalizedValue)}%` }),
|
|
22722
22841
|
/* @__PURE__ */ jsx187(
|
|
22723
22842
|
"path",
|
|
22724
22843
|
{
|
|
@@ -22869,7 +22988,7 @@ function Space({ className, h, w, style, ...props }) {
|
|
|
22869
22988
|
// src/components/ui/spoiler.tsx
|
|
22870
22989
|
import { IconChevronDown as IconChevronDown15 } from "@tabler/icons-react";
|
|
22871
22990
|
import { useEffect as useEffect30, useRef as useRef22, useState as useState52 } from "react";
|
|
22872
|
-
import { jsx as jsx190, jsxs as
|
|
22991
|
+
import { jsx as jsx190, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
22873
22992
|
function Spoiler({
|
|
22874
22993
|
maxHeight = 100,
|
|
22875
22994
|
showLabel = "Show more",
|
|
@@ -22899,7 +23018,7 @@ function Spoiler({
|
|
|
22899
23018
|
window.removeEventListener("resize", update);
|
|
22900
23019
|
};
|
|
22901
23020
|
}, [maxHeight]);
|
|
22902
|
-
return /* @__PURE__ */
|
|
23021
|
+
return /* @__PURE__ */ jsxs110(
|
|
22903
23022
|
"div",
|
|
22904
23023
|
{
|
|
22905
23024
|
"data-slot": "spoiler",
|
|
@@ -22925,7 +23044,7 @@ function Spoiler({
|
|
|
22925
23044
|
className: "cn-spoiler-fade pointer-events-none absolute inset-x-0 bottom-0"
|
|
22926
23045
|
}
|
|
22927
23046
|
),
|
|
22928
|
-
shouldShowButton && /* @__PURE__ */
|
|
23047
|
+
shouldShowButton && /* @__PURE__ */ jsxs110(
|
|
22929
23048
|
Button,
|
|
22930
23049
|
{
|
|
22931
23050
|
variant: "ghost",
|
|
@@ -23000,7 +23119,7 @@ function Stack({
|
|
|
23000
23119
|
|
|
23001
23120
|
// src/components/ui/status-dropdown-button.tsx
|
|
23002
23121
|
import { useCallback as useCallback25, useMemo as useMemo16, useState as useState53 } from "react";
|
|
23003
|
-
import { Fragment as Fragment30, jsx as jsx192, jsxs as
|
|
23122
|
+
import { Fragment as Fragment30, jsx as jsx192, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
23004
23123
|
var STATUS_MENU_SEPARATOR = "separator";
|
|
23005
23124
|
function resolveConfirmConfig(target, entityLabel) {
|
|
23006
23125
|
if (!target.confirm) {
|
|
@@ -23093,7 +23212,7 @@ function StatusDropdownButton({
|
|
|
23093
23212
|
[value, states, transitions, groupLabel, onPick]
|
|
23094
23213
|
);
|
|
23095
23214
|
const current = states.find((s) => s.value === value);
|
|
23096
|
-
return /* @__PURE__ */
|
|
23215
|
+
return /* @__PURE__ */ jsxs111(Fragment30, { children: [
|
|
23097
23216
|
/* @__PURE__ */ jsx192(
|
|
23098
23217
|
DropdownButton,
|
|
23099
23218
|
{
|
|
@@ -23101,7 +23220,7 @@ function StatusDropdownButton({
|
|
|
23101
23220
|
className,
|
|
23102
23221
|
items,
|
|
23103
23222
|
variant,
|
|
23104
|
-
children: /* @__PURE__ */
|
|
23223
|
+
children: /* @__PURE__ */ jsxs111(
|
|
23105
23224
|
"span",
|
|
23106
23225
|
{
|
|
23107
23226
|
className: cn(
|
|
@@ -23126,12 +23245,12 @@ function StatusDropdownButton({
|
|
|
23126
23245
|
setPending(null);
|
|
23127
23246
|
}
|
|
23128
23247
|
},
|
|
23129
|
-
children: /* @__PURE__ */
|
|
23130
|
-
/* @__PURE__ */
|
|
23248
|
+
children: /* @__PURE__ */ jsxs111(AlertDialogContent, { children: [
|
|
23249
|
+
/* @__PURE__ */ jsxs111(AlertDialogHeader, { children: [
|
|
23131
23250
|
/* @__PURE__ */ jsx192(AlertDialogTitle, { children: pending?.config.title ?? "Confirm?" }),
|
|
23132
23251
|
pending?.config.description != null ? /* @__PURE__ */ jsx192(AlertDialogDescription, { children: pending.config.description }) : null
|
|
23133
23252
|
] }),
|
|
23134
|
-
/* @__PURE__ */
|
|
23253
|
+
/* @__PURE__ */ jsxs111(AlertDialogFooter, { children: [
|
|
23135
23254
|
/* @__PURE__ */ jsx192(AlertDialogCancel, { children: pending?.config.cancelLabel ?? "Cancel" }),
|
|
23136
23255
|
/* @__PURE__ */ jsx192(
|
|
23137
23256
|
AlertDialogAction,
|
|
@@ -23156,7 +23275,7 @@ function StatusDropdownButton({
|
|
|
23156
23275
|
// src/components/ui/stepper.tsx
|
|
23157
23276
|
import { IconCheck as IconCheck9 } from "@tabler/icons-react";
|
|
23158
23277
|
import { createContext as createContext8, useContext as useContext9 } from "react";
|
|
23159
|
-
import { jsx as jsx193, jsxs as
|
|
23278
|
+
import { jsx as jsx193, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
23160
23279
|
var StepperContext = createContext8({
|
|
23161
23280
|
activeStep: 0,
|
|
23162
23281
|
orientation: "horizontal"
|
|
@@ -23201,7 +23320,7 @@ function Step({
|
|
|
23201
23320
|
} else if (isActive) {
|
|
23202
23321
|
state2 = "active";
|
|
23203
23322
|
}
|
|
23204
|
-
return /* @__PURE__ */
|
|
23323
|
+
return /* @__PURE__ */ jsxs112(
|
|
23205
23324
|
"div",
|
|
23206
23325
|
{
|
|
23207
23326
|
"data-slot": "step",
|
|
@@ -23213,7 +23332,7 @@ function Step({
|
|
|
23213
23332
|
),
|
|
23214
23333
|
...props,
|
|
23215
23334
|
children: [
|
|
23216
|
-
/* @__PURE__ */
|
|
23335
|
+
/* @__PURE__ */ jsxs112(
|
|
23217
23336
|
"div",
|
|
23218
23337
|
{
|
|
23219
23338
|
className: cn(
|
|
@@ -23230,7 +23349,7 @@ function Step({
|
|
|
23230
23349
|
children: isCompleted ? /* @__PURE__ */ jsx193(IconCheck9, { className: "size-5" }) : /* @__PURE__ */ jsx193("span", { children: index + 1 })
|
|
23231
23350
|
}
|
|
23232
23351
|
),
|
|
23233
|
-
(label || description) && /* @__PURE__ */
|
|
23352
|
+
(label || description) && /* @__PURE__ */ jsxs112(
|
|
23234
23353
|
"div",
|
|
23235
23354
|
{
|
|
23236
23355
|
className: cn(
|
|
@@ -23342,7 +23461,7 @@ function TableOfContents({
|
|
|
23342
23461
|
// src/components/ui/tags-input.tsx
|
|
23343
23462
|
import { IconX as IconX14 } from "@tabler/icons-react";
|
|
23344
23463
|
import { useState as useState54 } from "react";
|
|
23345
|
-
import { jsx as jsx196, jsxs as
|
|
23464
|
+
import { jsx as jsx196, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
23346
23465
|
function TagsInput({
|
|
23347
23466
|
className,
|
|
23348
23467
|
value,
|
|
@@ -23400,21 +23519,21 @@ function TagsInput({
|
|
|
23400
23519
|
}
|
|
23401
23520
|
setInputValue(newValue);
|
|
23402
23521
|
};
|
|
23403
|
-
return /* @__PURE__ */
|
|
23522
|
+
return /* @__PURE__ */ jsxs113(
|
|
23404
23523
|
"div",
|
|
23405
23524
|
{
|
|
23406
23525
|
"data-slot": "tags-input",
|
|
23407
23526
|
className: cn("cn-tags-input cn-combobox-chips", className),
|
|
23408
23527
|
...props,
|
|
23409
23528
|
children: [
|
|
23410
|
-
tags.map((tag, index) => /* @__PURE__ */
|
|
23529
|
+
tags.map((tag, index) => /* @__PURE__ */ jsxs113(
|
|
23411
23530
|
"span",
|
|
23412
23531
|
{
|
|
23413
23532
|
"data-slot": "tags-input-tag",
|
|
23414
23533
|
className: "cn-combobox-chip",
|
|
23415
23534
|
children: [
|
|
23416
23535
|
tag,
|
|
23417
|
-
/* @__PURE__ */
|
|
23536
|
+
/* @__PURE__ */ jsxs113(
|
|
23418
23537
|
"button",
|
|
23419
23538
|
{
|
|
23420
23539
|
type: "button",
|
|
@@ -23451,7 +23570,7 @@ function TagsInput({
|
|
|
23451
23570
|
|
|
23452
23571
|
// src/components/ui/text-input.tsx
|
|
23453
23572
|
import { forwardRef as forwardRef16 } from "react";
|
|
23454
|
-
import { jsx as jsx197, jsxs as
|
|
23573
|
+
import { jsx as jsx197, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
23455
23574
|
var TextInput = forwardRef16(
|
|
23456
23575
|
({
|
|
23457
23576
|
label,
|
|
@@ -23480,13 +23599,21 @@ var TextInput = forwardRef16(
|
|
|
23480
23599
|
xl: "h-12"
|
|
23481
23600
|
};
|
|
23482
23601
|
const hasWrapper = label || description || error || required || withAsterisk;
|
|
23483
|
-
const inputElement = /* @__PURE__ */
|
|
23602
|
+
const inputElement = /* @__PURE__ */ jsxs114(
|
|
23484
23603
|
InputGroup,
|
|
23485
23604
|
{
|
|
23486
23605
|
disabled,
|
|
23487
23606
|
className: cn(size && groupSizeClasses[size]),
|
|
23488
23607
|
children: [
|
|
23489
|
-
leftSection && /* @__PURE__ */ jsx197(
|
|
23608
|
+
leftSection && /* @__PURE__ */ jsx197(
|
|
23609
|
+
InputGroupAddon,
|
|
23610
|
+
{
|
|
23611
|
+
align: "inline-start",
|
|
23612
|
+
className: "pointer-events-none",
|
|
23613
|
+
as: "div",
|
|
23614
|
+
children: leftSection
|
|
23615
|
+
}
|
|
23616
|
+
),
|
|
23490
23617
|
/* @__PURE__ */ jsx197(
|
|
23491
23618
|
InputGroupInput,
|
|
23492
23619
|
{
|
|
@@ -23502,6 +23629,7 @@ var TextInput = forwardRef16(
|
|
|
23502
23629
|
InputGroupAddon,
|
|
23503
23630
|
{
|
|
23504
23631
|
align: "inline-end",
|
|
23632
|
+
as: "div",
|
|
23505
23633
|
className: cn(
|
|
23506
23634
|
rightSectionPointerEvents === "none" && "pointer-events-none"
|
|
23507
23635
|
),
|
|
@@ -24115,7 +24243,7 @@ function Transition({
|
|
|
24115
24243
|
// src/components/ui/tree.tsx
|
|
24116
24244
|
import { IconChevronRight as IconChevronRight11 } from "@tabler/icons-react";
|
|
24117
24245
|
import { useState as useState56 } from "react";
|
|
24118
|
-
import { jsx as jsx204, jsxs as
|
|
24246
|
+
import { jsx as jsx204, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
24119
24247
|
function Tree({
|
|
24120
24248
|
className,
|
|
24121
24249
|
data,
|
|
@@ -24196,14 +24324,14 @@ function TreeNode({
|
|
|
24196
24324
|
hasChildren,
|
|
24197
24325
|
selected
|
|
24198
24326
|
}) ?? node.label;
|
|
24199
|
-
return /* @__PURE__ */
|
|
24327
|
+
return /* @__PURE__ */ jsxs115(
|
|
24200
24328
|
"div",
|
|
24201
24329
|
{
|
|
24202
24330
|
role: "treeitem",
|
|
24203
24331
|
tabIndex: 0,
|
|
24204
24332
|
"aria-expanded": hasChildren ? expanded : void 0,
|
|
24205
24333
|
children: [
|
|
24206
|
-
/* @__PURE__ */
|
|
24334
|
+
/* @__PURE__ */ jsxs115(
|
|
24207
24335
|
UnstyledButton,
|
|
24208
24336
|
{
|
|
24209
24337
|
type: "button",
|