@mesob/ui 0.5.5 → 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 +12 -5
- package/dist/components.js +667 -556
- package/dist/components.js.map +1 -1
- package/package.json +7 -2
- 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
|
@@ -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({
|
|
@@ -2990,15 +3008,20 @@ function AppSidebar({
|
|
|
2990
3008
|
}
|
|
2991
3009
|
|
|
2992
3010
|
// src/components/ui/card.tsx
|
|
2993
|
-
import {
|
|
3011
|
+
import { Children, isValidElement as isValidElement2 } from "react";
|
|
3012
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2994
3013
|
function Card({
|
|
2995
3014
|
className,
|
|
2996
3015
|
children,
|
|
2997
|
-
size = "
|
|
3016
|
+
size = "md",
|
|
2998
3017
|
padding,
|
|
2999
3018
|
radius,
|
|
3000
|
-
withBorder,
|
|
3019
|
+
withBorder = true,
|
|
3001
3020
|
variant,
|
|
3021
|
+
header,
|
|
3022
|
+
title,
|
|
3023
|
+
actions,
|
|
3024
|
+
footer,
|
|
3002
3025
|
...props
|
|
3003
3026
|
}) {
|
|
3004
3027
|
const paddingClasses = {
|
|
@@ -3017,10 +3040,14 @@ function Card({
|
|
|
3017
3040
|
xl: "rounded-[var(--radius-xl)]",
|
|
3018
3041
|
full: "rounded-full"
|
|
3019
3042
|
};
|
|
3020
|
-
|
|
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(
|
|
3021
3047
|
"div",
|
|
3022
3048
|
{
|
|
3023
3049
|
"data-slot": "card",
|
|
3050
|
+
"data-sectioned": sectioned ? "" : void 0,
|
|
3024
3051
|
"data-size": size,
|
|
3025
3052
|
className: cn(
|
|
3026
3053
|
"cn-card group/card flex flex-col",
|
|
@@ -3032,17 +3059,60 @@ function Card({
|
|
|
3032
3059
|
className
|
|
3033
3060
|
),
|
|
3034
3061
|
...props,
|
|
3035
|
-
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
|
+
]
|
|
3036
3073
|
}
|
|
3037
3074
|
);
|
|
3038
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
|
+
}
|
|
3039
3109
|
function CardHeader({ className, ...props }) {
|
|
3040
3110
|
return /* @__PURE__ */ jsx22(
|
|
3041
3111
|
"div",
|
|
3042
3112
|
{
|
|
3043
3113
|
"data-slot": "card-header",
|
|
3044
3114
|
className: cn(
|
|
3045
|
-
"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",
|
|
3046
3116
|
className
|
|
3047
3117
|
),
|
|
3048
3118
|
...props
|
|
@@ -3075,7 +3145,7 @@ function CardAction({ className, ...props }) {
|
|
|
3075
3145
|
{
|
|
3076
3146
|
"data-slot": "card-action",
|
|
3077
3147
|
className: cn(
|
|
3078
|
-
"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",
|
|
3079
3149
|
className
|
|
3080
3150
|
),
|
|
3081
3151
|
...props
|
|
@@ -3105,8 +3175,8 @@ function CardFooter({ className, ...props }) {
|
|
|
3105
3175
|
|
|
3106
3176
|
// src/components/ui/loader.tsx
|
|
3107
3177
|
import * as React5 from "react";
|
|
3108
|
-
import { Fragment as Fragment7, jsx as jsx23, jsxs as
|
|
3109
|
-
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(
|
|
3110
3180
|
"svg",
|
|
3111
3181
|
{
|
|
3112
3182
|
viewBox: "0 0 38 38",
|
|
@@ -3119,7 +3189,7 @@ var OvalLoader = ({ className }) => /* @__PURE__ */ jsxs15(
|
|
|
3119
3189
|
"aria-label": "Loading",
|
|
3120
3190
|
children: [
|
|
3121
3191
|
/* @__PURE__ */ jsx23("title", { children: "Loading" }),
|
|
3122
|
-
/* @__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: [
|
|
3123
3193
|
/* @__PURE__ */ jsx23(
|
|
3124
3194
|
"circle",
|
|
3125
3195
|
{
|
|
@@ -3212,7 +3282,7 @@ var Loader = React5.forwardRef(
|
|
|
3212
3282
|
}
|
|
3213
3283
|
const loaderSize = getLoaderSize2(size);
|
|
3214
3284
|
const LoaderComponent = loaders[type];
|
|
3215
|
-
return /* @__PURE__ */
|
|
3285
|
+
return /* @__PURE__ */ jsxs16(
|
|
3216
3286
|
"output",
|
|
3217
3287
|
{
|
|
3218
3288
|
ref,
|
|
@@ -3262,7 +3332,7 @@ function Overlay({
|
|
|
3262
3332
|
}
|
|
3263
3333
|
|
|
3264
3334
|
// src/components/ui/loading-overlay.tsx
|
|
3265
|
-
import { jsx as jsx25, jsxs as
|
|
3335
|
+
import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3266
3336
|
function LoadingOverlay({
|
|
3267
3337
|
visible,
|
|
3268
3338
|
zIndex = 1e3,
|
|
@@ -3277,7 +3347,7 @@ function LoadingOverlay({
|
|
|
3277
3347
|
if (!visible) {
|
|
3278
3348
|
return null;
|
|
3279
3349
|
}
|
|
3280
|
-
return /* @__PURE__ */
|
|
3350
|
+
return /* @__PURE__ */ jsxs17(
|
|
3281
3351
|
"div",
|
|
3282
3352
|
{
|
|
3283
3353
|
"data-slot": "loading-overlay",
|
|
@@ -3357,7 +3427,7 @@ function EntityPageLoading({
|
|
|
3357
3427
|
}
|
|
3358
3428
|
|
|
3359
3429
|
// src/components/app/error-page-view.tsx
|
|
3360
|
-
import { jsx as jsx28, jsxs as
|
|
3430
|
+
import { jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3361
3431
|
function ErrorPageView({
|
|
3362
3432
|
code,
|
|
3363
3433
|
title,
|
|
@@ -3366,15 +3436,15 @@ function ErrorPageView({
|
|
|
3366
3436
|
secondaryAction,
|
|
3367
3437
|
onRetry
|
|
3368
3438
|
}) {
|
|
3369
|
-
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: [
|
|
3370
3440
|
/* @__PURE__ */ jsx28("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_80%_50%_at_50%_-20%,var(--color-primary)/0.08,transparent)]" }),
|
|
3371
|
-
/* @__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: [
|
|
3372
3442
|
/* @__PURE__ */ jsx28("span", { className: "font-mono text-[7rem] font-bold leading-none tracking-tighter text-muted-foreground/50", children: code }),
|
|
3373
|
-
/* @__PURE__ */
|
|
3443
|
+
/* @__PURE__ */ jsxs18("div", { className: "w-full space-y-2", children: [
|
|
3374
3444
|
/* @__PURE__ */ jsx28("h1", { className: "text-2xl font-semibold tracking-tight text-foreground sm:text-3xl", children: title }),
|
|
3375
3445
|
/* @__PURE__ */ jsx28("p", { className: "w-full text-sm text-muted-foreground sm:text-base", children: description })
|
|
3376
3446
|
] }),
|
|
3377
|
-
/* @__PURE__ */
|
|
3447
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex w-full flex-col gap-3 sm:flex-row sm:justify-center", children: [
|
|
3378
3448
|
primaryAction,
|
|
3379
3449
|
secondaryAction,
|
|
3380
3450
|
onRetry && /* @__PURE__ */ jsx28(Button, { variant: "ghost", size: "lg", onClick: onRetry, children: "Try again" })
|
|
@@ -3518,7 +3588,7 @@ function Text({
|
|
|
3518
3588
|
}
|
|
3519
3589
|
|
|
3520
3590
|
// src/components/app/no-data-available.tsx
|
|
3521
|
-
import { jsx as jsx29, jsxs as
|
|
3591
|
+
import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3522
3592
|
var isExternal = (href) => href.startsWith("http") || href.startsWith("//") || href.startsWith("mailto:") || href.startsWith("tel:");
|
|
3523
3593
|
function NoDataAvailable({
|
|
3524
3594
|
title,
|
|
@@ -3538,7 +3608,7 @@ function NoDataAvailable({
|
|
|
3538
3608
|
alert: IconAlertCircle
|
|
3539
3609
|
};
|
|
3540
3610
|
const IconComponent = iconMap[iconType];
|
|
3541
|
-
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: [
|
|
3542
3612
|
icon || /* @__PURE__ */ jsx29(IconComponent, { size: 80, className: "text-primary", stroke: 1.5 }),
|
|
3543
3613
|
/* @__PURE__ */ jsx29(
|
|
3544
3614
|
Text,
|
|
@@ -3575,13 +3645,13 @@ import { forwardRef as forwardRef3 } from "react";
|
|
|
3575
3645
|
|
|
3576
3646
|
// src/components/ui/scroll-area.tsx
|
|
3577
3647
|
import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
|
|
3578
|
-
import { jsx as jsx30, jsxs as
|
|
3648
|
+
import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3579
3649
|
function ScrollArea({
|
|
3580
3650
|
className,
|
|
3581
3651
|
children,
|
|
3582
3652
|
...props
|
|
3583
3653
|
}) {
|
|
3584
|
-
return /* @__PURE__ */
|
|
3654
|
+
return /* @__PURE__ */ jsxs20(
|
|
3585
3655
|
ScrollAreaPrimitive.Root,
|
|
3586
3656
|
{
|
|
3587
3657
|
"data-slot": "scroll-area",
|
|
@@ -3630,9 +3700,9 @@ function ScrollBar({
|
|
|
3630
3700
|
}
|
|
3631
3701
|
|
|
3632
3702
|
// src/components/display-table/display-table.tsx
|
|
3633
|
-
import { Fragment as Fragment8, jsx as jsx31, jsxs as
|
|
3703
|
+
import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3634
3704
|
function renderTableData(data, opts) {
|
|
3635
|
-
return /* @__PURE__ */
|
|
3705
|
+
return /* @__PURE__ */ jsxs21(Fragment8, { children: [
|
|
3636
3706
|
data.caption != null && /* @__PURE__ */ jsx31(
|
|
3637
3707
|
DisplayTableCaption,
|
|
3638
3708
|
{
|
|
@@ -3831,7 +3901,7 @@ import { useState as useState6 } from "react";
|
|
|
3831
3901
|
|
|
3832
3902
|
// src/components/ui/alert-dialog.tsx
|
|
3833
3903
|
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
|
|
3834
|
-
import { jsx as jsx32, jsxs as
|
|
3904
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3835
3905
|
function AlertDialog({
|
|
3836
3906
|
...props
|
|
3837
3907
|
}) {
|
|
@@ -3868,7 +3938,7 @@ function AlertDialogContent({
|
|
|
3868
3938
|
size = "default",
|
|
3869
3939
|
...props
|
|
3870
3940
|
}) {
|
|
3871
|
-
return /* @__PURE__ */
|
|
3941
|
+
return /* @__PURE__ */ jsxs22(AlertDialogPortal, { children: [
|
|
3872
3942
|
/* @__PURE__ */ jsx32(AlertDialogOverlay, {}),
|
|
3873
3943
|
/* @__PURE__ */ jsx32(
|
|
3874
3944
|
AlertDialogPrimitive.Popup,
|
|
@@ -3981,7 +4051,7 @@ function AlertDialogCancel({
|
|
|
3981
4051
|
}
|
|
3982
4052
|
|
|
3983
4053
|
// src/components/entity/entity-bulk-actions.tsx
|
|
3984
|
-
import { Fragment as Fragment9, jsx as jsx33, jsxs as
|
|
4054
|
+
import { Fragment as Fragment9, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3985
4055
|
function EntityBulkActions({
|
|
3986
4056
|
selectedCount,
|
|
3987
4057
|
actions,
|
|
@@ -4008,9 +4078,9 @@ function EntityBulkActions({
|
|
|
4008
4078
|
});
|
|
4009
4079
|
}
|
|
4010
4080
|
const allActions = actions ? [...actions, ...defaultActions] : defaultActions;
|
|
4011
|
-
return /* @__PURE__ */
|
|
4012
|
-
/* @__PURE__ */
|
|
4013
|
-
/* @__PURE__ */
|
|
4081
|
+
return /* @__PURE__ */ jsxs23(Fragment9, { children: [
|
|
4082
|
+
/* @__PURE__ */ jsxs23(DropdownMenu, { children: [
|
|
4083
|
+
/* @__PURE__ */ jsxs23(
|
|
4014
4084
|
DropdownMenuTrigger,
|
|
4015
4085
|
{
|
|
4016
4086
|
render: /* @__PURE__ */ jsx33(
|
|
@@ -4028,9 +4098,9 @@ function EntityBulkActions({
|
|
|
4028
4098
|
]
|
|
4029
4099
|
}
|
|
4030
4100
|
),
|
|
4031
|
-
/* @__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: [
|
|
4032
4102
|
action.variant === "destructive" && index > 0 && /* @__PURE__ */ jsx33(DropdownMenuSeparator, {}),
|
|
4033
|
-
/* @__PURE__ */
|
|
4103
|
+
/* @__PURE__ */ jsxs23(
|
|
4034
4104
|
DropdownMenuItem,
|
|
4035
4105
|
{
|
|
4036
4106
|
onClick: action.onClick,
|
|
@@ -4043,22 +4113,22 @@ function EntityBulkActions({
|
|
|
4043
4113
|
)
|
|
4044
4114
|
] }, action.label)) }) })
|
|
4045
4115
|
] }),
|
|
4046
|
-
/* @__PURE__ */ jsx33(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */
|
|
4047
|
-
/* @__PURE__ */
|
|
4048
|
-
/* @__PURE__ */
|
|
4116
|
+
/* @__PURE__ */ jsx33(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs23(AlertDialogContent, { children: [
|
|
4117
|
+
/* @__PURE__ */ jsxs23(AlertDialogHeader, { children: [
|
|
4118
|
+
/* @__PURE__ */ jsxs23(AlertDialogTitle, { children: [
|
|
4049
4119
|
"Delete ",
|
|
4050
4120
|
selectedCount,
|
|
4051
4121
|
" ",
|
|
4052
4122
|
itemName,
|
|
4053
4123
|
"(s)?"
|
|
4054
4124
|
] }),
|
|
4055
|
-
/* @__PURE__ */
|
|
4125
|
+
/* @__PURE__ */ jsxs23(AlertDialogDescription, { children: [
|
|
4056
4126
|
"This will permanently delete the selected ",
|
|
4057
4127
|
itemName,
|
|
4058
4128
|
"(s). This action cannot be undone."
|
|
4059
4129
|
] })
|
|
4060
4130
|
] }),
|
|
4061
|
-
/* @__PURE__ */
|
|
4131
|
+
/* @__PURE__ */ jsxs23(AlertDialogFooter, { children: [
|
|
4062
4132
|
/* @__PURE__ */ jsx33(AlertDialogCancel, { children: "Cancel" }),
|
|
4063
4133
|
/* @__PURE__ */ jsx33(
|
|
4064
4134
|
AlertDialogAction,
|
|
@@ -4078,7 +4148,7 @@ function EntityBulkActions({
|
|
|
4078
4148
|
|
|
4079
4149
|
// src/components/entity/entity-delete-confirm-button.tsx
|
|
4080
4150
|
import { IconTrash as IconTrash2 } from "@tabler/icons-react";
|
|
4081
|
-
import { jsx as jsx34, jsxs as
|
|
4151
|
+
import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4082
4152
|
var defaultTriggerClassName = "size-8 opacity-0 transition-opacity group-hover:opacity-100 text-destructive hover:text-destructive";
|
|
4083
4153
|
function DeleteConfirmButton({
|
|
4084
4154
|
entityName,
|
|
@@ -4101,14 +4171,14 @@ function DeleteConfirmButton({
|
|
|
4101
4171
|
children: /* @__PURE__ */ jsx34(IconTrash2, { className: "size-4" })
|
|
4102
4172
|
}
|
|
4103
4173
|
);
|
|
4104
|
-
return /* @__PURE__ */
|
|
4174
|
+
return /* @__PURE__ */ jsxs24(AlertDialog, { children: [
|
|
4105
4175
|
/* @__PURE__ */ jsx34(AlertDialogTrigger, { render: trigger ?? defaultTrigger }),
|
|
4106
|
-
/* @__PURE__ */
|
|
4107
|
-
/* @__PURE__ */
|
|
4176
|
+
/* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
|
|
4177
|
+
/* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
|
|
4108
4178
|
/* @__PURE__ */ jsx34(AlertDialogTitle, { children: resolvedTitle }),
|
|
4109
4179
|
/* @__PURE__ */ jsx34(AlertDialogDescription, { children: resolvedDescription })
|
|
4110
4180
|
] }),
|
|
4111
|
-
/* @__PURE__ */
|
|
4181
|
+
/* @__PURE__ */ jsxs24(AlertDialogFooter, { children: [
|
|
4112
4182
|
/* @__PURE__ */ jsx34(AlertDialogCancel, { children: cancelLabel }),
|
|
4113
4183
|
/* @__PURE__ */ jsx34(AlertDialogAction, { variant: "destructive", onClick: onConfirm, children: confirmLabel })
|
|
4114
4184
|
] })
|
|
@@ -4121,7 +4191,7 @@ import { useMesob as useMesob5 } from "@mesob/ui/providers";
|
|
|
4121
4191
|
import { IconChevronDown as IconChevronDown4, IconMenu2 as IconMenu22 } from "@tabler/icons-react";
|
|
4122
4192
|
import {
|
|
4123
4193
|
cloneElement,
|
|
4124
|
-
isValidElement as
|
|
4194
|
+
isValidElement as isValidElement3,
|
|
4125
4195
|
useLayoutEffect,
|
|
4126
4196
|
useMemo as useMemo3,
|
|
4127
4197
|
useRef as useRef3,
|
|
@@ -4130,13 +4200,13 @@ import {
|
|
|
4130
4200
|
|
|
4131
4201
|
// src/components/layout/page/page-go-back.tsx
|
|
4132
4202
|
import { IconArrowLeft } from "@tabler/icons-react";
|
|
4133
|
-
import { jsx as jsx35, jsxs as
|
|
4203
|
+
import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4134
4204
|
function PageGoBack({
|
|
4135
4205
|
onBack,
|
|
4136
4206
|
label = "Go back",
|
|
4137
4207
|
children
|
|
4138
4208
|
}) {
|
|
4139
|
-
return /* @__PURE__ */ jsx35(TooltipProvider, { children: /* @__PURE__ */
|
|
4209
|
+
return /* @__PURE__ */ jsx35(TooltipProvider, { children: /* @__PURE__ */ jsxs25(Tooltip, { children: [
|
|
4140
4210
|
/* @__PURE__ */ jsx35(
|
|
4141
4211
|
TooltipTrigger,
|
|
4142
4212
|
{
|
|
@@ -4151,7 +4221,7 @@ function PageGoBack({
|
|
|
4151
4221
|
// src/components/ui/select.tsx
|
|
4152
4222
|
import { Select as SelectPrimitive } from "@base-ui/react/select";
|
|
4153
4223
|
import { IconCheck as IconCheck2, IconChevronDown as IconChevronDown3, IconChevronUp } from "@tabler/icons-react";
|
|
4154
|
-
import { jsx as jsx36, jsxs as
|
|
4224
|
+
import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4155
4225
|
var Select = SelectPrimitive.Root;
|
|
4156
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";
|
|
4157
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";
|
|
@@ -4182,7 +4252,7 @@ function SelectTrigger({
|
|
|
4182
4252
|
children,
|
|
4183
4253
|
...props
|
|
4184
4254
|
}) {
|
|
4185
|
-
return /* @__PURE__ */
|
|
4255
|
+
return /* @__PURE__ */ jsxs26(
|
|
4186
4256
|
SelectPrimitive.Trigger,
|
|
4187
4257
|
{
|
|
4188
4258
|
"data-slot": "select-trigger",
|
|
@@ -4215,7 +4285,7 @@ function SelectContent({
|
|
|
4215
4285
|
alignOffset,
|
|
4216
4286
|
alignItemWithTrigger,
|
|
4217
4287
|
className: "isolate z-50",
|
|
4218
|
-
children: /* @__PURE__ */
|
|
4288
|
+
children: /* @__PURE__ */ jsxs26(
|
|
4219
4289
|
SelectPrimitive.Popup,
|
|
4220
4290
|
{
|
|
4221
4291
|
"data-slot": "select-content",
|
|
@@ -4255,7 +4325,7 @@ function SelectItem({
|
|
|
4255
4325
|
children,
|
|
4256
4326
|
...props
|
|
4257
4327
|
}) {
|
|
4258
|
-
return /* @__PURE__ */
|
|
4328
|
+
return /* @__PURE__ */ jsxs26(
|
|
4259
4329
|
SelectPrimitive.Item,
|
|
4260
4330
|
{
|
|
4261
4331
|
"data-slot": "select-item",
|
|
@@ -4317,7 +4387,7 @@ function SelectScrollDownButton({
|
|
|
4317
4387
|
}
|
|
4318
4388
|
|
|
4319
4389
|
// src/components/entity/entity-detail-header.tsx
|
|
4320
|
-
import { jsx as jsx37, jsxs as
|
|
4390
|
+
import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4321
4391
|
function EntityDetailHeader({
|
|
4322
4392
|
title,
|
|
4323
4393
|
icon,
|
|
@@ -4444,7 +4514,7 @@ function EntityDetailHeader({
|
|
|
4444
4514
|
};
|
|
4445
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;
|
|
4446
4516
|
if (tab.href && LinkComponent) {
|
|
4447
|
-
return /* @__PURE__ */
|
|
4517
|
+
return /* @__PURE__ */ jsxs27(
|
|
4448
4518
|
LinkComponent,
|
|
4449
4519
|
{
|
|
4450
4520
|
href: tab.href,
|
|
@@ -4460,7 +4530,7 @@ function EntityDetailHeader({
|
|
|
4460
4530
|
tab.value
|
|
4461
4531
|
);
|
|
4462
4532
|
}
|
|
4463
|
-
return /* @__PURE__ */
|
|
4533
|
+
return /* @__PURE__ */ jsxs27(
|
|
4464
4534
|
"button",
|
|
4465
4535
|
{
|
|
4466
4536
|
type: "button",
|
|
@@ -4505,12 +4575,12 @@ function EntityDetailHeader({
|
|
|
4505
4575
|
if (loading) {
|
|
4506
4576
|
return /* @__PURE__ */ jsx37("div", { className: cn("flex flex-col gap-4", className), children: /* @__PURE__ */ jsx37(Skeleton, { className: "h-24 w-full rounded-xl" }) });
|
|
4507
4577
|
}
|
|
4508
|
-
return /* @__PURE__ */
|
|
4509
|
-
/* @__PURE__ */
|
|
4510
|
-
/* @__PURE__ */
|
|
4511
|
-
/* @__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: [
|
|
4512
4582
|
resolvedBackButton,
|
|
4513
|
-
icon && (
|
|
4583
|
+
icon && (isValidElement3(icon) ? cloneElement(
|
|
4514
4584
|
icon,
|
|
4515
4585
|
{
|
|
4516
4586
|
className: cn(
|
|
@@ -4523,14 +4593,14 @@ function EntityDetailHeader({
|
|
|
4523
4593
|
] }),
|
|
4524
4594
|
actions && /* @__PURE__ */ jsx37("div", { className: "flex items-center gap-2", children: actions })
|
|
4525
4595
|
] }),
|
|
4526
|
-
/* @__PURE__ */
|
|
4527
|
-
/* @__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(
|
|
4528
4598
|
Select,
|
|
4529
4599
|
{
|
|
4530
4600
|
value: activeTab,
|
|
4531
4601
|
onValueChange: (v) => handleTabChange(v),
|
|
4532
4602
|
children: [
|
|
4533
|
-
/* @__PURE__ */
|
|
4603
|
+
/* @__PURE__ */ jsxs27(SelectTrigger, { className: "h-9 w-full gap-2 [&>svg:first-child]:shrink-0", children: [
|
|
4534
4604
|
/* @__PURE__ */ jsx37(IconMenu22, { className: "size-4 text-muted-foreground" }),
|
|
4535
4605
|
/* @__PURE__ */ jsx37(SelectValue, {})
|
|
4536
4606
|
] }),
|
|
@@ -4538,7 +4608,7 @@ function EntityDetailHeader({
|
|
|
4538
4608
|
]
|
|
4539
4609
|
}
|
|
4540
4610
|
) }),
|
|
4541
|
-
/* @__PURE__ */
|
|
4611
|
+
/* @__PURE__ */ jsxs27(
|
|
4542
4612
|
"div",
|
|
4543
4613
|
{
|
|
4544
4614
|
ref: tabsListRef,
|
|
@@ -4550,8 +4620,8 @@ function EntityDetailHeader({
|
|
|
4550
4620
|
);
|
|
4551
4621
|
return renderTab(tab, originalIndex);
|
|
4552
4622
|
}),
|
|
4553
|
-
overflowTabs.length > 0 && /* @__PURE__ */
|
|
4554
|
-
/* @__PURE__ */
|
|
4623
|
+
overflowTabs.length > 0 && /* @__PURE__ */ jsxs27(DropdownMenu, { children: [
|
|
4624
|
+
/* @__PURE__ */ jsxs27(
|
|
4555
4625
|
DropdownMenuTrigger,
|
|
4556
4626
|
{
|
|
4557
4627
|
ref: dropdownTriggerRef,
|
|
@@ -4582,7 +4652,7 @@ function EntityDetailHeader({
|
|
|
4582
4652
|
|
|
4583
4653
|
// src/components/entity/entity-drawer.tsx
|
|
4584
4654
|
import { useState as useState8 } from "react";
|
|
4585
|
-
import { Fragment as Fragment10, jsx as jsx38, jsxs as
|
|
4655
|
+
import { Fragment as Fragment10, jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
4586
4656
|
var sizeClasses2 = {
|
|
4587
4657
|
sm: "w-full min-w-0 sm:!max-w-[26rem]",
|
|
4588
4658
|
md: "w-full min-w-0 sm:!max-w-[32rem]",
|
|
@@ -4610,7 +4680,7 @@ function EntityDrawer({
|
|
|
4610
4680
|
setShowConfirm(false);
|
|
4611
4681
|
onClose();
|
|
4612
4682
|
};
|
|
4613
|
-
return /* @__PURE__ */
|
|
4683
|
+
return /* @__PURE__ */ jsxs28(Fragment10, { children: [
|
|
4614
4684
|
/* @__PURE__ */ jsx38(
|
|
4615
4685
|
Sheet,
|
|
4616
4686
|
{
|
|
@@ -4625,7 +4695,7 @@ function EntityDrawer({
|
|
|
4625
4695
|
}
|
|
4626
4696
|
}
|
|
4627
4697
|
},
|
|
4628
|
-
children: /* @__PURE__ */
|
|
4698
|
+
children: /* @__PURE__ */ jsxs28(
|
|
4629
4699
|
SheetContent,
|
|
4630
4700
|
{
|
|
4631
4701
|
className: `${sizeClasses2[size]} flex min-h-0 flex-col overflow-hidden p-0`,
|
|
@@ -4638,12 +4708,12 @@ function EntityDrawer({
|
|
|
4638
4708
|
)
|
|
4639
4709
|
}
|
|
4640
4710
|
),
|
|
4641
|
-
/* @__PURE__ */ jsx38(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */
|
|
4642
|
-
/* @__PURE__ */
|
|
4711
|
+
/* @__PURE__ */ jsx38(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */ jsxs28(AlertDialogContent, { children: [
|
|
4712
|
+
/* @__PURE__ */ jsxs28(AlertDialogHeader, { children: [
|
|
4643
4713
|
/* @__PURE__ */ jsx38(AlertDialogTitle, { children: "Discard changes?" }),
|
|
4644
4714
|
/* @__PURE__ */ jsx38(AlertDialogDescription, { children: "You have unsaved changes. Are you sure you want to discard them?" })
|
|
4645
4715
|
] }),
|
|
4646
|
-
/* @__PURE__ */
|
|
4716
|
+
/* @__PURE__ */ jsxs28(AlertDialogFooter, { children: [
|
|
4647
4717
|
/* @__PURE__ */ jsx38(AlertDialogCancel, { children: "Cancel" }),
|
|
4648
4718
|
/* @__PURE__ */ jsx38(
|
|
4649
4719
|
AlertDialogAction,
|
|
@@ -4661,7 +4731,7 @@ function EntityDrawer({
|
|
|
4661
4731
|
// src/components/entity/entity-drawer-trigger.tsx
|
|
4662
4732
|
import { IconChevronRight as IconChevronRight3, IconPencil, IconPlus } from "@tabler/icons-react";
|
|
4663
4733
|
import { useState as useState9 } from "react";
|
|
4664
|
-
import { Fragment as Fragment11, jsx as jsx39, jsxs as
|
|
4734
|
+
import { Fragment as Fragment11, jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
4665
4735
|
function EntityDrawerTrigger({
|
|
4666
4736
|
mode,
|
|
4667
4737
|
entity,
|
|
@@ -4691,7 +4761,7 @@ function EntityDrawerTrigger({
|
|
|
4691
4761
|
}
|
|
4692
4762
|
};
|
|
4693
4763
|
const buttonLabel = label || (mode === "new" ? `New ${entity}` : `Edit ${entity}`);
|
|
4694
|
-
return /* @__PURE__ */
|
|
4764
|
+
return /* @__PURE__ */ jsxs29(Fragment11, { children: [
|
|
4695
4765
|
mode === "edit" && variant === "icon" && /* @__PURE__ */ jsx39(
|
|
4696
4766
|
Button,
|
|
4697
4767
|
{
|
|
@@ -4814,7 +4884,7 @@ function EmptyContent({ className, ...props }) {
|
|
|
4814
4884
|
}
|
|
4815
4885
|
|
|
4816
4886
|
// src/components/entity/entity-empty-state.tsx
|
|
4817
|
-
import { jsx as jsx41, jsxs as
|
|
4887
|
+
import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
4818
4888
|
function EntityEmptyState({
|
|
4819
4889
|
icon: Icon = IconPackage,
|
|
4820
4890
|
title,
|
|
@@ -4828,8 +4898,8 @@ function EntityEmptyState({
|
|
|
4828
4898
|
const defaultTitle = `No ${entityName}s yet`;
|
|
4829
4899
|
const defaultDescription = `Get started by creating your first ${entityName}.`;
|
|
4830
4900
|
const defaultActionLabel = `Create ${entityName}`;
|
|
4831
|
-
return /* @__PURE__ */
|
|
4832
|
-
/* @__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: [
|
|
4833
4903
|
/* @__PURE__ */ jsx41(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx41(Icon, { className: "size-5" }) }),
|
|
4834
4904
|
/* @__PURE__ */ jsx41(EmptyTitle, { children: title ?? defaultTitle }),
|
|
4835
4905
|
/* @__PURE__ */ jsx41(EmptyDescription, { children: description ?? defaultDescription })
|
|
@@ -4848,7 +4918,7 @@ function EntityEmptyState({
|
|
|
4848
4918
|
// src/components/entity/entity-filter.tsx
|
|
4849
4919
|
import { IconFilter } from "@tabler/icons-react";
|
|
4850
4920
|
import { parseAsInteger, parseAsString, useQueryState } from "nuqs";
|
|
4851
|
-
import { jsx as jsx42, jsxs as
|
|
4921
|
+
import { jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4852
4922
|
function EntityFilter({
|
|
4853
4923
|
options,
|
|
4854
4924
|
placeholder = "Filter",
|
|
@@ -4873,15 +4943,15 @@ function EntityFilter({
|
|
|
4873
4943
|
const validOptions = options.filter((opt) => opt.value !== "");
|
|
4874
4944
|
const filterLabel = displayValue === "" ? allLabel : options.find((o) => o.value === displayValue)?.label ?? placeholder;
|
|
4875
4945
|
const showPlaceholder = displayValue === void 0;
|
|
4876
|
-
return /* @__PURE__ */
|
|
4946
|
+
return /* @__PURE__ */ jsxs31("div", { className: cn("flex w-full items-center gap-2", className), children: [
|
|
4877
4947
|
label && /* @__PURE__ */ jsx42("span", { className: "shrink-0 text-sm text-muted-foreground", children: label }),
|
|
4878
|
-
/* @__PURE__ */ jsx42("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */
|
|
4948
|
+
/* @__PURE__ */ jsx42("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs31(
|
|
4879
4949
|
Select,
|
|
4880
4950
|
{
|
|
4881
4951
|
value: displayValue,
|
|
4882
4952
|
onValueChange: (v) => handleChange(v),
|
|
4883
4953
|
children: [
|
|
4884
|
-
/* @__PURE__ */
|
|
4954
|
+
/* @__PURE__ */ jsxs31(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
|
|
4885
4955
|
/* @__PURE__ */ jsx42(IconFilter, { className: "size-4" }),
|
|
4886
4956
|
/* @__PURE__ */ jsx42(
|
|
4887
4957
|
"span",
|
|
@@ -4894,7 +4964,7 @@ function EntityFilter({
|
|
|
4894
4964
|
}
|
|
4895
4965
|
)
|
|
4896
4966
|
] }),
|
|
4897
|
-
/* @__PURE__ */
|
|
4967
|
+
/* @__PURE__ */ jsxs31(SelectContent, { children: [
|
|
4898
4968
|
hasAllOption && /* @__PURE__ */ jsx42(SelectItem, { value: "", children: allLabel }, ""),
|
|
4899
4969
|
validOptions.map((option) => /* @__PURE__ */ jsx42(SelectItem, { value: option.value, children: option.label }, option.value))
|
|
4900
4970
|
] })
|
|
@@ -4906,7 +4976,7 @@ function EntityFilter({
|
|
|
4906
4976
|
|
|
4907
4977
|
// src/components/entity/entity-filter-state.tsx
|
|
4908
4978
|
import { IconFilter as IconFilter2 } from "@tabler/icons-react";
|
|
4909
|
-
import { jsx as jsx43, jsxs as
|
|
4979
|
+
import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
4910
4980
|
function EntityFilterState({
|
|
4911
4981
|
value,
|
|
4912
4982
|
onValueChange,
|
|
@@ -4918,13 +4988,13 @@ function EntityFilterState({
|
|
|
4918
4988
|
const allLabel = options.find((o) => o.value === "")?.label ?? "All";
|
|
4919
4989
|
const displayValue = value === "" || value === "__all__" ? "" : value;
|
|
4920
4990
|
const label = displayValue === "" ? allLabel : options.find((o) => o.value === displayValue)?.label ?? placeholder;
|
|
4921
|
-
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(
|
|
4922
4992
|
Select,
|
|
4923
4993
|
{
|
|
4924
4994
|
value: displayValue,
|
|
4925
4995
|
onValueChange: (v) => onValueChange(v === "" ? "" : v),
|
|
4926
4996
|
children: [
|
|
4927
|
-
/* @__PURE__ */
|
|
4997
|
+
/* @__PURE__ */ jsxs32(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
|
|
4928
4998
|
/* @__PURE__ */ jsx43(IconFilter2, { className: "size-4" }),
|
|
4929
4999
|
/* @__PURE__ */ jsx43(
|
|
4930
5000
|
"span",
|
|
@@ -4937,7 +5007,7 @@ function EntityFilterState({
|
|
|
4937
5007
|
}
|
|
4938
5008
|
)
|
|
4939
5009
|
] }),
|
|
4940
|
-
/* @__PURE__ */
|
|
5010
|
+
/* @__PURE__ */ jsxs32(SelectContent, { children: [
|
|
4941
5011
|
hasAll && /* @__PURE__ */ jsx43(SelectItem, { value: "", children: allLabel }),
|
|
4942
5012
|
options.filter((o) => o.value !== "").map((opt) => /* @__PURE__ */ jsx43(SelectItem, { value: opt.value, children: opt.label }, opt.value))
|
|
4943
5013
|
] })
|
|
@@ -4952,7 +5022,7 @@ import {
|
|
|
4952
5022
|
IconRotateClockwise,
|
|
4953
5023
|
IconTrash as IconTrash3
|
|
4954
5024
|
} from "@tabler/icons-react";
|
|
4955
|
-
import { jsx as jsx44, jsxs as
|
|
5025
|
+
import { jsx as jsx44, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4956
5026
|
function EntityFormActions({
|
|
4957
5027
|
mode,
|
|
4958
5028
|
onSubmit,
|
|
@@ -4968,7 +5038,7 @@ function EntityFormActions({
|
|
|
4968
5038
|
}) {
|
|
4969
5039
|
const defaultSubmitLabel = mode === "new" ? "Create" : "Update";
|
|
4970
5040
|
const label = submitLabel || defaultSubmitLabel;
|
|
4971
|
-
return /* @__PURE__ */
|
|
5041
|
+
return /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
4972
5042
|
onSubmit && /* @__PURE__ */ jsx44(
|
|
4973
5043
|
Button,
|
|
4974
5044
|
{
|
|
@@ -4980,7 +5050,7 @@ function EntityFormActions({
|
|
|
4980
5050
|
children: label
|
|
4981
5051
|
}
|
|
4982
5052
|
),
|
|
4983
|
-
mode === "new" && onReset && /* @__PURE__ */
|
|
5053
|
+
mode === "new" && onReset && /* @__PURE__ */ jsxs33(
|
|
4984
5054
|
Button,
|
|
4985
5055
|
{
|
|
4986
5056
|
variant: "outline",
|
|
@@ -4993,7 +5063,7 @@ function EntityFormActions({
|
|
|
4993
5063
|
]
|
|
4994
5064
|
}
|
|
4995
5065
|
),
|
|
4996
|
-
mode === "edit" && onDelete && /* @__PURE__ */
|
|
5066
|
+
mode === "edit" && onDelete && /* @__PURE__ */ jsxs33(AlertDialog, { children: [
|
|
4997
5067
|
/* @__PURE__ */ jsx44(
|
|
4998
5068
|
AlertDialogTrigger,
|
|
4999
5069
|
{
|
|
@@ -5010,16 +5080,16 @@ function EntityFormActions({
|
|
|
5010
5080
|
children: deleteLabel
|
|
5011
5081
|
}
|
|
5012
5082
|
),
|
|
5013
|
-
/* @__PURE__ */
|
|
5014
|
-
/* @__PURE__ */
|
|
5083
|
+
/* @__PURE__ */ jsxs33(AlertDialogContent, { children: [
|
|
5084
|
+
/* @__PURE__ */ jsxs33(AlertDialogHeader, { children: [
|
|
5015
5085
|
/* @__PURE__ */ jsx44(AlertDialogTitle, { children: "Are you sure?" }),
|
|
5016
|
-
/* @__PURE__ */
|
|
5086
|
+
/* @__PURE__ */ jsxs33(AlertDialogDescription, { children: [
|
|
5017
5087
|
"This will permanently delete this ",
|
|
5018
5088
|
itemName,
|
|
5019
5089
|
". This action cannot be undone."
|
|
5020
5090
|
] })
|
|
5021
5091
|
] }),
|
|
5022
|
-
/* @__PURE__ */
|
|
5092
|
+
/* @__PURE__ */ jsxs33(AlertDialogFooter, { children: [
|
|
5023
5093
|
/* @__PURE__ */ jsx44(AlertDialogCancel, { children: "Cancel" }),
|
|
5024
5094
|
/* @__PURE__ */ jsx44(AlertDialogAction, { onClick: onDelete, variant: "destructive", children: "Delete" })
|
|
5025
5095
|
] })
|
|
@@ -5041,7 +5111,7 @@ function EntityFormActions({
|
|
|
5041
5111
|
// src/components/entity/entity-header.tsx
|
|
5042
5112
|
import { IconChevronDown as IconChevronDown5, IconChevronUp as IconChevronUp2 } from "@tabler/icons-react";
|
|
5043
5113
|
import { useState as useState10 } from "react";
|
|
5044
|
-
import { jsx as jsx45, jsxs as
|
|
5114
|
+
import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5045
5115
|
function EntityHeader({
|
|
5046
5116
|
title,
|
|
5047
5117
|
icon,
|
|
@@ -5055,13 +5125,13 @@ function EntityHeader({
|
|
|
5055
5125
|
const [toolbarOpen, setToolbarOpen] = useState10(false);
|
|
5056
5126
|
const hasToolbar = [search, filter, sort, view].some(Boolean);
|
|
5057
5127
|
const hasTitleRow = title || icon || actions;
|
|
5058
|
-
const content = /* @__PURE__ */
|
|
5059
|
-
hasTitleRow && /* @__PURE__ */
|
|
5060
|
-
/* @__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: [
|
|
5061
5131
|
icon,
|
|
5062
5132
|
/* @__PURE__ */ jsx45("span", { className: "text-lg font-semibold", children: title })
|
|
5063
5133
|
] }),
|
|
5064
|
-
/* @__PURE__ */
|
|
5134
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-3", children: [
|
|
5065
5135
|
actions,
|
|
5066
5136
|
hasToolbar && /* @__PURE__ */ jsx45(
|
|
5067
5137
|
Button,
|
|
@@ -5077,7 +5147,7 @@ function EntityHeader({
|
|
|
5077
5147
|
)
|
|
5078
5148
|
] })
|
|
5079
5149
|
] }),
|
|
5080
|
-
hasToolbar && /* @__PURE__ */
|
|
5150
|
+
hasToolbar && /* @__PURE__ */ jsxs34(
|
|
5081
5151
|
"div",
|
|
5082
5152
|
{
|
|
5083
5153
|
className: cn(
|
|
@@ -5087,7 +5157,7 @@ function EntityHeader({
|
|
|
5087
5157
|
),
|
|
5088
5158
|
children: [
|
|
5089
5159
|
/* @__PURE__ */ jsx45("div", { className: "w-full min-w-0 flex-1 md:min-w-[12rem]", children: search }),
|
|
5090
|
-
/* @__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: [
|
|
5091
5161
|
filter,
|
|
5092
5162
|
sort,
|
|
5093
5163
|
view
|
|
@@ -5189,7 +5259,7 @@ function TableCaption({
|
|
|
5189
5259
|
}
|
|
5190
5260
|
|
|
5191
5261
|
// src/components/entity/entity-loading-state.tsx
|
|
5192
|
-
import { jsx as jsx47, jsxs as
|
|
5262
|
+
import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
5193
5263
|
function EntityLoadingState({
|
|
5194
5264
|
view,
|
|
5195
5265
|
rowCount = 5,
|
|
@@ -5213,7 +5283,7 @@ function EntityLoadingState({
|
|
|
5213
5283
|
return Array.from({ length: cardCount }, makeKey);
|
|
5214
5284
|
}, [cardCount, makeKey]);
|
|
5215
5285
|
if (view === "table") {
|
|
5216
|
-
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: [
|
|
5217
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])) }) }),
|
|
5218
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])) })
|
|
5219
5289
|
] }) });
|
|
@@ -5225,12 +5295,12 @@ function EntityLoadingState({
|
|
|
5225
5295
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",
|
|
5226
5296
|
className
|
|
5227
5297
|
),
|
|
5228
|
-
children: Array.from({ length: cardCount }).map((_, i) => /* @__PURE__ */
|
|
5229
|
-
/* @__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: [
|
|
5230
5300
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-4 w-4 rounded-full" }),
|
|
5231
5301
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-32" })
|
|
5232
5302
|
] }),
|
|
5233
|
-
/* @__PURE__ */
|
|
5303
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex gap-2", children: [
|
|
5234
5304
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-16" }),
|
|
5235
5305
|
/* @__PURE__ */ jsx47(Skeleton, { className: "h-5 w-16" })
|
|
5236
5306
|
] }),
|
|
@@ -5247,7 +5317,7 @@ import { IconSearch as IconSearch3, IconX as IconX3 } from "@tabler/icons-react"
|
|
|
5247
5317
|
import { parseAsInteger as parseAsInteger2, parseAsString as parseAsString2, useQueryState as useQueryState2 } from "nuqs";
|
|
5248
5318
|
import { useRef as useRef4 } from "react";
|
|
5249
5319
|
import { useDebouncedCallback } from "use-debounce";
|
|
5250
|
-
import { jsx as jsx48, jsxs as
|
|
5320
|
+
import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5251
5321
|
function EntitySearch({
|
|
5252
5322
|
paramKey = "search",
|
|
5253
5323
|
placeholder = "Search...",
|
|
@@ -5270,7 +5340,7 @@ function EntitySearch({
|
|
|
5270
5340
|
ref.current.value = "";
|
|
5271
5341
|
}
|
|
5272
5342
|
};
|
|
5273
|
-
return /* @__PURE__ */
|
|
5343
|
+
return /* @__PURE__ */ jsxs36("div", { className: cn("relative w-full min-w-0", className), children: [
|
|
5274
5344
|
/* @__PURE__ */ jsx48(IconSearch3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
|
|
5275
5345
|
/* @__PURE__ */ jsx48(
|
|
5276
5346
|
Input,
|
|
@@ -5298,7 +5368,7 @@ function EntitySearch({
|
|
|
5298
5368
|
import { IconSearch as IconSearch4, IconX as IconX4 } from "@tabler/icons-react";
|
|
5299
5369
|
import { useRef as useRef5 } from "react";
|
|
5300
5370
|
import { useDebouncedCallback as useDebouncedCallback2 } from "use-debounce";
|
|
5301
|
-
import { jsx as jsx49, jsxs as
|
|
5371
|
+
import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5302
5372
|
function EntitySearchState({
|
|
5303
5373
|
value,
|
|
5304
5374
|
onValueChange,
|
|
@@ -5316,7 +5386,7 @@ function EntitySearchState({
|
|
|
5316
5386
|
ref.current.value = "";
|
|
5317
5387
|
}
|
|
5318
5388
|
};
|
|
5319
|
-
return /* @__PURE__ */
|
|
5389
|
+
return /* @__PURE__ */ jsxs37("div", { className: cn("relative w-full min-w-0", className), children: [
|
|
5320
5390
|
/* @__PURE__ */ jsx49(IconSearch4, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
|
|
5321
5391
|
/* @__PURE__ */ jsx49(
|
|
5322
5392
|
Input,
|
|
@@ -5342,7 +5412,7 @@ function EntitySearchState({
|
|
|
5342
5412
|
|
|
5343
5413
|
// src/components/layout/section/section.tsx
|
|
5344
5414
|
import { useState as useState11 } from "react";
|
|
5345
|
-
import { jsx as jsx50, jsxs as
|
|
5415
|
+
import { jsx as jsx50, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5346
5416
|
function Section({
|
|
5347
5417
|
title,
|
|
5348
5418
|
children,
|
|
@@ -5361,14 +5431,14 @@ function Section({
|
|
|
5361
5431
|
setOpen(next);
|
|
5362
5432
|
onOpenChange?.(next);
|
|
5363
5433
|
};
|
|
5364
|
-
return /* @__PURE__ */
|
|
5434
|
+
return /* @__PURE__ */ jsxs38(
|
|
5365
5435
|
Card,
|
|
5366
5436
|
{
|
|
5367
5437
|
className: cn("gap-0 p-0", className),
|
|
5368
5438
|
"data-slot": "section",
|
|
5369
5439
|
"data-state": open ? "open" : "closed",
|
|
5370
5440
|
children: [
|
|
5371
|
-
/* @__PURE__ */
|
|
5441
|
+
/* @__PURE__ */ jsxs38(
|
|
5372
5442
|
"div",
|
|
5373
5443
|
{
|
|
5374
5444
|
className: cn(
|
|
@@ -5378,7 +5448,7 @@ function Section({
|
|
|
5378
5448
|
),
|
|
5379
5449
|
children: [
|
|
5380
5450
|
/* @__PURE__ */ jsx50("div", { className: "text-lg font-semibold", children: title }),
|
|
5381
|
-
/* @__PURE__ */
|
|
5451
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2", children: [
|
|
5382
5452
|
open && actions,
|
|
5383
5453
|
/* @__PURE__ */ jsx50(
|
|
5384
5454
|
Button,
|
|
@@ -5395,7 +5465,7 @@ function Section({
|
|
|
5395
5465
|
]
|
|
5396
5466
|
}
|
|
5397
5467
|
),
|
|
5398
|
-
open ? /* @__PURE__ */
|
|
5468
|
+
open ? /* @__PURE__ */ jsxs38("div", { "data-slot": "section-content", children: [
|
|
5399
5469
|
/* @__PURE__ */ jsx50("div", { className: cn("p-4", contentClassName), children: lazy ? open && children : children }),
|
|
5400
5470
|
footer ? /* @__PURE__ */ jsx50(
|
|
5401
5471
|
"div",
|
|
@@ -5416,7 +5486,7 @@ import {
|
|
|
5416
5486
|
IconSortAscendingLetters,
|
|
5417
5487
|
IconSortDescendingLetters
|
|
5418
5488
|
} from "@tabler/icons-react";
|
|
5419
|
-
import { jsx as jsx51, jsxs as
|
|
5489
|
+
import { jsx as jsx51, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5420
5490
|
function EntitySortState({
|
|
5421
5491
|
sort,
|
|
5422
5492
|
order,
|
|
@@ -5426,8 +5496,8 @@ function EntitySortState({
|
|
|
5426
5496
|
className
|
|
5427
5497
|
}) {
|
|
5428
5498
|
const sortLabel = options.find((o) => o.value === sort)?.label;
|
|
5429
|
-
return /* @__PURE__ */
|
|
5430
|
-
/* @__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: [
|
|
5431
5501
|
/* @__PURE__ */ jsx51(SelectTrigger, { className: "h-9 w-full min-w-[150px] rounded-r-none border-r-0", children: /* @__PURE__ */ jsx51(
|
|
5432
5502
|
"span",
|
|
5433
5503
|
{
|
|
@@ -5575,7 +5645,7 @@ function EntityViewToggleState({
|
|
|
5575
5645
|
}
|
|
5576
5646
|
|
|
5577
5647
|
// src/components/entity/entity-section.tsx
|
|
5578
|
-
import { jsx as jsx54, jsxs as
|
|
5648
|
+
import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5579
5649
|
function EntitySection({
|
|
5580
5650
|
title,
|
|
5581
5651
|
icon,
|
|
@@ -5621,7 +5691,7 @@ function EntitySection({
|
|
|
5621
5691
|
const filterOpts = config.filterOptions ?? filterOptions;
|
|
5622
5692
|
const sortOpts = config.sortOptions ?? sortOptions;
|
|
5623
5693
|
const viewOpts = config.views ?? views;
|
|
5624
|
-
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: [
|
|
5625
5695
|
showToolbar && /* @__PURE__ */ jsx54(
|
|
5626
5696
|
EntityHeader,
|
|
5627
5697
|
{
|
|
@@ -5728,7 +5798,7 @@ function Checkbox({
|
|
|
5728
5798
|
// src/components/ui/chip.tsx
|
|
5729
5799
|
import { IconX as IconX5 } from "@tabler/icons-react";
|
|
5730
5800
|
import { cva as cva8 } from "class-variance-authority";
|
|
5731
|
-
import { jsx as jsx56, jsxs as
|
|
5801
|
+
import { jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5732
5802
|
var chipVariants = cva8(
|
|
5733
5803
|
"cn-chip inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium transition-colors border",
|
|
5734
5804
|
{
|
|
@@ -5753,7 +5823,7 @@ function Chip({
|
|
|
5753
5823
|
children,
|
|
5754
5824
|
...props
|
|
5755
5825
|
}) {
|
|
5756
|
-
return /* @__PURE__ */
|
|
5826
|
+
return /* @__PURE__ */ jsxs41(
|
|
5757
5827
|
"div",
|
|
5758
5828
|
{
|
|
5759
5829
|
"data-slot": "chip",
|
|
@@ -5784,7 +5854,7 @@ import {
|
|
|
5784
5854
|
IconChevronsRight
|
|
5785
5855
|
} from "@tabler/icons-react";
|
|
5786
5856
|
import { useTranslations } from "next-intl";
|
|
5787
|
-
import { jsx as jsx57, jsxs as
|
|
5857
|
+
import { jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5788
5858
|
function addRange(pages, start, end) {
|
|
5789
5859
|
for (let i = start; i <= end; i++) {
|
|
5790
5860
|
pages.push(i);
|
|
@@ -5838,16 +5908,16 @@ function DataTablePagination({
|
|
|
5838
5908
|
const hasSelection = selectedRows > 0;
|
|
5839
5909
|
const rowText = hasSelection ? `${selectedRows} ${t("of")} ${totalRows} ${rowLabel} ${t("selected")}` : `${totalRows} ${rowLabel} ${t("total")}`;
|
|
5840
5910
|
const pageText = `${t("page")} ${pageIndex + 1} ${t("of")} ${pageCount || 1}`;
|
|
5841
|
-
return /* @__PURE__ */
|
|
5842
|
-
/* @__PURE__ */
|
|
5843
|
-
/* @__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: [
|
|
5844
5914
|
rowText,
|
|
5845
5915
|
/* @__PURE__ */ jsx57("span", { className: "mx-2", children: "\xB7" }),
|
|
5846
5916
|
pageText
|
|
5847
5917
|
] }) }),
|
|
5848
|
-
/* @__PURE__ */
|
|
5918
|
+
/* @__PURE__ */ jsxs42("div", { className: "cn-data-table-pagination-size flex items-center", children: [
|
|
5849
5919
|
/* @__PURE__ */ jsx57("span", { className: "cn-data-table-pagination-size-label font-medium whitespace-nowrap", children: t("rowsPerPage") }),
|
|
5850
|
-
/* @__PURE__ */
|
|
5920
|
+
/* @__PURE__ */ jsxs42(
|
|
5851
5921
|
Select,
|
|
5852
5922
|
{
|
|
5853
5923
|
value: `${pageSize}`,
|
|
@@ -5866,13 +5936,13 @@ function DataTablePagination({
|
|
|
5866
5936
|
)
|
|
5867
5937
|
] })
|
|
5868
5938
|
] }),
|
|
5869
|
-
/* @__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(
|
|
5870
5940
|
"nav",
|
|
5871
5941
|
{
|
|
5872
5942
|
"aria-label": "Pagination",
|
|
5873
5943
|
className: "cn-data-table-pagination-nav flex items-center gap-1",
|
|
5874
5944
|
children: [
|
|
5875
|
-
/* @__PURE__ */
|
|
5945
|
+
/* @__PURE__ */ jsxs42(
|
|
5876
5946
|
Button,
|
|
5877
5947
|
{
|
|
5878
5948
|
variant: "outline",
|
|
@@ -5887,7 +5957,7 @@ function DataTablePagination({
|
|
|
5887
5957
|
]
|
|
5888
5958
|
}
|
|
5889
5959
|
),
|
|
5890
|
-
/* @__PURE__ */
|
|
5960
|
+
/* @__PURE__ */ jsxs42(
|
|
5891
5961
|
Button,
|
|
5892
5962
|
{
|
|
5893
5963
|
variant: "outline",
|
|
@@ -5932,7 +6002,7 @@ function DataTablePagination({
|
|
|
5932
6002
|
pageNum
|
|
5933
6003
|
);
|
|
5934
6004
|
}),
|
|
5935
|
-
/* @__PURE__ */
|
|
6005
|
+
/* @__PURE__ */ jsxs42(
|
|
5936
6006
|
Button,
|
|
5937
6007
|
{
|
|
5938
6008
|
variant: "outline",
|
|
@@ -5947,7 +6017,7 @@ function DataTablePagination({
|
|
|
5947
6017
|
]
|
|
5948
6018
|
}
|
|
5949
6019
|
),
|
|
5950
|
-
/* @__PURE__ */
|
|
6020
|
+
/* @__PURE__ */ jsxs42(
|
|
5951
6021
|
Button,
|
|
5952
6022
|
{
|
|
5953
6023
|
variant: "outline",
|
|
@@ -6054,7 +6124,7 @@ function RadioGroupItem({
|
|
|
6054
6124
|
}
|
|
6055
6125
|
|
|
6056
6126
|
// src/components/entity/entity-selector-modal.tsx
|
|
6057
|
-
import { jsx as jsx59, jsxs as
|
|
6127
|
+
import { jsx as jsx59, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6058
6128
|
var modalSizeClasses = {
|
|
6059
6129
|
sm: "sm:max-w-[28rem]",
|
|
6060
6130
|
md: "sm:max-w-[36rem]",
|
|
@@ -6071,7 +6141,7 @@ function EntitySelectorModal({
|
|
|
6071
6141
|
footer,
|
|
6072
6142
|
children
|
|
6073
6143
|
}) {
|
|
6074
|
-
return /* @__PURE__ */ jsx59(Dialog, { open, onOpenChange, children: /* @__PURE__ */
|
|
6144
|
+
return /* @__PURE__ */ jsx59(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs43(
|
|
6075
6145
|
DialogContent,
|
|
6076
6146
|
{
|
|
6077
6147
|
className: cn(
|
|
@@ -6114,7 +6184,7 @@ function useEntityPagination({
|
|
|
6114
6184
|
}
|
|
6115
6185
|
|
|
6116
6186
|
// src/components/entity/entity-selector.tsx
|
|
6117
|
-
import { Fragment as Fragment12, jsx as jsx60, jsxs as
|
|
6187
|
+
import { Fragment as Fragment12, jsx as jsx60, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6118
6188
|
function EntitySelectorFooter({
|
|
6119
6189
|
onCancel,
|
|
6120
6190
|
onSelect,
|
|
@@ -6139,9 +6209,9 @@ function EntitySelectorFooter({
|
|
|
6139
6209
|
hint = ` (${selectedCount})`;
|
|
6140
6210
|
}
|
|
6141
6211
|
}
|
|
6142
|
-
return /* @__PURE__ */
|
|
6212
|
+
return /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6143
6213
|
/* @__PURE__ */ jsx60(Button, { variant: "outline", size: "md", onClick: onCancel, children: "Cancel" }),
|
|
6144
|
-
/* @__PURE__ */
|
|
6214
|
+
/* @__PURE__ */ jsxs44(
|
|
6145
6215
|
Button,
|
|
6146
6216
|
{
|
|
6147
6217
|
variant: "default",
|
|
@@ -6301,7 +6371,7 @@ function EntitySelector({
|
|
|
6301
6371
|
}
|
|
6302
6372
|
);
|
|
6303
6373
|
} else {
|
|
6304
|
-
content = /* @__PURE__ */
|
|
6374
|
+
content = /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6305
6375
|
/* @__PURE__ */ jsx60(
|
|
6306
6376
|
EntityHeader,
|
|
6307
6377
|
{
|
|
@@ -6344,13 +6414,13 @@ function EntitySelector({
|
|
|
6344
6414
|
) : void 0
|
|
6345
6415
|
}
|
|
6346
6416
|
),
|
|
6347
|
-
state2.view === "table" || !renderCard ? /* @__PURE__ */
|
|
6348
|
-
multiple ? /* @__PURE__ */
|
|
6349
|
-
/* @__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: [
|
|
6350
6420
|
/* @__PURE__ */ jsx60(DisplayTableTh, { className: "w-[50px]" }),
|
|
6351
6421
|
columns.map((col) => /* @__PURE__ */ jsx60(DisplayTableTh, { className: col.className, children: col.header }, col.key))
|
|
6352
6422
|
] }) }),
|
|
6353
|
-
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */
|
|
6423
|
+
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */ jsxs44(
|
|
6354
6424
|
DisplayTableTr,
|
|
6355
6425
|
{
|
|
6356
6426
|
className: "group",
|
|
@@ -6380,12 +6450,12 @@ function EntitySelector({
|
|
|
6380
6450
|
handleRowSelectionChange(() => ({ [id]: true }));
|
|
6381
6451
|
}
|
|
6382
6452
|
},
|
|
6383
|
-
children: /* @__PURE__ */
|
|
6384
|
-
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */
|
|
6453
|
+
children: /* @__PURE__ */ jsxs44(DisplayTable, { withTableBorder: true, children: [
|
|
6454
|
+
/* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */ jsxs44(DisplayTableTr, { children: [
|
|
6385
6455
|
/* @__PURE__ */ jsx60(DisplayTableTh, { className: "w-[50px]" }),
|
|
6386
6456
|
columns.map((col) => /* @__PURE__ */ jsx60(DisplayTableTh, { className: col.className, children: col.header }, col.key))
|
|
6387
6457
|
] }) }),
|
|
6388
|
-
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */
|
|
6458
|
+
/* @__PURE__ */ jsx60(DisplayTableTbody, { children: items.map((item) => /* @__PURE__ */ jsxs44(
|
|
6389
6459
|
DisplayTableTr,
|
|
6390
6460
|
{
|
|
6391
6461
|
className: cn(
|
|
@@ -6418,7 +6488,7 @@ function EntitySelector({
|
|
|
6418
6488
|
}
|
|
6419
6489
|
}
|
|
6420
6490
|
)
|
|
6421
|
-
] }) : /* @__PURE__ */
|
|
6491
|
+
] }) : /* @__PURE__ */ jsxs44("div", { className: "space-y-4", children: [
|
|
6422
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(
|
|
6423
6493
|
item,
|
|
6424
6494
|
Boolean(rowSelection[item.id]),
|
|
@@ -6456,7 +6526,7 @@ function EntitySelector({
|
|
|
6456
6526
|
] })
|
|
6457
6527
|
] });
|
|
6458
6528
|
}
|
|
6459
|
-
return /* @__PURE__ */
|
|
6529
|
+
return /* @__PURE__ */ jsxs44(Fragment12, { children: [
|
|
6460
6530
|
/* @__PURE__ */ jsx60(
|
|
6461
6531
|
"div",
|
|
6462
6532
|
{
|
|
@@ -6492,8 +6562,8 @@ function EntitySelector({
|
|
|
6492
6562
|
maxSelect
|
|
6493
6563
|
}
|
|
6494
6564
|
),
|
|
6495
|
-
children: /* @__PURE__ */
|
|
6496
|
-
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: [
|
|
6497
6567
|
/* @__PURE__ */ jsx60("span", { className: "cn-selector-selected-bar-label", children: "Selected:" }),
|
|
6498
6568
|
selectedItems.map((item) => /* @__PURE__ */ jsx60(
|
|
6499
6569
|
Chip,
|
|
@@ -6522,7 +6592,7 @@ import {
|
|
|
6522
6592
|
IconSortDescendingLetters as IconSortDescendingLetters2
|
|
6523
6593
|
} from "@tabler/icons-react";
|
|
6524
6594
|
import { parseAsInteger as parseAsInteger3, parseAsString as parseAsString3, useQueryState as useQueryState3 } from "nuqs";
|
|
6525
|
-
import { jsx as jsx61, jsxs as
|
|
6595
|
+
import { jsx as jsx61, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6526
6596
|
function EntitySort({
|
|
6527
6597
|
options,
|
|
6528
6598
|
defaultSort = "createdAt",
|
|
@@ -6547,8 +6617,8 @@ function EntitySort({
|
|
|
6547
6617
|
setPage(1);
|
|
6548
6618
|
};
|
|
6549
6619
|
const sortLabel = options.find((o) => o.value === sort)?.label;
|
|
6550
|
-
return /* @__PURE__ */
|
|
6551
|
-
/* @__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(
|
|
6552
6622
|
Select,
|
|
6553
6623
|
{
|
|
6554
6624
|
value: sort,
|
|
@@ -6828,7 +6898,7 @@ function Image({
|
|
|
6828
6898
|
}
|
|
6829
6899
|
|
|
6830
6900
|
// src/components/files/file-upload.tsx
|
|
6831
|
-
import { jsx as jsx64, jsxs as
|
|
6901
|
+
import { jsx as jsx64, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6832
6902
|
function formatBytes(size) {
|
|
6833
6903
|
if (!size) {
|
|
6834
6904
|
return null;
|
|
@@ -6924,7 +6994,7 @@ function FilePreview({ item }) {
|
|
|
6924
6994
|
{
|
|
6925
6995
|
"data-slot": "file-upload-preview",
|
|
6926
6996
|
className: "cn-file-upload-preview flex aspect-[4/3] items-center justify-center p-3",
|
|
6927
|
-
children: /* @__PURE__ */
|
|
6997
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-col items-center gap-2 text-center", children: [
|
|
6928
6998
|
/* @__PURE__ */ jsx64(AudioIcon, { className: "text-muted-foreground size-8" }),
|
|
6929
6999
|
/* @__PURE__ */ jsx64("span", { className: "text-muted-foreground text-xs", children: "Audio preview" })
|
|
6930
7000
|
] })
|
|
@@ -7062,7 +7132,7 @@ function FileUpload({
|
|
|
7062
7132
|
let listContent = null;
|
|
7063
7133
|
if (showList) {
|
|
7064
7134
|
if (items.length > 0) {
|
|
7065
|
-
listContent = /* @__PURE__ */
|
|
7135
|
+
listContent = /* @__PURE__ */ jsxs46(
|
|
7066
7136
|
"div",
|
|
7067
7137
|
{
|
|
7068
7138
|
"data-slot": "file-upload-list",
|
|
@@ -7070,19 +7140,19 @@ function FileUpload({
|
|
|
7070
7140
|
children: [
|
|
7071
7141
|
items.map((item) => {
|
|
7072
7142
|
const FileIcon = getFileIcon(item.type);
|
|
7073
|
-
return /* @__PURE__ */
|
|
7143
|
+
return /* @__PURE__ */ jsxs46(
|
|
7074
7144
|
"div",
|
|
7075
7145
|
{
|
|
7076
7146
|
"data-slot": "file-upload-item",
|
|
7077
7147
|
className: "cn-file-upload-item flex flex-col gap-3 overflow-hidden",
|
|
7078
7148
|
children: [
|
|
7079
7149
|
/* @__PURE__ */ jsx64(FilePreview, { item }),
|
|
7080
|
-
/* @__PURE__ */
|
|
7081
|
-
/* @__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: [
|
|
7082
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" }) }),
|
|
7083
|
-
/* @__PURE__ */
|
|
7153
|
+
/* @__PURE__ */ jsxs46("div", { className: "min-w-0", children: [
|
|
7084
7154
|
/* @__PURE__ */ jsx64("div", { className: "truncate text-sm font-medium", children: item.name }),
|
|
7085
|
-
/* @__PURE__ */
|
|
7155
|
+
/* @__PURE__ */ jsxs46("div", { className: "text-muted-foreground flex flex-wrap gap-x-2 text-xs", children: [
|
|
7086
7156
|
formatBytes(item.size) ? /* @__PURE__ */ jsx64("span", { children: formatBytes(item.size) }) : null,
|
|
7087
7157
|
/* @__PURE__ */ jsx64("span", { children: item.source === "remote" ? "uploaded" : "local" })
|
|
7088
7158
|
] })
|
|
@@ -7131,13 +7201,13 @@ function FileUpload({
|
|
|
7131
7201
|
);
|
|
7132
7202
|
}
|
|
7133
7203
|
}
|
|
7134
|
-
return /* @__PURE__ */
|
|
7204
|
+
return /* @__PURE__ */ jsxs46(
|
|
7135
7205
|
"div",
|
|
7136
7206
|
{
|
|
7137
7207
|
"data-slot": "file-upload-wrapper",
|
|
7138
7208
|
className: cn("flex flex-col gap-4", className),
|
|
7139
7209
|
children: [
|
|
7140
|
-
/* @__PURE__ */
|
|
7210
|
+
/* @__PURE__ */ jsxs46(
|
|
7141
7211
|
"label",
|
|
7142
7212
|
{
|
|
7143
7213
|
"data-slot": "file-upload-dropzone",
|
|
@@ -7172,15 +7242,15 @@ function FileUpload({
|
|
|
7172
7242
|
onChange: handleInputChange
|
|
7173
7243
|
}
|
|
7174
7244
|
),
|
|
7175
|
-
/* @__PURE__ */
|
|
7245
|
+
/* @__PURE__ */ jsxs46(
|
|
7176
7246
|
"div",
|
|
7177
7247
|
{
|
|
7178
7248
|
"data-slot": "file-upload-prompt",
|
|
7179
7249
|
className: "cn-file-upload-prompt flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
7180
7250
|
children: [
|
|
7181
|
-
/* @__PURE__ */
|
|
7251
|
+
/* @__PURE__ */ jsxs46("div", { className: "cn-file-upload-prompt-main flex items-start gap-3", children: [
|
|
7182
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" }) }),
|
|
7183
|
-
/* @__PURE__ */
|
|
7253
|
+
/* @__PURE__ */ jsxs46("div", { className: "cn-file-upload-copy space-y-1", children: [
|
|
7184
7254
|
/* @__PURE__ */ jsx64(
|
|
7185
7255
|
"div",
|
|
7186
7256
|
{
|
|
@@ -7197,7 +7267,7 @@ function FileUpload({
|
|
|
7197
7267
|
children: description
|
|
7198
7268
|
}
|
|
7199
7269
|
),
|
|
7200
|
-
accept ? /* @__PURE__ */
|
|
7270
|
+
accept ? /* @__PURE__ */ jsxs46(
|
|
7201
7271
|
"div",
|
|
7202
7272
|
{
|
|
7203
7273
|
"data-slot": "file-upload-accept",
|
|
@@ -7255,7 +7325,7 @@ import Cropper from "react-easy-crop";
|
|
|
7255
7325
|
// src/components/ui/slider.tsx
|
|
7256
7326
|
import { Slider as SliderPrimitive } from "@base-ui/react/slider";
|
|
7257
7327
|
import * as React8 from "react";
|
|
7258
|
-
import { jsx as jsx65, jsxs as
|
|
7328
|
+
import { jsx as jsx65, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
7259
7329
|
function Slider({
|
|
7260
7330
|
className,
|
|
7261
7331
|
defaultValue,
|
|
@@ -7293,7 +7363,7 @@ function Slider({
|
|
|
7293
7363
|
max,
|
|
7294
7364
|
thumbAlignment: "edge",
|
|
7295
7365
|
...props,
|
|
7296
|
-
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: [
|
|
7297
7367
|
/* @__PURE__ */ jsx65(
|
|
7298
7368
|
SliderPrimitive.Track,
|
|
7299
7369
|
{
|
|
@@ -7400,7 +7470,7 @@ async function getCroppedImage({
|
|
|
7400
7470
|
|
|
7401
7471
|
// src/components/files/image-crop-dialog.tsx
|
|
7402
7472
|
import "react-easy-crop/react-easy-crop.css";
|
|
7403
|
-
import { jsx as jsx66, jsxs as
|
|
7473
|
+
import { jsx as jsx66, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
7404
7474
|
function ImageCropDialog({
|
|
7405
7475
|
open,
|
|
7406
7476
|
file,
|
|
@@ -7472,9 +7542,9 @@ function ImageCropDialog({
|
|
|
7472
7542
|
setSaving(false);
|
|
7473
7543
|
}
|
|
7474
7544
|
};
|
|
7475
|
-
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: [
|
|
7476
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 }) }),
|
|
7477
|
-
/* @__PURE__ */
|
|
7547
|
+
/* @__PURE__ */ jsxs48("div", { className: "grid gap-0 lg:grid-cols-[minmax(0,1fr)_340px]", children: [
|
|
7478
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(
|
|
7479
7549
|
Cropper,
|
|
7480
7550
|
{
|
|
@@ -7491,7 +7561,7 @@ function ImageCropDialog({
|
|
|
7491
7561
|
objectFit: "contain"
|
|
7492
7562
|
}
|
|
7493
7563
|
) : null }) }),
|
|
7494
|
-
/* @__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: [
|
|
7495
7565
|
/* @__PURE__ */ jsx66("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx66(
|
|
7496
7566
|
Button,
|
|
7497
7567
|
{
|
|
@@ -7506,13 +7576,13 @@ function ImageCropDialog({
|
|
|
7506
7576
|
children: "Reset"
|
|
7507
7577
|
}
|
|
7508
7578
|
) }),
|
|
7509
|
-
/* @__PURE__ */
|
|
7510
|
-
/* @__PURE__ */
|
|
7511
|
-
/* @__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: [
|
|
7512
7582
|
/* @__PURE__ */ jsx66(IconZoomIn, { className: "size-4" }),
|
|
7513
7583
|
"Zoom"
|
|
7514
7584
|
] }),
|
|
7515
|
-
/* @__PURE__ */
|
|
7585
|
+
/* @__PURE__ */ jsxs48(Text, { size: "sm", variant: "muted", children: [
|
|
7516
7586
|
zoom.toFixed(2),
|
|
7517
7587
|
"x"
|
|
7518
7588
|
] })
|
|
@@ -7527,21 +7597,21 @@ function ImageCropDialog({
|
|
|
7527
7597
|
onValueChange: (value) => setZoom(Number(value))
|
|
7528
7598
|
}
|
|
7529
7599
|
),
|
|
7530
|
-
/* @__PURE__ */
|
|
7531
|
-
/* @__PURE__ */
|
|
7600
|
+
/* @__PURE__ */ jsxs48("div", { className: "flex justify-between", children: [
|
|
7601
|
+
/* @__PURE__ */ jsxs48(Text, { size: "xs", variant: "muted", children: [
|
|
7532
7602
|
/* @__PURE__ */ jsx66(IconZoomOut, { className: "mr-1 inline size-3" }),
|
|
7533
7603
|
"1x"
|
|
7534
7604
|
] }),
|
|
7535
7605
|
/* @__PURE__ */ jsx66(Text, { size: "xs", variant: "muted", children: "3x" })
|
|
7536
7606
|
] })
|
|
7537
7607
|
] }),
|
|
7538
|
-
/* @__PURE__ */
|
|
7539
|
-
/* @__PURE__ */
|
|
7540
|
-
/* @__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: [
|
|
7541
7611
|
/* @__PURE__ */ jsx66(IconRotate, { className: "size-4" }),
|
|
7542
7612
|
"Rotation"
|
|
7543
7613
|
] }),
|
|
7544
|
-
/* @__PURE__ */
|
|
7614
|
+
/* @__PURE__ */ jsxs48(Text, { size: "sm", variant: "muted", children: [
|
|
7545
7615
|
rotation,
|
|
7546
7616
|
"\xB0"
|
|
7547
7617
|
] })
|
|
@@ -7569,7 +7639,7 @@ function ImageCropDialog({
|
|
|
7569
7639
|
] })
|
|
7570
7640
|
] })
|
|
7571
7641
|
] }),
|
|
7572
|
-
/* @__PURE__ */
|
|
7642
|
+
/* @__PURE__ */ jsxs48(DialogFooter, { className: "border-border/70 flex justify-end border-t px-5 py-4 sm:px-6", children: [
|
|
7573
7643
|
/* @__PURE__ */ jsx66(Button, { variant: "outline", onClick: () => onOpenChange(false), children: "Cancel" }),
|
|
7574
7644
|
/* @__PURE__ */ jsx66(Button, { onClick: handleSave, loading: saving, children: "Use image" })
|
|
7575
7645
|
] })
|
|
@@ -7584,7 +7654,7 @@ import {
|
|
|
7584
7654
|
IconTrash as IconTrash4
|
|
7585
7655
|
} from "@tabler/icons-react";
|
|
7586
7656
|
import { useEffect as useEffect12, useId as useId2, useRef as useRef8, useState as useState17 } from "react";
|
|
7587
|
-
import { Fragment as Fragment13, jsx as jsx67, jsxs as
|
|
7657
|
+
import { Fragment as Fragment13, jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
7588
7658
|
function ImageUpload({
|
|
7589
7659
|
className,
|
|
7590
7660
|
file: fileProp,
|
|
@@ -7635,20 +7705,20 @@ function ImageUpload({
|
|
|
7635
7705
|
}
|
|
7636
7706
|
setFile(nextFile);
|
|
7637
7707
|
};
|
|
7638
|
-
return /* @__PURE__ */
|
|
7708
|
+
return /* @__PURE__ */ jsxs49(Fragment13, { children: [
|
|
7639
7709
|
/* @__PURE__ */ jsx67(
|
|
7640
7710
|
"div",
|
|
7641
7711
|
{
|
|
7642
7712
|
"data-slot": "image-upload-wrapper",
|
|
7643
7713
|
className: cn("flex flex-col gap-4", className),
|
|
7644
|
-
children: /* @__PURE__ */
|
|
7714
|
+
children: /* @__PURE__ */ jsxs49(
|
|
7645
7715
|
"div",
|
|
7646
7716
|
{
|
|
7647
7717
|
"data-slot": "image-upload",
|
|
7648
7718
|
className: "cn-image-upload flex flex-col gap-4 rounded-[var(--radius-lg)] border bg-background p-4",
|
|
7649
7719
|
children: [
|
|
7650
|
-
/* @__PURE__ */
|
|
7651
|
-
/* @__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: [
|
|
7652
7722
|
/* @__PURE__ */ jsx67(
|
|
7653
7723
|
"div",
|
|
7654
7724
|
{
|
|
@@ -7666,7 +7736,7 @@ function ImageUpload({
|
|
|
7666
7736
|
}
|
|
7667
7737
|
)
|
|
7668
7738
|
] }),
|
|
7669
|
-
/* @__PURE__ */
|
|
7739
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-toolbar flex gap-2", children: [
|
|
7670
7740
|
file && enableCrop ? /* @__PURE__ */ jsx67(
|
|
7671
7741
|
Button,
|
|
7672
7742
|
{
|
|
@@ -7731,7 +7801,7 @@ function ImageUpload({
|
|
|
7731
7801
|
"cn-image-upload-dropzone block cursor-pointer rounded-[var(--radius-lg)] border border-dashed p-3 transition-colors hover:bg-accent/40",
|
|
7732
7802
|
disabled && "cursor-not-allowed opacity-60"
|
|
7733
7803
|
),
|
|
7734
|
-
children: previewUrl ? /* @__PURE__ */
|
|
7804
|
+
children: previewUrl ? /* @__PURE__ */ jsxs49("div", { className: "grid gap-4 lg:grid-cols-[minmax(0,1fr)_220px]", children: [
|
|
7735
7805
|
/* @__PURE__ */ jsx67("div", { className: "cn-image-upload-preview relative aspect-[4/3] overflow-hidden", children: /* @__PURE__ */ jsx67(
|
|
7736
7806
|
Image,
|
|
7737
7807
|
{
|
|
@@ -7740,8 +7810,8 @@ function ImageUpload({
|
|
|
7740
7810
|
className: "size-full object-cover"
|
|
7741
7811
|
}
|
|
7742
7812
|
) }),
|
|
7743
|
-
/* @__PURE__ */
|
|
7744
|
-
/* @__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: [
|
|
7745
7815
|
/* @__PURE__ */ jsx67(
|
|
7746
7816
|
"div",
|
|
7747
7817
|
{
|
|
@@ -7751,12 +7821,12 @@ function ImageUpload({
|
|
|
7751
7821
|
}
|
|
7752
7822
|
),
|
|
7753
7823
|
/* @__PURE__ */ jsx67("div", { className: "text-muted-foreground text-xs", children: file ? `${Math.round(file.size / 1024)} KB` : "Remote preview" }),
|
|
7754
|
-
/* @__PURE__ */
|
|
7824
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-muted-foreground text-xs", children: [
|
|
7755
7825
|
"Accepts ",
|
|
7756
7826
|
accept
|
|
7757
7827
|
] })
|
|
7758
7828
|
] }),
|
|
7759
|
-
/* @__PURE__ */
|
|
7829
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-actions flex flex-wrap gap-2", children: [
|
|
7760
7830
|
/* @__PURE__ */ jsx67(
|
|
7761
7831
|
Button,
|
|
7762
7832
|
{
|
|
@@ -7787,11 +7857,11 @@ function ImageUpload({
|
|
|
7787
7857
|
) : null
|
|
7788
7858
|
] })
|
|
7789
7859
|
] })
|
|
7790
|
-
] }) : /* @__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: [
|
|
7791
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" }) }),
|
|
7792
|
-
/* @__PURE__ */
|
|
7862
|
+
/* @__PURE__ */ jsxs49("div", { className: "cn-image-upload-placeholder-copy space-y-1", children: [
|
|
7793
7863
|
/* @__PURE__ */ jsx67("div", { className: "text-sm font-medium", children: "Drag and drop or click to upload" }),
|
|
7794
|
-
/* @__PURE__ */
|
|
7864
|
+
/* @__PURE__ */ jsxs49("div", { className: "text-muted-foreground text-sm", children: [
|
|
7795
7865
|
"Accepts ",
|
|
7796
7866
|
accept
|
|
7797
7867
|
] }),
|
|
@@ -7839,9 +7909,9 @@ function PageContainer({ className, children }) {
|
|
|
7839
7909
|
}
|
|
7840
7910
|
|
|
7841
7911
|
// src/components/layout/page/page-section.tsx
|
|
7842
|
-
import { jsx as jsx70, jsxs as
|
|
7912
|
+
import { jsx as jsx70, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
7843
7913
|
function PageSection({ title, className, children }) {
|
|
7844
|
-
return /* @__PURE__ */
|
|
7914
|
+
return /* @__PURE__ */ jsxs50("div", { className: cn("flex flex-col gap-4", className), children: [
|
|
7845
7915
|
title ? /* @__PURE__ */ jsx70("h4", { className: "font-medium text-foreground", children: title }) : null,
|
|
7846
7916
|
children
|
|
7847
7917
|
] });
|
|
@@ -7854,7 +7924,7 @@ function PageSubTitle({ className, children }) {
|
|
|
7854
7924
|
}
|
|
7855
7925
|
|
|
7856
7926
|
// src/components/layout/page/page-title.tsx
|
|
7857
|
-
import { jsx as jsx72, jsxs as
|
|
7927
|
+
import { jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
7858
7928
|
function PageTitle({
|
|
7859
7929
|
icon,
|
|
7860
7930
|
back,
|
|
@@ -7862,7 +7932,7 @@ function PageTitle({
|
|
|
7862
7932
|
children,
|
|
7863
7933
|
className
|
|
7864
7934
|
}) {
|
|
7865
|
-
return /* @__PURE__ */
|
|
7935
|
+
return /* @__PURE__ */ jsxs51(
|
|
7866
7936
|
"div",
|
|
7867
7937
|
{
|
|
7868
7938
|
className: cn(
|
|
@@ -7872,7 +7942,7 @@ function PageTitle({
|
|
|
7872
7942
|
children: [
|
|
7873
7943
|
back ?? null,
|
|
7874
7944
|
icon ?? null,
|
|
7875
|
-
/* @__PURE__ */
|
|
7945
|
+
/* @__PURE__ */ jsxs51("div", { className: "flex grow items-center justify-between", children: [
|
|
7876
7946
|
/* @__PURE__ */ jsx72("h3", { className: "font-medium", children }),
|
|
7877
7947
|
action ?? null
|
|
7878
7948
|
] })
|
|
@@ -7910,6 +7980,11 @@ var Toaster = ({ ...props }) => {
|
|
|
7910
7980
|
"group-[.toast]:text-muted-foreground",
|
|
7911
7981
|
props.toastOptions?.classNames?.description
|
|
7912
7982
|
].filter(Boolean).join(" "),
|
|
7983
|
+
title: [
|
|
7984
|
+
"group-[.toast]:text-current",
|
|
7985
|
+
"font-medium",
|
|
7986
|
+
props.toastOptions?.classNames?.title
|
|
7987
|
+
].filter(Boolean).join(" "),
|
|
7913
7988
|
actionButton: [
|
|
7914
7989
|
"group-[.toast]:bg-primary",
|
|
7915
7990
|
"group-[.toast]:text-primary-foreground",
|
|
@@ -7927,18 +8002,31 @@ var Toaster = ({ ...props }) => {
|
|
|
7927
8002
|
Sonner,
|
|
7928
8003
|
{
|
|
7929
8004
|
theme,
|
|
8005
|
+
richColors: props.richColors ?? true,
|
|
7930
8006
|
className: "toaster group",
|
|
7931
8007
|
icons: {
|
|
7932
8008
|
success: /* @__PURE__ */ jsx73(IconCircleCheck, { className: "size-4" }),
|
|
7933
8009
|
info: /* @__PURE__ */ jsx73(IconInfoCircle, { className: "size-4" }),
|
|
7934
8010
|
warning: /* @__PURE__ */ jsx73(IconAlertTriangle, { className: "size-4" }),
|
|
7935
8011
|
error: /* @__PURE__ */ jsx73(IconX7, { className: "size-4" }),
|
|
7936
|
-
loading: /* @__PURE__ */ jsx73(IconLoader22, { className: "size-4 animate-spin" })
|
|
8012
|
+
loading: /* @__PURE__ */ jsx73(IconLoader22, { className: "cn-spinner size-4 animate-spin" })
|
|
7937
8013
|
},
|
|
7938
8014
|
style: {
|
|
7939
8015
|
"--normal-bg": "var(--popover)",
|
|
7940
8016
|
"--normal-text": "var(--popover-foreground)",
|
|
7941
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)",
|
|
7942
8030
|
"--border-radius": "var(--radius)"
|
|
7943
8031
|
},
|
|
7944
8032
|
toastOptions,
|
|
@@ -7948,7 +8036,7 @@ var Toaster = ({ ...props }) => {
|
|
|
7948
8036
|
};
|
|
7949
8037
|
|
|
7950
8038
|
// src/components/layout/shell.tsx
|
|
7951
|
-
import { jsx as jsx74, jsxs as
|
|
8039
|
+
import { jsx as jsx74, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
7952
8040
|
function Shell({
|
|
7953
8041
|
sidebar,
|
|
7954
8042
|
headerActions,
|
|
@@ -7956,13 +8044,13 @@ function Shell({
|
|
|
7956
8044
|
showToaster = true,
|
|
7957
8045
|
contentClassName
|
|
7958
8046
|
}) {
|
|
7959
|
-
return /* @__PURE__ */ jsx74(BreadcrumbProvider, { children: /* @__PURE__ */
|
|
8047
|
+
return /* @__PURE__ */ jsx74(BreadcrumbProvider, { children: /* @__PURE__ */ jsxs52(SidebarProvider, { children: [
|
|
7960
8048
|
sidebar,
|
|
7961
|
-
/* @__PURE__ */
|
|
7962
|
-
/* @__PURE__ */
|
|
7963
|
-
/* @__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: [
|
|
7964
8052
|
/* @__PURE__ */ jsx74(SidebarTrigger, { className: "-ml-1" }),
|
|
7965
|
-
/* @__PURE__ */
|
|
8053
|
+
/* @__PURE__ */ jsxs52("div", { className: "hidden md:flex md:items-center md:gap-2", children: [
|
|
7966
8054
|
/* @__PURE__ */ jsx74(
|
|
7967
8055
|
Separator,
|
|
7968
8056
|
{
|
|
@@ -8179,7 +8267,7 @@ function pad2(n) {
|
|
|
8179
8267
|
}
|
|
8180
8268
|
|
|
8181
8269
|
// src/components/date-time/date-picker/picker-content.tsx
|
|
8182
|
-
import { Fragment as Fragment14, jsx as jsx76, jsxs as
|
|
8270
|
+
import { Fragment as Fragment14, jsx as jsx76, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
8183
8271
|
var JS_WEEKDAY_SHORT = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
8184
8272
|
function weekdayHeaderLabels(firstDayOfWeek) {
|
|
8185
8273
|
return Array.from({ length: 7 }, (_, col) => {
|
|
@@ -8249,7 +8337,7 @@ function DatePickerContent({
|
|
|
8249
8337
|
}) {
|
|
8250
8338
|
const monthShortList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
8251
8339
|
const hasPresets = !!presets?.length;
|
|
8252
|
-
return /* @__PURE__ */
|
|
8340
|
+
return /* @__PURE__ */ jsxs53("div", { className: "flex", children: [
|
|
8253
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(
|
|
8254
8342
|
"button",
|
|
8255
8343
|
{
|
|
@@ -8261,7 +8349,7 @@ function DatePickerContent({
|
|
|
8261
8349
|
},
|
|
8262
8350
|
preset.label
|
|
8263
8351
|
)) }),
|
|
8264
|
-
/* @__PURE__ */
|
|
8352
|
+
/* @__PURE__ */ jsxs53(
|
|
8265
8353
|
"div",
|
|
8266
8354
|
{
|
|
8267
8355
|
className: cn(
|
|
@@ -8271,7 +8359,7 @@ function DatePickerContent({
|
|
|
8271
8359
|
hasPresets && "min-w-0 flex-1"
|
|
8272
8360
|
),
|
|
8273
8361
|
children: [
|
|
8274
|
-
/* @__PURE__ */
|
|
8362
|
+
/* @__PURE__ */ jsxs53("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
8275
8363
|
/* @__PURE__ */ jsx76(
|
|
8276
8364
|
"button",
|
|
8277
8365
|
{
|
|
@@ -8313,8 +8401,8 @@ function DatePickerContent({
|
|
|
8313
8401
|
const dayGridClass = withWeekNumbers ? "grid grid-cols-[2rem_repeat(7,minmax(0,1fr))]" : "grid grid-cols-7";
|
|
8314
8402
|
const rowCount = cells.length / 7;
|
|
8315
8403
|
const labels = weekdayHeaderLabels(firstDayOfWeek);
|
|
8316
|
-
return /* @__PURE__ */
|
|
8317
|
-
!hideWeekdays && /* @__PURE__ */
|
|
8404
|
+
return /* @__PURE__ */ jsxs53(Fragment14, { children: [
|
|
8405
|
+
!hideWeekdays && /* @__PURE__ */ jsxs53("div", { className: cn("mb-0.5", dayGridClass), children: [
|
|
8318
8406
|
withWeekNumbers && /* @__PURE__ */ jsx76("div", { className: "select-none py-1.5 text-center text-xs font-medium text-muted-foreground", children: "#" }),
|
|
8319
8407
|
labels.map((wd, i) => {
|
|
8320
8408
|
const js = (firstDayOfWeek + i) % 7;
|
|
@@ -8341,7 +8429,7 @@ function DatePickerContent({
|
|
|
8341
8429
|
children: Array.from({ length: rowCount }, (_, row) => {
|
|
8342
8430
|
const rowCells = cells.slice(row * 7, row * 7 + 7);
|
|
8343
8431
|
const weekNo = getISOWeekNumber(rowCells[0].gcDate);
|
|
8344
|
-
return /* @__PURE__ */
|
|
8432
|
+
return /* @__PURE__ */ jsxs53(
|
|
8345
8433
|
"div",
|
|
8346
8434
|
{
|
|
8347
8435
|
className: dayGridClass,
|
|
@@ -8368,7 +8456,7 @@ function DatePickerContent({
|
|
|
8368
8456
|
const showStrip = hasRange && (inRange || (rStart || rEnd) && !(rStart && rEnd));
|
|
8369
8457
|
return (
|
|
8370
8458
|
/* biome-ignore lint/a11y/useSemanticElements: calendar cell, not a form fieldset */
|
|
8371
|
-
/* @__PURE__ */
|
|
8459
|
+
/* @__PURE__ */ jsxs53(
|
|
8372
8460
|
"div",
|
|
8373
8461
|
{
|
|
8374
8462
|
role: "group",
|
|
@@ -8493,7 +8581,7 @@ function DatePickerContent({
|
|
|
8493
8581
|
y
|
|
8494
8582
|
);
|
|
8495
8583
|
}) }),
|
|
8496
|
-
/* @__PURE__ */
|
|
8584
|
+
/* @__PURE__ */ jsxs53("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
|
|
8497
8585
|
/* @__PURE__ */ jsx76(
|
|
8498
8586
|
"button",
|
|
8499
8587
|
{
|
|
@@ -9374,7 +9462,7 @@ function FormMessage({ className, ...props }) {
|
|
|
9374
9462
|
import { IconMinus } from "@tabler/icons-react";
|
|
9375
9463
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
9376
9464
|
import * as React10 from "react";
|
|
9377
|
-
import { jsx as jsx79, jsxs as
|
|
9465
|
+
import { jsx as jsx79, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
9378
9466
|
function InputOTP({
|
|
9379
9467
|
className,
|
|
9380
9468
|
containerClassName,
|
|
@@ -9411,7 +9499,7 @@ function InputOTPSlot({
|
|
|
9411
9499
|
}) {
|
|
9412
9500
|
const inputOTPContext = React10.useContext(OTPInputContext);
|
|
9413
9501
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
9414
|
-
return /* @__PURE__ */
|
|
9502
|
+
return /* @__PURE__ */ jsxs54(
|
|
9415
9503
|
"div",
|
|
9416
9504
|
{
|
|
9417
9505
|
"data-slot": "input-otp-slot",
|
|
@@ -9595,7 +9683,7 @@ function HardbreakControl({ editor }) {
|
|
|
9595
9683
|
// src/components/rich-text/controls/iframe-control.tsx
|
|
9596
9684
|
import { IconExternalLink } from "@tabler/icons-react";
|
|
9597
9685
|
import { useState as useState19 } from "react";
|
|
9598
|
-
import { jsx as jsx82, jsxs as
|
|
9686
|
+
import { jsx as jsx82, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
9599
9687
|
function IframeControl() {
|
|
9600
9688
|
const { editor } = useRichTextEditorContext();
|
|
9601
9689
|
const [open, setOpen] = useState19(false);
|
|
@@ -9629,7 +9717,7 @@ function IframeControl() {
|
|
|
9629
9717
|
setOpen(false);
|
|
9630
9718
|
setIframeTag("");
|
|
9631
9719
|
};
|
|
9632
|
-
return /* @__PURE__ */
|
|
9720
|
+
return /* @__PURE__ */ jsxs55(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9633
9721
|
/* @__PURE__ */ jsx82(
|
|
9634
9722
|
DialogTrigger,
|
|
9635
9723
|
{
|
|
@@ -9645,9 +9733,9 @@ function IframeControl() {
|
|
|
9645
9733
|
children: /* @__PURE__ */ jsx82(IconExternalLink, { className: "size-4" })
|
|
9646
9734
|
}
|
|
9647
9735
|
),
|
|
9648
|
-
/* @__PURE__ */
|
|
9736
|
+
/* @__PURE__ */ jsxs55(DialogContent, { children: [
|
|
9649
9737
|
/* @__PURE__ */ jsx82(DialogHeader, { children: /* @__PURE__ */ jsx82(DialogTitle, { children: "Insert Iframe" }) }),
|
|
9650
|
-
/* @__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: [
|
|
9651
9739
|
/* @__PURE__ */ jsx82(Label, { htmlFor: "iframe-tag", children: "Iframe Tag" }),
|
|
9652
9740
|
/* @__PURE__ */ jsx82(
|
|
9653
9741
|
Input,
|
|
@@ -9665,7 +9753,7 @@ function IframeControl() {
|
|
|
9665
9753
|
}
|
|
9666
9754
|
)
|
|
9667
9755
|
] }) }),
|
|
9668
|
-
/* @__PURE__ */
|
|
9756
|
+
/* @__PURE__ */ jsxs55(DialogFooter, { children: [
|
|
9669
9757
|
/* @__PURE__ */ jsx82(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9670
9758
|
/* @__PURE__ */ jsx82(Button, { onClick: handleAdd, children: "Add Iframe" })
|
|
9671
9759
|
] })
|
|
@@ -9676,7 +9764,7 @@ function IframeControl() {
|
|
|
9676
9764
|
// src/components/rich-text/controls/image-control.tsx
|
|
9677
9765
|
import { IconPhoto as IconPhoto2 } from "@tabler/icons-react";
|
|
9678
9766
|
import { useState as useState20 } from "react";
|
|
9679
|
-
import { jsx as jsx83, jsxs as
|
|
9767
|
+
import { jsx as jsx83, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
9680
9768
|
function ImageControl() {
|
|
9681
9769
|
const { editor } = useRichTextEditorContext();
|
|
9682
9770
|
const [open, setOpen] = useState20(false);
|
|
@@ -9697,7 +9785,7 @@ function ImageControl() {
|
|
|
9697
9785
|
setOpen(false);
|
|
9698
9786
|
setUrl("");
|
|
9699
9787
|
};
|
|
9700
|
-
return /* @__PURE__ */
|
|
9788
|
+
return /* @__PURE__ */ jsxs56(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9701
9789
|
/* @__PURE__ */ jsx83(
|
|
9702
9790
|
DialogTrigger,
|
|
9703
9791
|
{
|
|
@@ -9713,9 +9801,9 @@ function ImageControl() {
|
|
|
9713
9801
|
children: /* @__PURE__ */ jsx83(IconPhoto2, { className: "size-4" })
|
|
9714
9802
|
}
|
|
9715
9803
|
),
|
|
9716
|
-
/* @__PURE__ */
|
|
9804
|
+
/* @__PURE__ */ jsxs56(DialogContent, { children: [
|
|
9717
9805
|
/* @__PURE__ */ jsx83(DialogHeader, { children: /* @__PURE__ */ jsx83(DialogTitle, { children: "Insert Image" }) }),
|
|
9718
|
-
/* @__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: [
|
|
9719
9807
|
/* @__PURE__ */ jsx83(Label, { htmlFor: "image-url", children: "Image URL" }),
|
|
9720
9808
|
/* @__PURE__ */ jsx83(
|
|
9721
9809
|
Input,
|
|
@@ -9733,7 +9821,7 @@ function ImageControl() {
|
|
|
9733
9821
|
}
|
|
9734
9822
|
)
|
|
9735
9823
|
] }) }),
|
|
9736
|
-
/* @__PURE__ */
|
|
9824
|
+
/* @__PURE__ */ jsxs56(DialogFooter, { children: [
|
|
9737
9825
|
/* @__PURE__ */ jsx83(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9738
9826
|
/* @__PURE__ */ jsx83(Button, { onClick: handleAdd, children: "Add Image" })
|
|
9739
9827
|
] })
|
|
@@ -9750,7 +9838,7 @@ import {
|
|
|
9750
9838
|
IconTableMinus,
|
|
9751
9839
|
IconTrash as IconTrash5
|
|
9752
9840
|
} from "@tabler/icons-react";
|
|
9753
|
-
import { Fragment as Fragment15, jsx as jsx84, jsxs as
|
|
9841
|
+
import { Fragment as Fragment15, jsx as jsx84, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
9754
9842
|
function TableControl({ editor }) {
|
|
9755
9843
|
if (!editor) {
|
|
9756
9844
|
return null;
|
|
@@ -9758,7 +9846,7 @@ function TableControl({ editor }) {
|
|
|
9758
9846
|
const handleInsertTable = () => {
|
|
9759
9847
|
editor.chain().focus().insertTable({ rows: 2, cols: 2, withHeaderRow: true }).run();
|
|
9760
9848
|
};
|
|
9761
|
-
return /* @__PURE__ */
|
|
9849
|
+
return /* @__PURE__ */ jsxs57(Fragment15, { children: [
|
|
9762
9850
|
/* @__PURE__ */ jsx84(
|
|
9763
9851
|
RichTextEditorControl,
|
|
9764
9852
|
{
|
|
@@ -9825,7 +9913,7 @@ function TableControl({ editor }) {
|
|
|
9825
9913
|
// src/components/rich-text/controls/youtube-control.tsx
|
|
9826
9914
|
import { IconBrandYoutube } from "@tabler/icons-react";
|
|
9827
9915
|
import { useState as useState21 } from "react";
|
|
9828
|
-
import { jsx as jsx85, jsxs as
|
|
9916
|
+
import { jsx as jsx85, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
9829
9917
|
function YoutubeControl() {
|
|
9830
9918
|
const { editor } = useRichTextEditorContext();
|
|
9831
9919
|
const [open, setOpen] = useState21(false);
|
|
@@ -9846,7 +9934,7 @@ function YoutubeControl() {
|
|
|
9846
9934
|
setOpen(false);
|
|
9847
9935
|
setUrl("");
|
|
9848
9936
|
};
|
|
9849
|
-
return /* @__PURE__ */
|
|
9937
|
+
return /* @__PURE__ */ jsxs58(Dialog, { open, onOpenChange: setOpen, children: [
|
|
9850
9938
|
/* @__PURE__ */ jsx85(
|
|
9851
9939
|
DialogTrigger,
|
|
9852
9940
|
{
|
|
@@ -9862,9 +9950,9 @@ function YoutubeControl() {
|
|
|
9862
9950
|
children: /* @__PURE__ */ jsx85(IconBrandYoutube, { className: "size-4" })
|
|
9863
9951
|
}
|
|
9864
9952
|
),
|
|
9865
|
-
/* @__PURE__ */
|
|
9953
|
+
/* @__PURE__ */ jsxs58(DialogContent, { children: [
|
|
9866
9954
|
/* @__PURE__ */ jsx85(DialogHeader, { children: /* @__PURE__ */ jsx85(DialogTitle, { children: "Insert YouTube Video" }) }),
|
|
9867
|
-
/* @__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: [
|
|
9868
9956
|
/* @__PURE__ */ jsx85(Label, { htmlFor: "youtube-url", children: "YouTube URL" }),
|
|
9869
9957
|
/* @__PURE__ */ jsx85(
|
|
9870
9958
|
Input,
|
|
@@ -9882,7 +9970,7 @@ function YoutubeControl() {
|
|
|
9882
9970
|
}
|
|
9883
9971
|
)
|
|
9884
9972
|
] }) }),
|
|
9885
|
-
/* @__PURE__ */
|
|
9973
|
+
/* @__PURE__ */ jsxs58(DialogFooter, { children: [
|
|
9886
9974
|
/* @__PURE__ */ jsx85(Button, { variant: "outline", onClick: handleClose, children: "Cancel" }),
|
|
9887
9975
|
/* @__PURE__ */ jsx85(Button, { onClick: handleAdd, children: "Add Video" })
|
|
9888
9976
|
] })
|
|
@@ -10008,7 +10096,7 @@ var Iframe = Node.create({
|
|
|
10008
10096
|
});
|
|
10009
10097
|
|
|
10010
10098
|
// src/components/rich-text/rich-text-input.tsx
|
|
10011
|
-
import { Fragment as Fragment16, jsx as jsx86, jsxs as
|
|
10099
|
+
import { Fragment as Fragment16, jsx as jsx86, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
10012
10100
|
var EMPTY_KEY = "__empty__";
|
|
10013
10101
|
function RichTextInputEditor({
|
|
10014
10102
|
field,
|
|
@@ -10135,14 +10223,14 @@ function RichTextInputEditor({
|
|
|
10135
10223
|
}, [editor, value]);
|
|
10136
10224
|
const enabledControllersLength = enabledControllers.length;
|
|
10137
10225
|
const isControllerEnabled = (controller) => enabledControllersLength === 0 || enabledControllers.includes(controller);
|
|
10138
|
-
return /* @__PURE__ */
|
|
10139
|
-
label && /* @__PURE__ */
|
|
10226
|
+
return /* @__PURE__ */ jsxs59("div", { className: cn("flex flex-col gap-2", className), children: [
|
|
10227
|
+
label && /* @__PURE__ */ jsxs59(Label, { children: [
|
|
10140
10228
|
label,
|
|
10141
10229
|
withAsterisk && /* @__PURE__ */ jsx86("span", { className: "text-destructive", children: "*" })
|
|
10142
10230
|
] }),
|
|
10143
|
-
/* @__PURE__ */
|
|
10144
|
-
/* @__PURE__ */
|
|
10145
|
-
/* @__PURE__ */
|
|
10231
|
+
/* @__PURE__ */ jsxs59(RichTextEditor, { editor, children: [
|
|
10232
|
+
/* @__PURE__ */ jsxs59(RichTextEditorToolbar, { children: [
|
|
10233
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10146
10234
|
isControllerEnabled("bold") && /* @__PURE__ */ jsx86(
|
|
10147
10235
|
RichTextEditorControl,
|
|
10148
10236
|
{
|
|
@@ -10218,7 +10306,7 @@ function RichTextInputEditor({
|
|
|
10218
10306
|
}
|
|
10219
10307
|
)
|
|
10220
10308
|
] }),
|
|
10221
|
-
/* @__PURE__ */
|
|
10309
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10222
10310
|
isControllerEnabled("h1") && /* @__PURE__ */ jsx86(
|
|
10223
10311
|
RichTextEditorControl,
|
|
10224
10312
|
{
|
|
@@ -10260,7 +10348,7 @@ function RichTextInputEditor({
|
|
|
10260
10348
|
}
|
|
10261
10349
|
)
|
|
10262
10350
|
] }),
|
|
10263
|
-
/* @__PURE__ */
|
|
10351
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10264
10352
|
isControllerEnabled("bulletList") && /* @__PURE__ */ jsx86(
|
|
10265
10353
|
RichTextEditorControl,
|
|
10266
10354
|
{
|
|
@@ -10282,8 +10370,8 @@ function RichTextInputEditor({
|
|
|
10282
10370
|
}
|
|
10283
10371
|
)
|
|
10284
10372
|
] }),
|
|
10285
|
-
/* @__PURE__ */
|
|
10286
|
-
isControllerEnabled("link") && /* @__PURE__ */
|
|
10373
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10374
|
+
isControllerEnabled("link") && /* @__PURE__ */ jsxs59(Fragment16, { children: [
|
|
10287
10375
|
/* @__PURE__ */ jsx86(
|
|
10288
10376
|
RichTextEditorControl,
|
|
10289
10377
|
{
|
|
@@ -10321,7 +10409,7 @@ function RichTextInputEditor({
|
|
|
10321
10409
|
}
|
|
10322
10410
|
)
|
|
10323
10411
|
] }),
|
|
10324
|
-
/* @__PURE__ */
|
|
10412
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10325
10413
|
isControllerEnabled("alignLeft") && /* @__PURE__ */ jsx86(
|
|
10326
10414
|
RichTextEditorControl,
|
|
10327
10415
|
{
|
|
@@ -10363,7 +10451,7 @@ function RichTextInputEditor({
|
|
|
10363
10451
|
}
|
|
10364
10452
|
)
|
|
10365
10453
|
] }),
|
|
10366
|
-
/* @__PURE__ */
|
|
10454
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10367
10455
|
isControllerEnabled("subscript") && /* @__PURE__ */ jsx86(
|
|
10368
10456
|
RichTextEditorControl,
|
|
10369
10457
|
{
|
|
@@ -10386,9 +10474,9 @@ function RichTextInputEditor({
|
|
|
10386
10474
|
)
|
|
10387
10475
|
] }),
|
|
10388
10476
|
editor && isControllerEnabled("hardBreak") && /* @__PURE__ */ jsx86(HardbreakControl, { editor }),
|
|
10389
|
-
mode === "large" && /* @__PURE__ */
|
|
10477
|
+
mode === "large" && /* @__PURE__ */ jsxs59(Fragment16, { children: [
|
|
10390
10478
|
isControllerEnabled("table") && /* @__PURE__ */ jsx86(RichTextEditorControlsGroup, { children: /* @__PURE__ */ jsx86(TableControl, { editor }) }),
|
|
10391
|
-
/* @__PURE__ */
|
|
10479
|
+
/* @__PURE__ */ jsxs59(RichTextEditorControlsGroup, { children: [
|
|
10392
10480
|
isControllerEnabled("image") && /* @__PURE__ */ jsx86(ImageControl, {}),
|
|
10393
10481
|
isControllerEnabled("youtube") && /* @__PURE__ */ jsx86(YoutubeControl, {}),
|
|
10394
10482
|
isControllerEnabled("map") && /* @__PURE__ */ jsx86(IframeControl, {})
|
|
@@ -10420,7 +10508,7 @@ function VisuallyHidden({ className, ...props }) {
|
|
|
10420
10508
|
}
|
|
10421
10509
|
|
|
10422
10510
|
// src/components/locale/locale-input-rich-text.tsx
|
|
10423
|
-
import { jsx as jsx88, jsxs as
|
|
10511
|
+
import { jsx as jsx88, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
10424
10512
|
function LocaleInputRichText({
|
|
10425
10513
|
label,
|
|
10426
10514
|
required,
|
|
@@ -10438,13 +10526,13 @@ function LocaleInputRichText({
|
|
|
10438
10526
|
const otherLanguages = supportedLanguages.filter(
|
|
10439
10527
|
(lang) => lang.value !== defaultLanguage
|
|
10440
10528
|
);
|
|
10441
|
-
return /* @__PURE__ */
|
|
10442
|
-
label && /* @__PURE__ */
|
|
10529
|
+
return /* @__PURE__ */ jsxs60(Field, { className: cn(className), children: [
|
|
10530
|
+
label && /* @__PURE__ */ jsxs60(FieldLabel, { children: [
|
|
10443
10531
|
label,
|
|
10444
10532
|
required && /* @__PURE__ */ jsx88("span", { className: "text-destructive ml-1", children: "*" })
|
|
10445
10533
|
] }),
|
|
10446
|
-
/* @__PURE__ */
|
|
10447
|
-
/* @__PURE__ */
|
|
10534
|
+
/* @__PURE__ */ jsxs60(FieldContent, { children: [
|
|
10535
|
+
/* @__PURE__ */ jsxs60("div", { className: "relative", children: [
|
|
10448
10536
|
/* @__PURE__ */ jsx88(
|
|
10449
10537
|
Controller2,
|
|
10450
10538
|
{
|
|
@@ -10462,7 +10550,7 @@ function LocaleInputRichText({
|
|
|
10462
10550
|
)
|
|
10463
10551
|
}
|
|
10464
10552
|
),
|
|
10465
|
-
/* @__PURE__ */
|
|
10553
|
+
/* @__PURE__ */ jsxs60("div", { className: "absolute top-3 right-2 z-10 flex items-center gap-1", children: [
|
|
10466
10554
|
/* @__PURE__ */ jsx88(
|
|
10467
10555
|
"button",
|
|
10468
10556
|
{
|
|
@@ -10483,7 +10571,7 @@ function LocaleInputRichText({
|
|
|
10483
10571
|
)
|
|
10484
10572
|
] })
|
|
10485
10573
|
] }),
|
|
10486
|
-
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: [
|
|
10487
10575
|
/* @__PURE__ */ jsx88(FieldLabel, { className: "text-xs text-muted-foreground", children: lang.label }),
|
|
10488
10576
|
/* @__PURE__ */ jsx88(
|
|
10489
10577
|
Controller2,
|
|
@@ -10503,7 +10591,7 @@ function LocaleInputRichText({
|
|
|
10503
10591
|
}
|
|
10504
10592
|
)
|
|
10505
10593
|
] }, lang.value)) }),
|
|
10506
|
-
/* @__PURE__ */ jsx88(Dialog, { open: fullscreen, onOpenChange: setFullscreen, children: /* @__PURE__ */
|
|
10594
|
+
/* @__PURE__ */ jsx88(Dialog, { open: fullscreen, onOpenChange: setFullscreen, children: /* @__PURE__ */ jsxs60(
|
|
10507
10595
|
DialogContent,
|
|
10508
10596
|
{
|
|
10509
10597
|
showCloseButton: false,
|
|
@@ -10512,7 +10600,7 @@ function LocaleInputRichText({
|
|
|
10512
10600
|
"!top-0 !left-0 !right-0 !bottom-0 !h-screen !w-screen !max-w-none !translate-x-0 !translate-y-0 !rounded-none"
|
|
10513
10601
|
),
|
|
10514
10602
|
children: [
|
|
10515
|
-
/* @__PURE__ */ jsx88(VisuallyHidden, { children: /* @__PURE__ */
|
|
10603
|
+
/* @__PURE__ */ jsx88(VisuallyHidden, { children: /* @__PURE__ */ jsxs60(DialogTitle, { children: [
|
|
10516
10604
|
label || "Edit content",
|
|
10517
10605
|
" - Fullscreen editor"
|
|
10518
10606
|
] }) }),
|
|
@@ -10552,7 +10640,7 @@ function LocaleInputRichText({
|
|
|
10552
10640
|
// src/components/locale/locale-input-text.tsx
|
|
10553
10641
|
import { IconTextRecognition as IconTextRecognition2 } from "@tabler/icons-react";
|
|
10554
10642
|
import { useState as useState23 } from "react";
|
|
10555
|
-
import { jsx as jsx89, jsxs as
|
|
10643
|
+
import { jsx as jsx89, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
10556
10644
|
function LocaleInputText({
|
|
10557
10645
|
label,
|
|
10558
10646
|
required,
|
|
@@ -10569,13 +10657,13 @@ function LocaleInputText({
|
|
|
10569
10657
|
(lang) => lang.value !== defaultLanguage
|
|
10570
10658
|
);
|
|
10571
10659
|
const defaultError = errors?.[field]?.[defaultLanguage];
|
|
10572
|
-
return /* @__PURE__ */
|
|
10573
|
-
label && /* @__PURE__ */
|
|
10660
|
+
return /* @__PURE__ */ jsxs61(Field, { className: cn(className), children: [
|
|
10661
|
+
label && /* @__PURE__ */ jsxs61(FieldLabel, { children: [
|
|
10574
10662
|
label,
|
|
10575
10663
|
required && /* @__PURE__ */ jsx89("span", { className: "text-destructive ", children: "*" })
|
|
10576
10664
|
] }),
|
|
10577
|
-
/* @__PURE__ */
|
|
10578
|
-
/* @__PURE__ */
|
|
10665
|
+
/* @__PURE__ */ jsxs61(FieldContent, { children: [
|
|
10666
|
+
/* @__PURE__ */ jsxs61("div", { className: "relative", children: [
|
|
10579
10667
|
/* @__PURE__ */ jsx89(
|
|
10580
10668
|
Input,
|
|
10581
10669
|
{
|
|
@@ -10598,9 +10686,9 @@ function LocaleInputText({
|
|
|
10598
10686
|
)
|
|
10599
10687
|
] }),
|
|
10600
10688
|
/* @__PURE__ */ jsx89(FieldError, { errors: defaultError ? [defaultError] : void 0 }),
|
|
10601
|
-
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: [
|
|
10602
10690
|
/* @__PURE__ */ jsx89(FieldLabel, { className: "min-w-[60px] text-xs text-muted-foreground", children: lang.label }),
|
|
10603
|
-
/* @__PURE__ */
|
|
10691
|
+
/* @__PURE__ */ jsxs61("div", { className: "flex-1 space-y-1", children: [
|
|
10604
10692
|
/* @__PURE__ */ jsx89(
|
|
10605
10693
|
Input,
|
|
10606
10694
|
{
|
|
@@ -10628,7 +10716,7 @@ function LocaleInputText({
|
|
|
10628
10716
|
// src/components/locale/locale-input-textarea.tsx
|
|
10629
10717
|
import { IconTextRecognition as IconTextRecognition3 } from "@tabler/icons-react";
|
|
10630
10718
|
import { useState as useState24 } from "react";
|
|
10631
|
-
import { jsx as jsx90, jsxs as
|
|
10719
|
+
import { jsx as jsx90, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
10632
10720
|
function LocaleInputTextarea({
|
|
10633
10721
|
label,
|
|
10634
10722
|
required,
|
|
@@ -10646,13 +10734,13 @@ function LocaleInputTextarea({
|
|
|
10646
10734
|
(lang) => lang.value !== defaultLanguage
|
|
10647
10735
|
);
|
|
10648
10736
|
const defaultError = errors?.[field]?.[defaultLanguage];
|
|
10649
|
-
return /* @__PURE__ */
|
|
10650
|
-
label && /* @__PURE__ */
|
|
10737
|
+
return /* @__PURE__ */ jsxs62(Field, { className: cn("cn-locale-input", className), children: [
|
|
10738
|
+
label && /* @__PURE__ */ jsxs62(FieldLabel, { children: [
|
|
10651
10739
|
label,
|
|
10652
10740
|
required && /* @__PURE__ */ jsx90("span", { className: "text-destructive ml-1", children: "*" })
|
|
10653
10741
|
] }),
|
|
10654
|
-
/* @__PURE__ */
|
|
10655
|
-
/* @__PURE__ */
|
|
10742
|
+
/* @__PURE__ */ jsxs62(FieldContent, { children: [
|
|
10743
|
+
/* @__PURE__ */ jsxs62("div", { className: "relative", children: [
|
|
10656
10744
|
/* @__PURE__ */ jsx90(
|
|
10657
10745
|
Textarea,
|
|
10658
10746
|
{
|
|
@@ -10676,9 +10764,9 @@ function LocaleInputTextarea({
|
|
|
10676
10764
|
)
|
|
10677
10765
|
] }),
|
|
10678
10766
|
/* @__PURE__ */ jsx90(FieldError, { errors: defaultError ? [defaultError] : void 0 }),
|
|
10679
|
-
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: [
|
|
10680
10768
|
/* @__PURE__ */ jsx90(FieldLabel, { className: "min-w-[60px] text-xs text-muted-foreground mt-2", children: lang.label }),
|
|
10681
|
-
/* @__PURE__ */
|
|
10769
|
+
/* @__PURE__ */ jsxs62("div", { className: "flex-1 space-y-1", children: [
|
|
10682
10770
|
/* @__PURE__ */ jsx90(
|
|
10683
10771
|
Textarea,
|
|
10684
10772
|
{
|
|
@@ -10736,7 +10824,7 @@ function LocaleText({ text, defaultLocale }) {
|
|
|
10736
10824
|
}
|
|
10737
10825
|
|
|
10738
10826
|
// src/components/mesob-logo.tsx
|
|
10739
|
-
import { jsx as jsx93, jsxs as
|
|
10827
|
+
import { jsx as jsx93, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
10740
10828
|
function MesobLogo({
|
|
10741
10829
|
width,
|
|
10742
10830
|
height,
|
|
@@ -10745,7 +10833,7 @@ function MesobLogo({
|
|
|
10745
10833
|
iconColor = "#fff",
|
|
10746
10834
|
className
|
|
10747
10835
|
}) {
|
|
10748
|
-
return /* @__PURE__ */
|
|
10836
|
+
return /* @__PURE__ */ jsxs63(
|
|
10749
10837
|
"svg",
|
|
10750
10838
|
{
|
|
10751
10839
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -10816,7 +10904,7 @@ function MesobLogo({
|
|
|
10816
10904
|
import { IconX as IconX9 } from "@tabler/icons-react";
|
|
10817
10905
|
import { cva as cva9 } from "class-variance-authority";
|
|
10818
10906
|
import { useState as useState25 } from "react";
|
|
10819
|
-
import { jsx as jsx94, jsxs as
|
|
10907
|
+
import { jsx as jsx94, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
10820
10908
|
var modalContentVariants = cva9(
|
|
10821
10909
|
cn(
|
|
10822
10910
|
"p-0 gap-0 flex flex-col overflow-hidden",
|
|
@@ -10885,7 +10973,7 @@ function ModalContent({
|
|
|
10885
10973
|
);
|
|
10886
10974
|
}
|
|
10887
10975
|
function ModalHeader({ className, children, ...props }) {
|
|
10888
|
-
return /* @__PURE__ */
|
|
10976
|
+
return /* @__PURE__ */ jsxs64(
|
|
10889
10977
|
DialogHeader,
|
|
10890
10978
|
{
|
|
10891
10979
|
"data-slot": "modal-header",
|
|
@@ -10987,9 +11075,9 @@ function Modal({
|
|
|
10987
11075
|
};
|
|
10988
11076
|
const shouldShowHeader = title || subtitle;
|
|
10989
11077
|
const shouldShowFooter = footer !== void 0;
|
|
10990
|
-
return /* @__PURE__ */
|
|
11078
|
+
return /* @__PURE__ */ jsxs64(ModalRoot, { open: currentOpen, onOpenChange: handleOpenChange, ...props, children: [
|
|
10991
11079
|
trigger && /* @__PURE__ */ jsx94(ModalTrigger, { render: trigger, ...triggerProps }),
|
|
10992
|
-
/* @__PURE__ */
|
|
11080
|
+
/* @__PURE__ */ jsxs64(
|
|
10993
11081
|
ModalContent,
|
|
10994
11082
|
{
|
|
10995
11083
|
size,
|
|
@@ -10997,7 +11085,7 @@ function Modal({
|
|
|
10997
11085
|
className: contentProps?.className,
|
|
10998
11086
|
...contentProps,
|
|
10999
11087
|
children: [
|
|
11000
|
-
shouldShowHeader && /* @__PURE__ */
|
|
11088
|
+
shouldShowHeader && /* @__PURE__ */ jsxs64(ModalHeader, { className: headerProps?.className, ...headerProps, children: [
|
|
11001
11089
|
title && /* @__PURE__ */ jsx94(ModalTitle, { children: title }),
|
|
11002
11090
|
subtitle && /* @__PURE__ */ jsx94(ModalSubtitle, { children: subtitle })
|
|
11003
11091
|
] }),
|
|
@@ -11010,7 +11098,7 @@ function Modal({
|
|
|
11010
11098
|
}
|
|
11011
11099
|
|
|
11012
11100
|
// src/components/powered-by.tsx
|
|
11013
|
-
import { jsx as jsx95, jsxs as
|
|
11101
|
+
import { jsx as jsx95, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
11014
11102
|
function PoweredBy({ className }) {
|
|
11015
11103
|
return /* @__PURE__ */ jsx95(
|
|
11016
11104
|
"div",
|
|
@@ -11019,7 +11107,7 @@ function PoweredBy({ className }) {
|
|
|
11019
11107
|
"flex flex-col items-center gap-1.5 py-3 text-center",
|
|
11020
11108
|
className
|
|
11021
11109
|
),
|
|
11022
|
-
children: /* @__PURE__ */
|
|
11110
|
+
children: /* @__PURE__ */ jsxs65(
|
|
11023
11111
|
"a",
|
|
11024
11112
|
{
|
|
11025
11113
|
href: "https://mesob.com",
|
|
@@ -11063,11 +11151,11 @@ function RichTextDisplay({ content, className }) {
|
|
|
11063
11151
|
// src/components/theme-toggle.tsx
|
|
11064
11152
|
import { IconMoon, IconSun } from "@tabler/icons-react";
|
|
11065
11153
|
import { useTheme as useTheme2 } from "next-themes";
|
|
11066
|
-
import { jsx as jsx97, jsxs as
|
|
11154
|
+
import { jsx as jsx97, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
11067
11155
|
function ThemeToggle({ className }) {
|
|
11068
11156
|
const { resolvedTheme, setTheme, theme } = useTheme2();
|
|
11069
11157
|
const isDark = (theme ?? resolvedTheme) === "dark";
|
|
11070
|
-
return /* @__PURE__ */
|
|
11158
|
+
return /* @__PURE__ */ jsxs66(
|
|
11071
11159
|
Button,
|
|
11072
11160
|
{
|
|
11073
11161
|
variant: "ghost",
|
|
@@ -11538,14 +11626,14 @@ function useDateInput(props) {
|
|
|
11538
11626
|
}
|
|
11539
11627
|
|
|
11540
11628
|
// src/components/date-time/date-input/date-input.tsx
|
|
11541
|
-
import { jsx as jsx99, jsxs as
|
|
11629
|
+
import { jsx as jsx99, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
11542
11630
|
var SIZE_CLASS = {
|
|
11543
11631
|
sm: "[&_[data-slot=input-group-control]]:min-h-8 [&_[data-slot=input-group-control]]:text-xs",
|
|
11544
11632
|
md: "[&_[data-slot=input-group-control]]:min-h-10 [&_[data-slot=input-group-control]]:text-sm",
|
|
11545
11633
|
lg: "[&_[data-slot=input-group-control]]:min-h-11 [&_[data-slot=input-group-control]]:text-sm",
|
|
11546
11634
|
xl: "[&_[data-slot=input-group-control]]:min-h-12 [&_[data-slot=input-group-control]]:text-base"
|
|
11547
11635
|
};
|
|
11548
|
-
var CalendarIcon = /* @__PURE__ */
|
|
11636
|
+
var CalendarIcon = /* @__PURE__ */ jsxs67("svg", { className: "size-4", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
|
|
11549
11637
|
/* @__PURE__ */ jsx99("title", { className: "sr-only", children: "Calendar" }),
|
|
11550
11638
|
/* @__PURE__ */ jsx99(
|
|
11551
11639
|
"path",
|
|
@@ -11558,7 +11646,7 @@ var CalendarIcon = /* @__PURE__ */ jsxs66("svg", { className: "size-4", fill: "n
|
|
|
11558
11646
|
}
|
|
11559
11647
|
)
|
|
11560
11648
|
] });
|
|
11561
|
-
var CloseIcon = /* @__PURE__ */
|
|
11649
|
+
var CloseIcon = /* @__PURE__ */ jsxs67("svg", { className: "size-3.5", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
|
|
11562
11650
|
/* @__PURE__ */ jsx99("title", { className: "sr-only", children: "Clear" }),
|
|
11563
11651
|
/* @__PURE__ */ jsx99(
|
|
11564
11652
|
"path",
|
|
@@ -11635,8 +11723,8 @@ var DateInput = forwardRef4(
|
|
|
11635
11723
|
disabled,
|
|
11636
11724
|
className,
|
|
11637
11725
|
labelProps: { htmlFor: inputId },
|
|
11638
|
-
children: /* @__PURE__ */
|
|
11639
|
-
/* @__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(
|
|
11640
11728
|
InputGroup,
|
|
11641
11729
|
{
|
|
11642
11730
|
disabled,
|
|
@@ -11671,7 +11759,7 @@ var DateInput = forwardRef4(
|
|
|
11671
11759
|
"aria-label": ariaLabel
|
|
11672
11760
|
}
|
|
11673
11761
|
),
|
|
11674
|
-
/* @__PURE__ */
|
|
11762
|
+
/* @__PURE__ */ jsxs67("span", { className: "mr-1 flex items-center gap-0.5 pr-0.5", children: [
|
|
11675
11763
|
state2.showClear ? /* @__PURE__ */ jsx99(
|
|
11676
11764
|
InputGroupButton,
|
|
11677
11765
|
{
|
|
@@ -11762,7 +11850,7 @@ import { forwardRef as forwardRef6 } from "react";
|
|
|
11762
11850
|
|
|
11763
11851
|
// src/components/date-time/datetime-picker/trigger-button.tsx
|
|
11764
11852
|
import { forwardRef as forwardRef5 } from "react";
|
|
11765
|
-
import { jsx as jsx100, jsxs as
|
|
11853
|
+
import { jsx as jsx100, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
11766
11854
|
var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
11767
11855
|
displayValue,
|
|
11768
11856
|
placeholder,
|
|
@@ -11777,7 +11865,7 @@ var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
|
11777
11865
|
"aria-label": ariaLabel
|
|
11778
11866
|
}, ref) {
|
|
11779
11867
|
const filled = variant === "filled";
|
|
11780
|
-
return /* @__PURE__ */
|
|
11868
|
+
return /* @__PURE__ */ jsxs68(
|
|
11781
11869
|
"button",
|
|
11782
11870
|
{
|
|
11783
11871
|
ref,
|
|
@@ -11814,7 +11902,7 @@ var DateTimeTriggerButton = forwardRef5(function DateTimeTriggerButton2({
|
|
|
11814
11902
|
});
|
|
11815
11903
|
|
|
11816
11904
|
// src/components/date-time/datetime-picker/input-shell.tsx
|
|
11817
|
-
import { jsx as jsx101, jsxs as
|
|
11905
|
+
import { jsx as jsx101, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
11818
11906
|
function DateInputShell({
|
|
11819
11907
|
label,
|
|
11820
11908
|
placeholder,
|
|
@@ -11861,14 +11949,26 @@ function DateInputShell({
|
|
|
11861
11949
|
"aria-label": ariaLabel
|
|
11862
11950
|
}
|
|
11863
11951
|
);
|
|
11864
|
-
const wrapper = /* @__PURE__ */
|
|
11865
|
-
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: [
|
|
11866
11954
|
label,
|
|
11867
11955
|
required || withAsterisk ? /* @__PURE__ */ jsx101("span", { className: "ml-0.5 text-destructive", "aria-hidden": true, children: "*" }) : null
|
|
11868
11956
|
] }) : null,
|
|
11869
11957
|
description ? /* @__PURE__ */ jsx101("p", { className: "mb-1.5 text-xs text-muted-foreground", children: description }) : null,
|
|
11870
|
-
/* @__PURE__ */
|
|
11871
|
-
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
|
+
),
|
|
11872
11972
|
showClear && /* @__PURE__ */ jsx101(
|
|
11873
11973
|
"button",
|
|
11874
11974
|
{
|
|
@@ -11879,7 +11979,7 @@ function DateInputShell({
|
|
|
11879
11979
|
},
|
|
11880
11980
|
className: "absolute right-2.5 top-1/2 -translate-y-1/2 rounded-sm p-0.5 text-muted-foreground hover:text-foreground",
|
|
11881
11981
|
"aria-label": "Clear",
|
|
11882
|
-
children: /* @__PURE__ */
|
|
11982
|
+
children: /* @__PURE__ */ jsxs69(
|
|
11883
11983
|
"svg",
|
|
11884
11984
|
{
|
|
11885
11985
|
className: "size-3.5",
|
|
@@ -11905,7 +12005,7 @@ function DateInputShell({
|
|
|
11905
12005
|
)
|
|
11906
12006
|
] }),
|
|
11907
12007
|
error ? /* @__PURE__ */ jsx101("p", { className: "mt-1.5 text-xs text-destructive", children: error }) : null,
|
|
11908
|
-
dropdownType === "modal" ? /* @__PURE__ */
|
|
12008
|
+
dropdownType === "modal" ? /* @__PURE__ */ jsxs69(
|
|
11909
12009
|
DialogContent,
|
|
11910
12010
|
{
|
|
11911
12011
|
className: cn(
|
|
@@ -12126,7 +12226,7 @@ function DateCalendar(props) {
|
|
|
12126
12226
|
import { forwardRef as forwardRef7 } from "react";
|
|
12127
12227
|
|
|
12128
12228
|
// src/components/date-time/datetime-picker/dropdown-content.tsx
|
|
12129
|
-
import { Fragment as Fragment18, jsx as jsx104, jsxs as
|
|
12229
|
+
import { Fragment as Fragment18, jsx as jsx104, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
12130
12230
|
var ChevronLeft2 = /* @__PURE__ */ jsx104(
|
|
12131
12231
|
"svg",
|
|
12132
12232
|
{
|
|
@@ -12176,9 +12276,9 @@ function TimeRow({
|
|
|
12176
12276
|
const hourVal = String(hour12);
|
|
12177
12277
|
const minVal = timeM ? pad2(Number.parseInt(timeM, 10)) : "00";
|
|
12178
12278
|
const secVal = timeS ? pad2(Number.parseInt(timeS, 10)) : "00";
|
|
12179
|
-
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: [
|
|
12180
12280
|
/* @__PURE__ */ jsx104("legend", { className: "sr-only", children: "Time" }),
|
|
12181
|
-
/* @__PURE__ */
|
|
12281
|
+
/* @__PURE__ */ jsxs70(Select, { value: hourVal, onValueChange: (v) => setHour12(Number(v), ampm), children: [
|
|
12182
12282
|
/* @__PURE__ */ jsx104(
|
|
12183
12283
|
SelectTrigger,
|
|
12184
12284
|
{
|
|
@@ -12191,7 +12291,7 @@ function TimeRow({
|
|
|
12191
12291
|
/* @__PURE__ */ jsx104(SelectContent, { ...TIME_SELECT_CONTENT_PROPS, children: HOURS_12.map((h) => /* @__PURE__ */ jsx104(SelectItem, { value: String(h), children: pad2(h) }, h)) })
|
|
12192
12292
|
] }),
|
|
12193
12293
|
/* @__PURE__ */ jsx104("span", { className: "text-muted-foreground", children: ":" }),
|
|
12194
|
-
/* @__PURE__ */
|
|
12294
|
+
/* @__PURE__ */ jsxs70(
|
|
12195
12295
|
Select,
|
|
12196
12296
|
{
|
|
12197
12297
|
value: minVal,
|
|
@@ -12212,9 +12312,9 @@ function TimeRow({
|
|
|
12212
12312
|
]
|
|
12213
12313
|
}
|
|
12214
12314
|
),
|
|
12215
|
-
withSeconds && /* @__PURE__ */
|
|
12315
|
+
withSeconds && /* @__PURE__ */ jsxs70(Fragment18, { children: [
|
|
12216
12316
|
/* @__PURE__ */ jsx104("span", { className: "text-muted-foreground", children: ":" }),
|
|
12217
|
-
/* @__PURE__ */
|
|
12317
|
+
/* @__PURE__ */ jsxs70(
|
|
12218
12318
|
Select,
|
|
12219
12319
|
{
|
|
12220
12320
|
value: secVal,
|
|
@@ -12286,7 +12386,7 @@ function DateTimeDropdownContent({
|
|
|
12286
12386
|
hasPresets
|
|
12287
12387
|
}) {
|
|
12288
12388
|
const monthShortList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
12289
|
-
return /* @__PURE__ */
|
|
12389
|
+
return /* @__PURE__ */ jsxs70("div", { className: "flex", children: [
|
|
12290
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(
|
|
12291
12391
|
"button",
|
|
12292
12392
|
{
|
|
@@ -12297,7 +12397,7 @@ function DateTimeDropdownContent({
|
|
|
12297
12397
|
},
|
|
12298
12398
|
preset.label
|
|
12299
12399
|
)) }) : null,
|
|
12300
|
-
/* @__PURE__ */
|
|
12400
|
+
/* @__PURE__ */ jsxs70(
|
|
12301
12401
|
"div",
|
|
12302
12402
|
{
|
|
12303
12403
|
className: cn(
|
|
@@ -12307,7 +12407,7 @@ function DateTimeDropdownContent({
|
|
|
12307
12407
|
hasPresets && presets?.length && "flex-1"
|
|
12308
12408
|
),
|
|
12309
12409
|
children: [
|
|
12310
|
-
/* @__PURE__ */
|
|
12410
|
+
/* @__PURE__ */ jsxs70("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
12311
12411
|
/* @__PURE__ */ jsx104(
|
|
12312
12412
|
"button",
|
|
12313
12413
|
{
|
|
@@ -12338,7 +12438,7 @@ function DateTimeDropdownContent({
|
|
|
12338
12438
|
}
|
|
12339
12439
|
)
|
|
12340
12440
|
] }),
|
|
12341
|
-
view === "days" && /* @__PURE__ */
|
|
12441
|
+
view === "days" && /* @__PURE__ */ jsxs70(Fragment18, { children: [
|
|
12342
12442
|
/* @__PURE__ */ jsx104("div", { className: "mb-0.5 grid grid-cols-7", children: WEEKDAYS.map((wd, i) => /* @__PURE__ */ jsx104(
|
|
12343
12443
|
"div",
|
|
12344
12444
|
{
|
|
@@ -12435,8 +12535,8 @@ function DateTimeDropdownContent({
|
|
|
12435
12535
|
onTimeSChange
|
|
12436
12536
|
}
|
|
12437
12537
|
),
|
|
12438
|
-
/* @__PURE__ */
|
|
12439
|
-
/* @__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: [
|
|
12440
12540
|
/* @__PURE__ */ jsx104(
|
|
12441
12541
|
"button",
|
|
12442
12542
|
{
|
|
@@ -13079,7 +13179,7 @@ function TimeGrid({
|
|
|
13079
13179
|
|
|
13080
13180
|
// src/components/date-time/datetime-picker/time-input.tsx
|
|
13081
13181
|
import { useCallback as useCallback13, useEffect as useEffect18, useState as useState30 } from "react";
|
|
13082
|
-
import { Fragment as Fragment19, jsx as jsx108, jsxs as
|
|
13182
|
+
import { Fragment as Fragment19, jsx as jsx108, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
13083
13183
|
function TimeInput({
|
|
13084
13184
|
value,
|
|
13085
13185
|
onChange,
|
|
@@ -13145,7 +13245,7 @@ function TimeInput({
|
|
|
13145
13245
|
}
|
|
13146
13246
|
commit(nh || h, nm || m, withSeconds ? ns || s : "00");
|
|
13147
13247
|
}, [h, m, s, commit, withSeconds]);
|
|
13148
|
-
return /* @__PURE__ */
|
|
13248
|
+
return /* @__PURE__ */ jsxs71(
|
|
13149
13249
|
"fieldset",
|
|
13150
13250
|
{
|
|
13151
13251
|
className: cn(
|
|
@@ -13187,7 +13287,7 @@ function TimeInput({
|
|
|
13187
13287
|
className: "w-7 shrink-0 border-0 bg-transparent text-center text-sm text-foreground outline-none placeholder:text-muted-foreground"
|
|
13188
13288
|
}
|
|
13189
13289
|
),
|
|
13190
|
-
withSeconds && /* @__PURE__ */
|
|
13290
|
+
withSeconds && /* @__PURE__ */ jsxs71(Fragment19, { children: [
|
|
13191
13291
|
/* @__PURE__ */ jsx108("span", { className: "select-none text-sm text-muted-foreground", children: ":" }),
|
|
13192
13292
|
/* @__PURE__ */ jsx108(
|
|
13193
13293
|
"input",
|
|
@@ -13331,7 +13431,7 @@ function useMiniCalendar(props) {
|
|
|
13331
13431
|
}
|
|
13332
13432
|
|
|
13333
13433
|
// src/components/date-time/mini-calendar/mini-calendar.tsx
|
|
13334
|
-
import { jsx as jsx110, jsxs as
|
|
13434
|
+
import { jsx as jsx110, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
13335
13435
|
var ChevronLeft3 = /* @__PURE__ */ jsx110(
|
|
13336
13436
|
"svg",
|
|
13337
13437
|
{
|
|
@@ -13378,7 +13478,7 @@ function MiniCalendar({
|
|
|
13378
13478
|
type: _nextType,
|
|
13379
13479
|
...nextSpread
|
|
13380
13480
|
} = nextControlProps ?? {};
|
|
13381
|
-
return /* @__PURE__ */
|
|
13481
|
+
return /* @__PURE__ */ jsxs72(
|
|
13382
13482
|
"div",
|
|
13383
13483
|
{
|
|
13384
13484
|
className: cn("flex w-full max-w-full items-stretch gap-0.5", className),
|
|
@@ -13424,7 +13524,7 @@ function MiniCalendar({
|
|
|
13424
13524
|
...userRest
|
|
13425
13525
|
} = user;
|
|
13426
13526
|
const disabled = dayDisabled || !!userDisabled;
|
|
13427
|
-
return /* @__PURE__ */
|
|
13527
|
+
return /* @__PURE__ */ jsxs72(
|
|
13428
13528
|
"button",
|
|
13429
13529
|
{
|
|
13430
13530
|
type: "button",
|
|
@@ -13498,7 +13598,7 @@ function MiniCalendar({
|
|
|
13498
13598
|
}
|
|
13499
13599
|
|
|
13500
13600
|
// src/components/date-time/month-picker/picker-content.tsx
|
|
13501
|
-
import { jsx as jsx111, jsxs as
|
|
13601
|
+
import { jsx as jsx111, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
13502
13602
|
var ChevronLeft4 = /* @__PURE__ */ jsx111(
|
|
13503
13603
|
"svg",
|
|
13504
13604
|
{
|
|
@@ -13545,8 +13645,8 @@ function MonthPickerContent({
|
|
|
13545
13645
|
isRangeEnd
|
|
13546
13646
|
}) {
|
|
13547
13647
|
const monthList = calendarType === "EC" ? EC_MONTHS_SHORT : MONTHS_SHORT;
|
|
13548
|
-
return /* @__PURE__ */
|
|
13549
|
-
/* @__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: [
|
|
13550
13650
|
/* @__PURE__ */ jsx111(
|
|
13551
13651
|
"button",
|
|
13552
13652
|
{
|
|
@@ -13590,7 +13690,7 @@ function MonthPickerContent({
|
|
|
13590
13690
|
const showStrip = hasRange && (inRange || (rStart || rEnd) && !(rStart && rEnd));
|
|
13591
13691
|
return (
|
|
13592
13692
|
/* biome-ignore lint/a11y/useSemanticElements: calendar cell, not a form fieldset */
|
|
13593
|
-
/* @__PURE__ */
|
|
13693
|
+
/* @__PURE__ */ jsxs73(
|
|
13594
13694
|
"div",
|
|
13595
13695
|
{
|
|
13596
13696
|
role: "group",
|
|
@@ -13659,7 +13759,7 @@ function MonthPickerContent({
|
|
|
13659
13759
|
y
|
|
13660
13760
|
);
|
|
13661
13761
|
}) }),
|
|
13662
|
-
/* @__PURE__ */
|
|
13762
|
+
/* @__PURE__ */ jsxs73("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
|
|
13663
13763
|
/* @__PURE__ */ jsx111(
|
|
13664
13764
|
"button",
|
|
13665
13765
|
{
|
|
@@ -14224,8 +14324,8 @@ var MonthPickerInput = forwardRef8(function MonthPickerInput2(props, ref) {
|
|
|
14224
14324
|
import { forwardRef as forwardRef9 } from "react";
|
|
14225
14325
|
|
|
14226
14326
|
// src/components/date-time/time-picker/time-picker-content.tsx
|
|
14227
|
-
import { Fragment as Fragment20, jsx as jsx114, jsxs as
|
|
14228
|
-
var CheckIcon = /* @__PURE__ */
|
|
14327
|
+
import { Fragment as Fragment20, jsx as jsx114, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
14328
|
+
var CheckIcon = /* @__PURE__ */ jsxs74(
|
|
14229
14329
|
"svg",
|
|
14230
14330
|
{
|
|
14231
14331
|
className: "size-4",
|
|
@@ -14253,8 +14353,8 @@ function TimePickerContent({
|
|
|
14253
14353
|
onTimeSChange,
|
|
14254
14354
|
onConfirm
|
|
14255
14355
|
}) {
|
|
14256
|
-
return /* @__PURE__ */ jsx114("div", { className: "p-3", children: /* @__PURE__ */
|
|
14257
|
-
/* @__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: [
|
|
14258
14358
|
/* @__PURE__ */ jsx114("legend", { className: "sr-only", children: "Time" }),
|
|
14259
14359
|
/* @__PURE__ */ jsx114(
|
|
14260
14360
|
"input",
|
|
@@ -14291,7 +14391,7 @@ function TimePickerContent({
|
|
|
14291
14391
|
className: "w-7 shrink-0 border-0 bg-transparent text-center text-sm text-foreground outline-none placeholder:text-muted-foreground"
|
|
14292
14392
|
}
|
|
14293
14393
|
),
|
|
14294
|
-
withSeconds && /* @__PURE__ */
|
|
14394
|
+
withSeconds && /* @__PURE__ */ jsxs74(Fragment20, { children: [
|
|
14295
14395
|
/* @__PURE__ */ jsx114("span", { className: "select-none px-1 text-sm text-muted-foreground", children: ":" }),
|
|
14296
14396
|
/* @__PURE__ */ jsx114(
|
|
14297
14397
|
"input",
|
|
@@ -14520,7 +14620,7 @@ var TimePicker = forwardRef9(
|
|
|
14520
14620
|
);
|
|
14521
14621
|
|
|
14522
14622
|
// src/components/date-time/year-picker/picker-content.tsx
|
|
14523
|
-
import { jsx as jsx116, jsxs as
|
|
14623
|
+
import { jsx as jsx116, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
14524
14624
|
var ChevronLeft5 = /* @__PURE__ */ jsx116(
|
|
14525
14625
|
"svg",
|
|
14526
14626
|
{
|
|
@@ -14559,8 +14659,8 @@ function YearPickerContent({
|
|
|
14559
14659
|
isRangeStart,
|
|
14560
14660
|
isRangeEnd
|
|
14561
14661
|
}) {
|
|
14562
|
-
return /* @__PURE__ */
|
|
14563
|
-
/* @__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: [
|
|
14564
14664
|
/* @__PURE__ */ jsx116(
|
|
14565
14665
|
"button",
|
|
14566
14666
|
{
|
|
@@ -14620,7 +14720,7 @@ function YearPickerContent({
|
|
|
14620
14720
|
})
|
|
14621
14721
|
}
|
|
14622
14722
|
),
|
|
14623
|
-
/* @__PURE__ */
|
|
14723
|
+
/* @__PURE__ */ jsxs75("div", { className: "mt-2 flex justify-end gap-1 border-t border-border pt-2", children: [
|
|
14624
14724
|
/* @__PURE__ */ jsx116(
|
|
14625
14725
|
"button",
|
|
14626
14726
|
{
|
|
@@ -15039,7 +15139,7 @@ var YearPickerInput = forwardRef10(function YearPickerInput2(props, ref) {
|
|
|
15039
15139
|
// src/components/ui/accordion.tsx
|
|
15040
15140
|
import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
|
|
15041
15141
|
import { IconChevronDown as IconChevronDown6, IconChevronUp as IconChevronUp3 } from "@tabler/icons-react";
|
|
15042
|
-
import { Fragment as Fragment21, jsx as jsx119, jsxs as
|
|
15142
|
+
import { Fragment as Fragment21, jsx as jsx119, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
15043
15143
|
var ACCORDION_ROOT_BASE_CN = "flex w-full flex-col";
|
|
15044
15144
|
var ACCORDION_TRIGGER_BASE_CN = cn(
|
|
15045
15145
|
"group/accordion-trigger relative flex flex-1 items-start justify-between",
|
|
@@ -15101,7 +15201,7 @@ function AccordionTrigger({
|
|
|
15101
15201
|
...props
|
|
15102
15202
|
}) {
|
|
15103
15203
|
const showChevron = chevron !== null;
|
|
15104
|
-
return /* @__PURE__ */ jsx119(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */
|
|
15204
|
+
return /* @__PURE__ */ jsx119(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs76(
|
|
15105
15205
|
AccordionPrimitive.Trigger,
|
|
15106
15206
|
{
|
|
15107
15207
|
"data-slot": "accordion-trigger",
|
|
@@ -15112,7 +15212,7 @@ function AccordionTrigger({
|
|
|
15112
15212
|
),
|
|
15113
15213
|
...props,
|
|
15114
15214
|
children: [
|
|
15115
|
-
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: [
|
|
15116
15216
|
/* @__PURE__ */ jsx119(
|
|
15117
15217
|
IconChevronDown6,
|
|
15118
15218
|
{
|
|
@@ -15130,7 +15230,7 @@ function AccordionTrigger({
|
|
|
15130
15230
|
] }) }),
|
|
15131
15231
|
icon && /* @__PURE__ */ jsx119("span", { className: "text-muted-foreground mr-2 inline-flex shrink-0", children: icon }),
|
|
15132
15232
|
children,
|
|
15133
|
-
showChevron && chevronPosition !== "left" && (chevron ?? /* @__PURE__ */
|
|
15233
|
+
showChevron && chevronPosition !== "left" && (chevron ?? /* @__PURE__ */ jsxs76(Fragment21, { children: [
|
|
15134
15234
|
/* @__PURE__ */ jsx119(
|
|
15135
15235
|
IconChevronDown6,
|
|
15136
15236
|
{
|
|
@@ -15185,7 +15285,7 @@ function AccordionContent({
|
|
|
15185
15285
|
// src/components/ui/action-icon.tsx
|
|
15186
15286
|
import { useRender as useRender5 } from "@base-ui/react/use-render";
|
|
15187
15287
|
import { cva as cva10 } from "class-variance-authority";
|
|
15188
|
-
import { Fragment as Fragment22, jsx as jsx120, jsxs as
|
|
15288
|
+
import { Fragment as Fragment22, jsx as jsx120, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
15189
15289
|
var actionIconVariants = cva10(
|
|
15190
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]",
|
|
15191
15291
|
{
|
|
@@ -15256,7 +15356,7 @@ function ActionIcon({
|
|
|
15256
15356
|
color && "bg-[var(--action-icon-color)] hover:bg-[var(--action-icon-color-hover)]",
|
|
15257
15357
|
className
|
|
15258
15358
|
),
|
|
15259
|
-
children: /* @__PURE__ */
|
|
15359
|
+
children: /* @__PURE__ */ jsxs77(Fragment22, { children: [
|
|
15260
15360
|
loading && /* @__PURE__ */ jsx120("span", { className: "cn-action-icon-loader absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx120(
|
|
15261
15361
|
Spinner,
|
|
15262
15362
|
{
|
|
@@ -15451,8 +15551,9 @@ function Anchor({
|
|
|
15451
15551
|
|
|
15452
15552
|
// src/components/ui/angle-slider.tsx
|
|
15453
15553
|
import { useCallback as useCallback20, useRef as useRef13, useState as useState35 } from "react";
|
|
15454
|
-
import { jsx as jsx124, jsxs as
|
|
15554
|
+
import { jsx as jsx124, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
15455
15555
|
var TAU = 2 * Math.PI;
|
|
15556
|
+
var px = (n) => `${Math.round(n * 1e4) / 1e4}px`;
|
|
15456
15557
|
function AngleSlider({
|
|
15457
15558
|
className,
|
|
15458
15559
|
value: valueProp,
|
|
@@ -15531,7 +15632,7 @@ function AngleSlider({
|
|
|
15531
15632
|
const innerInset = Math.max(12, Math.round(size * 0.18));
|
|
15532
15633
|
const thumbX = size / 2 + r * Math.cos(angleRad) - thumbOffset;
|
|
15533
15634
|
const thumbY = size / 2 + r * Math.sin(angleRad) - thumbOffset;
|
|
15534
|
-
return /* @__PURE__ */
|
|
15635
|
+
return /* @__PURE__ */ jsxs78(
|
|
15535
15636
|
"div",
|
|
15536
15637
|
{
|
|
15537
15638
|
ref,
|
|
@@ -15548,11 +15649,11 @@ function AngleSlider({
|
|
|
15548
15649
|
disabled && "pointer-events-none cursor-not-allowed opacity-50",
|
|
15549
15650
|
className
|
|
15550
15651
|
),
|
|
15551
|
-
style: { width: size, height: size },
|
|
15652
|
+
style: { width: px(size), height: px(size) },
|
|
15552
15653
|
onPointerDown: handlePointerDown,
|
|
15553
15654
|
...props,
|
|
15554
15655
|
children: [
|
|
15555
|
-
/* @__PURE__ */
|
|
15656
|
+
/* @__PURE__ */ jsxs78(
|
|
15556
15657
|
"svg",
|
|
15557
15658
|
{
|
|
15558
15659
|
className: "absolute inset-0 size-full",
|
|
@@ -15594,7 +15695,7 @@ function AngleSlider({
|
|
|
15594
15695
|
{
|
|
15595
15696
|
className: "cn-angle-slider-inner absolute",
|
|
15596
15697
|
style: {
|
|
15597
|
-
inset: innerInset
|
|
15698
|
+
inset: px(innerInset)
|
|
15598
15699
|
}
|
|
15599
15700
|
}
|
|
15600
15701
|
),
|
|
@@ -15604,10 +15705,10 @@ function AngleSlider({
|
|
|
15604
15705
|
"data-slot": "angle-slider-thumb",
|
|
15605
15706
|
className: "cn-angle-slider-thumb absolute",
|
|
15606
15707
|
style: {
|
|
15607
|
-
width: thumbSize,
|
|
15608
|
-
height: thumbSize,
|
|
15609
|
-
left: thumbX,
|
|
15610
|
-
top: thumbY
|
|
15708
|
+
width: px(thumbSize),
|
|
15709
|
+
height: px(thumbSize),
|
|
15710
|
+
left: px(thumbX),
|
|
15711
|
+
top: px(thumbY)
|
|
15611
15712
|
}
|
|
15612
15713
|
}
|
|
15613
15714
|
),
|
|
@@ -15622,7 +15723,7 @@ import { useMesob as useMesob8 } from "@mesob/ui/providers";
|
|
|
15622
15723
|
import { IconChevronDown as IconChevronDown7 } from "@tabler/icons-react";
|
|
15623
15724
|
import { motion } from "motion/react";
|
|
15624
15725
|
import { useLayoutEffect as useLayoutEffect2, useMemo as useMemo12, useRef as useRef14, useState as useState36 } from "react";
|
|
15625
|
-
import { jsx as jsx125, jsxs as
|
|
15726
|
+
import { jsx as jsx125, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
15626
15727
|
function AnimatedTabs({
|
|
15627
15728
|
tabs,
|
|
15628
15729
|
activeTab: controlledActiveTab,
|
|
@@ -15802,13 +15903,13 @@ function AnimatedTabs({
|
|
|
15802
15903
|
tab.value
|
|
15803
15904
|
);
|
|
15804
15905
|
};
|
|
15805
|
-
return /* @__PURE__ */
|
|
15906
|
+
return /* @__PURE__ */ jsxs79(
|
|
15806
15907
|
"div",
|
|
15807
15908
|
{
|
|
15808
15909
|
"data-slot": "animated-tabs",
|
|
15809
15910
|
className: cn("cn-animated-tabs flex flex-col", className),
|
|
15810
15911
|
children: [
|
|
15811
|
-
/* @__PURE__ */ jsx125("div", { ref: containerRef, className: "w-full", children: /* @__PURE__ */
|
|
15912
|
+
/* @__PURE__ */ jsx125("div", { ref: containerRef, className: "w-full", children: /* @__PURE__ */ jsxs79(
|
|
15812
15913
|
"div",
|
|
15813
15914
|
{
|
|
15814
15915
|
ref: tabsListRef,
|
|
@@ -15819,8 +15920,8 @@ function AnimatedTabs({
|
|
|
15819
15920
|
const originalIndex = tabs.findIndex((t) => t.value === tab.value);
|
|
15820
15921
|
return renderTab(tab, originalIndex);
|
|
15821
15922
|
}),
|
|
15822
|
-
overflowTabs.length > 0 && /* @__PURE__ */
|
|
15823
|
-
/* @__PURE__ */
|
|
15923
|
+
overflowTabs.length > 0 && /* @__PURE__ */ jsxs79(DropdownMenu, { children: [
|
|
15924
|
+
/* @__PURE__ */ jsxs79(
|
|
15824
15925
|
DropdownMenuTrigger,
|
|
15825
15926
|
{
|
|
15826
15927
|
ref: dropdownTriggerRef,
|
|
@@ -15912,7 +16013,7 @@ function BackgroundImage({
|
|
|
15912
16013
|
// src/components/ui/badge.tsx
|
|
15913
16014
|
import { useRender as useRender6 } from "@base-ui/react/use-render";
|
|
15914
16015
|
import { cva as cva12 } from "class-variance-authority";
|
|
15915
|
-
import { Fragment as Fragment23, jsx as jsx128, jsxs as
|
|
16016
|
+
import { Fragment as Fragment23, jsx as jsx128, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
15916
16017
|
var BADGE_VARIANT_CN = {
|
|
15917
16018
|
default: "cn-badge-variant-default",
|
|
15918
16019
|
secondary: "cn-badge-variant-secondary",
|
|
@@ -15994,7 +16095,7 @@ function Badge({
|
|
|
15994
16095
|
color && "bg-[var(--badge-color)] text-[var(--badge-color-fg)]",
|
|
15995
16096
|
className
|
|
15996
16097
|
),
|
|
15997
|
-
children: /* @__PURE__ */
|
|
16098
|
+
children: /* @__PURE__ */ jsxs80(Fragment23, { children: [
|
|
15998
16099
|
leftSection,
|
|
15999
16100
|
children,
|
|
16000
16101
|
rightSection
|
|
@@ -16360,7 +16461,7 @@ function CalendarDayButton({
|
|
|
16360
16461
|
import { IconChevronLeft as IconChevronLeft3, IconChevronRight as IconChevronRight6 } from "@tabler/icons-react";
|
|
16361
16462
|
import useEmblaCarousel from "embla-carousel-react";
|
|
16362
16463
|
import * as React12 from "react";
|
|
16363
|
-
import { jsx as jsx133, jsxs as
|
|
16464
|
+
import { jsx as jsx133, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
16364
16465
|
var CarouselContext = React12.createContext(null);
|
|
16365
16466
|
function useCarousel() {
|
|
16366
16467
|
const context = React12.useContext(CarouselContext);
|
|
@@ -16501,7 +16602,7 @@ function CarouselPrevious({
|
|
|
16501
16602
|
...props
|
|
16502
16603
|
}) {
|
|
16503
16604
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
16504
|
-
return /* @__PURE__ */
|
|
16605
|
+
return /* @__PURE__ */ jsxs81(
|
|
16505
16606
|
Button,
|
|
16506
16607
|
{
|
|
16507
16608
|
"data-slot": "carousel-previous",
|
|
@@ -16529,7 +16630,7 @@ function CarouselNext({
|
|
|
16529
16630
|
...props
|
|
16530
16631
|
}) {
|
|
16531
16632
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
16532
|
-
return /* @__PURE__ */
|
|
16633
|
+
return /* @__PURE__ */ jsxs81(
|
|
16533
16634
|
Button,
|
|
16534
16635
|
{
|
|
16535
16636
|
"data-slot": "carousel-next",
|
|
@@ -16572,7 +16673,7 @@ function Center({ className, inline, children, ...props }) {
|
|
|
16572
16673
|
// src/components/ui/chart.tsx
|
|
16573
16674
|
import * as React13 from "react";
|
|
16574
16675
|
import * as RechartsPrimitive from "recharts";
|
|
16575
|
-
import { Fragment as Fragment24, jsx as jsx135, jsxs as
|
|
16676
|
+
import { Fragment as Fragment24, jsx as jsx135, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
16576
16677
|
var THEMES = { light: "", dark: ".dark" };
|
|
16577
16678
|
var sanitizeToken = (value) => value.replace(/[^a-zA-Z0-9-_]/g, "");
|
|
16578
16679
|
var ChartContext = React13.createContext(null);
|
|
@@ -16594,7 +16695,7 @@ function ChartContainer({
|
|
|
16594
16695
|
const sanitizedUniqueId = sanitizeToken(uniqueId);
|
|
16595
16696
|
const chartToken = id ? sanitizeToken(id) : sanitizedUniqueId;
|
|
16596
16697
|
const chartId = `chart-${chartToken || sanitizedUniqueId}`;
|
|
16597
|
-
return /* @__PURE__ */ jsx135(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */
|
|
16698
|
+
return /* @__PURE__ */ jsx135(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs82(
|
|
16598
16699
|
"div",
|
|
16599
16700
|
{
|
|
16600
16701
|
"data-slot": "chart",
|
|
@@ -16673,7 +16774,7 @@ function ChartTooltipContent({
|
|
|
16673
16774
|
return null;
|
|
16674
16775
|
}
|
|
16675
16776
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
16676
|
-
return /* @__PURE__ */
|
|
16777
|
+
return /* @__PURE__ */ jsxs82(
|
|
16677
16778
|
"div",
|
|
16678
16779
|
{
|
|
16679
16780
|
className: cn(
|
|
@@ -16693,7 +16794,7 @@ function ChartTooltipContent({
|
|
|
16693
16794
|
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
|
16694
16795
|
indicator === "dot" && "items-center"
|
|
16695
16796
|
),
|
|
16696
|
-
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: [
|
|
16697
16798
|
itemConfig?.icon ? /* @__PURE__ */ jsx135(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx135(
|
|
16698
16799
|
"div",
|
|
16699
16800
|
{
|
|
@@ -16712,7 +16813,7 @@ function ChartTooltipContent({
|
|
|
16712
16813
|
}
|
|
16713
16814
|
}
|
|
16714
16815
|
),
|
|
16715
|
-
/* @__PURE__ */
|
|
16816
|
+
/* @__PURE__ */ jsxs82(
|
|
16716
16817
|
"div",
|
|
16717
16818
|
{
|
|
16718
16819
|
className: cn(
|
|
@@ -16720,7 +16821,7 @@ function ChartTooltipContent({
|
|
|
16720
16821
|
nestLabel ? "items-end" : "items-center"
|
|
16721
16822
|
),
|
|
16722
16823
|
children: [
|
|
16723
|
-
/* @__PURE__ */
|
|
16824
|
+
/* @__PURE__ */ jsxs82("div", { className: "grid gap-1.5", children: [
|
|
16724
16825
|
nestLabel ? tooltipLabel : null,
|
|
16725
16826
|
/* @__PURE__ */ jsx135("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
16726
16827
|
] }),
|
|
@@ -16760,7 +16861,7 @@ function ChartLegendContent({
|
|
|
16760
16861
|
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
16761
16862
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
16762
16863
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
16763
|
-
return /* @__PURE__ */
|
|
16864
|
+
return /* @__PURE__ */ jsxs82(
|
|
16764
16865
|
"div",
|
|
16765
16866
|
{
|
|
16766
16867
|
className: cn(
|
|
@@ -17123,7 +17224,7 @@ function hasAlpha(format) {
|
|
|
17123
17224
|
import { useCallback as useCallback21, useEffect as useEffect24, useRef as useRef16, useState as useState38 } from "react";
|
|
17124
17225
|
|
|
17125
17226
|
// src/components/ui/color-swatch.tsx
|
|
17126
|
-
import { jsx as jsx139, jsxs as
|
|
17227
|
+
import { jsx as jsx139, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
17127
17228
|
var radiusClasses = {
|
|
17128
17229
|
xs: "rounded-[var(--radius-xs)]",
|
|
17129
17230
|
sm: "rounded-[var(--radius-sm)]",
|
|
@@ -17143,7 +17244,7 @@ function ColorSwatch({
|
|
|
17143
17244
|
...props
|
|
17144
17245
|
}) {
|
|
17145
17246
|
const sizeStyle = typeof size === "number" ? { width: size, height: size, minWidth: size, minHeight: size } : { width: size, height: size, minWidth: size, minHeight: size };
|
|
17146
|
-
return /* @__PURE__ */
|
|
17247
|
+
return /* @__PURE__ */ jsxs83(
|
|
17147
17248
|
"div",
|
|
17148
17249
|
{
|
|
17149
17250
|
"data-slot": "color-swatch",
|
|
@@ -17170,7 +17271,7 @@ function ColorSwatch({
|
|
|
17170
17271
|
}
|
|
17171
17272
|
|
|
17172
17273
|
// src/components/ui/color-picker.tsx
|
|
17173
|
-
import { Fragment as Fragment25, jsx as jsx140, jsxs as
|
|
17274
|
+
import { Fragment as Fragment25, jsx as jsx140, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
17174
17275
|
var SATURATION_HEIGHT = {
|
|
17175
17276
|
xs: 80,
|
|
17176
17277
|
sm: 100,
|
|
@@ -17387,7 +17488,7 @@ function ColorPicker({
|
|
|
17387
17488
|
const showAlpha = hasAlpha(format);
|
|
17388
17489
|
const satHeight = SATURATION_HEIGHT[size];
|
|
17389
17490
|
const thumbSize = THUMB_SIZE[size];
|
|
17390
|
-
const pickerEl = /* @__PURE__ */
|
|
17491
|
+
const pickerEl = /* @__PURE__ */ jsxs84(
|
|
17391
17492
|
"div",
|
|
17392
17493
|
{
|
|
17393
17494
|
className: cn(
|
|
@@ -17401,7 +17502,7 @@ function ColorPicker({
|
|
|
17401
17502
|
"--cp-thumb-size": `${thumbSize}px`
|
|
17402
17503
|
},
|
|
17403
17504
|
children: [
|
|
17404
|
-
withPicker && /* @__PURE__ */
|
|
17505
|
+
withPicker && /* @__PURE__ */ jsxs84(Fragment25, { children: [
|
|
17405
17506
|
/* @__PURE__ */ jsx140(
|
|
17406
17507
|
"div",
|
|
17407
17508
|
{
|
|
@@ -17438,7 +17539,7 @@ function ColorPicker({
|
|
|
17438
17539
|
)
|
|
17439
17540
|
}
|
|
17440
17541
|
),
|
|
17441
|
-
/* @__PURE__ */
|
|
17542
|
+
/* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1", children: [
|
|
17442
17543
|
hueLabel && /* @__PURE__ */ jsx140("span", { className: "text-muted-foreground text-xs", children: hueLabel }),
|
|
17443
17544
|
/* @__PURE__ */ jsx140(
|
|
17444
17545
|
HueAlphaSlider,
|
|
@@ -17456,9 +17557,9 @@ function ColorPicker({
|
|
|
17456
17557
|
}
|
|
17457
17558
|
)
|
|
17458
17559
|
] }),
|
|
17459
|
-
showAlpha && /* @__PURE__ */
|
|
17560
|
+
showAlpha && /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1", children: [
|
|
17460
17561
|
alphaLabel && /* @__PURE__ */ jsx140("span", { className: "text-muted-foreground text-xs", children: alphaLabel }),
|
|
17461
|
-
/* @__PURE__ */
|
|
17562
|
+
/* @__PURE__ */ jsxs84("div", { className: "relative", children: [
|
|
17462
17563
|
/* @__PURE__ */ jsx140(
|
|
17463
17564
|
"div",
|
|
17464
17565
|
{
|
|
@@ -17485,7 +17586,7 @@ function ColorPicker({
|
|
|
17485
17586
|
)
|
|
17486
17587
|
] })
|
|
17487
17588
|
] }),
|
|
17488
|
-
showAlpha && /* @__PURE__ */
|
|
17589
|
+
showAlpha && /* @__PURE__ */ jsxs84("div", { className: "flex items-center gap-2", children: [
|
|
17489
17590
|
/* @__PURE__ */ jsx140(
|
|
17490
17591
|
ColorSwatch,
|
|
17491
17592
|
{
|
|
@@ -17588,7 +17689,7 @@ function ColorPicker({
|
|
|
17588
17689
|
}
|
|
17589
17690
|
|
|
17590
17691
|
// src/components/ui/color-input.tsx
|
|
17591
|
-
import { jsx as jsx141, jsxs as
|
|
17692
|
+
import { jsx as jsx141, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
17592
17693
|
var sizeClasses3 = {
|
|
17593
17694
|
xs: "h-7 text-xs px-2",
|
|
17594
17695
|
sm: "h-8 text-sm px-2.5",
|
|
@@ -17807,7 +17908,7 @@ var ColorInput = React14.forwardRef(
|
|
|
17807
17908
|
)
|
|
17808
17909
|
}
|
|
17809
17910
|
) : null;
|
|
17810
|
-
const inputEl = /* @__PURE__ */
|
|
17911
|
+
const inputEl = /* @__PURE__ */ jsxs85("div", { ref: anchorRef, className: "relative w-full", children: [
|
|
17811
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 }),
|
|
17812
17913
|
/* @__PURE__ */ jsx141(
|
|
17813
17914
|
Input,
|
|
@@ -17846,7 +17947,7 @@ var ColorInput = React14.forwardRef(
|
|
|
17846
17947
|
),
|
|
17847
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 })
|
|
17848
17949
|
] });
|
|
17849
|
-
const content = !withPopover || popoverDisabled ? inputEl : /* @__PURE__ */
|
|
17950
|
+
const content = !withPopover || popoverDisabled ? inputEl : /* @__PURE__ */ jsxs85(Popover, { open: dropdownOpened, onOpenChange: setDropdownOpened, children: [
|
|
17850
17951
|
inputEl,
|
|
17851
17952
|
/* @__PURE__ */ jsx141(
|
|
17852
17953
|
PopoverContent,
|
|
@@ -17921,7 +18022,7 @@ ColorInput.displayName = "ColorInput";
|
|
|
17921
18022
|
import { Combobox as ComboboxPrimitive } from "@base-ui/react/combobox";
|
|
17922
18023
|
import { IconCheck as IconCheck4, IconChevronDown as IconChevronDown9 } from "@tabler/icons-react";
|
|
17923
18024
|
import { useMemo as useMemo13, useState as useState40 } from "react";
|
|
17924
|
-
import { jsx as jsx142, jsxs as
|
|
18025
|
+
import { jsx as jsx142, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
17925
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)]";
|
|
17926
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";
|
|
17927
18028
|
function Combobox({
|
|
@@ -17947,7 +18048,7 @@ function Combobox({
|
|
|
17947
18048
|
const q = inputValue.toLowerCase();
|
|
17948
18049
|
return options.filter((o) => o.label.toLowerCase().includes(q));
|
|
17949
18050
|
}, [inputValue, options]);
|
|
17950
|
-
return /* @__PURE__ */
|
|
18051
|
+
return /* @__PURE__ */ jsxs86(
|
|
17951
18052
|
ComboboxPrimitive.Root,
|
|
17952
18053
|
{
|
|
17953
18054
|
"data-slot": "combobox",
|
|
@@ -17958,7 +18059,7 @@ function Combobox({
|
|
|
17958
18059
|
onValueChange: (next) => onValueChange?.(next ?? null),
|
|
17959
18060
|
...props,
|
|
17960
18061
|
children: [
|
|
17961
|
-
/* @__PURE__ */
|
|
18062
|
+
/* @__PURE__ */ jsxs86(InputGroup, { className: cn("w-auto", className), children: [
|
|
17962
18063
|
/* @__PURE__ */ jsx142(
|
|
17963
18064
|
ComboboxPrimitive.Input,
|
|
17964
18065
|
{
|
|
@@ -17971,36 +18072,44 @@ function Combobox({
|
|
|
17971
18072
|
)
|
|
17972
18073
|
}
|
|
17973
18074
|
),
|
|
17974
|
-
/* @__PURE__ */
|
|
17975
|
-
|
|
17976
|
-
|
|
17977
|
-
|
|
17978
|
-
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
|
|
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,
|
|
17982
18084
|
{
|
|
17983
|
-
|
|
17984
|
-
|
|
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,
|
|
18103
|
+
{
|
|
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" })
|
|
17985
18108
|
}
|
|
17986
|
-
) }),
|
|
17987
|
-
disabled,
|
|
17988
|
-
className: cn(
|
|
17989
|
-
showClear && "group-has-data-[slot=combobox-clear]/input-group:hidden",
|
|
17990
|
-
"data-pressed:bg-transparent"
|
|
17991
18109
|
)
|
|
17992
|
-
|
|
17993
|
-
|
|
17994
|
-
|
|
17995
|
-
ComboboxPrimitive.Clear,
|
|
17996
|
-
{
|
|
17997
|
-
"data-slot": "combobox-clear",
|
|
17998
|
-
render: /* @__PURE__ */ jsx142(InputGroupButton, { variant: "ghost", size: "icon-xs" }),
|
|
17999
|
-
disabled,
|
|
18000
|
-
children: /* @__PURE__ */ jsx142("span", { className: "sr-only", children: "Clear" })
|
|
18001
|
-
}
|
|
18002
|
-
)
|
|
18003
|
-
] })
|
|
18110
|
+
]
|
|
18111
|
+
}
|
|
18112
|
+
)
|
|
18004
18113
|
] }),
|
|
18005
18114
|
/* @__PURE__ */ jsx142(ComboboxPrimitive.Portal, { children: /* @__PURE__ */ jsx142(
|
|
18006
18115
|
ComboboxPrimitive.Positioner,
|
|
@@ -18027,7 +18136,7 @@ function Combobox({
|
|
|
18027
18136
|
className: "cn-combobox-empty",
|
|
18028
18137
|
children: emptyText
|
|
18029
18138
|
}
|
|
18030
|
-
) : filteredOptions.map((option) => /* @__PURE__ */
|
|
18139
|
+
) : filteredOptions.map((option) => /* @__PURE__ */ jsxs86(
|
|
18031
18140
|
ComboboxPrimitive.Item,
|
|
18032
18141
|
{
|
|
18033
18142
|
value: option.value,
|
|
@@ -18088,7 +18197,7 @@ var containerVariants = cva16("mx-auto w-full", {
|
|
|
18088
18197
|
function Container({
|
|
18089
18198
|
className,
|
|
18090
18199
|
size,
|
|
18091
|
-
px,
|
|
18200
|
+
px: px2,
|
|
18092
18201
|
fluid,
|
|
18093
18202
|
children,
|
|
18094
18203
|
...props
|
|
@@ -18099,7 +18208,7 @@ function Container({
|
|
|
18099
18208
|
"data-slot": "container",
|
|
18100
18209
|
className: cn(
|
|
18101
18210
|
"cn-container min-w-0 transition-[max-width,padding]",
|
|
18102
|
-
containerVariants({ size: fluid ? "fluid" : size, px }),
|
|
18211
|
+
containerVariants({ size: fluid ? "fluid" : size, px: px2 }),
|
|
18103
18212
|
className
|
|
18104
18213
|
),
|
|
18105
18214
|
...props,
|
|
@@ -18111,7 +18220,7 @@ function Container({
|
|
|
18111
18220
|
// src/components/ui/context-menu.tsx
|
|
18112
18221
|
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
|
|
18113
18222
|
import { IconCheck as IconCheck5, IconChevronRight as IconChevronRight7 } from "@tabler/icons-react";
|
|
18114
|
-
import { jsx as jsx144, jsxs as
|
|
18223
|
+
import { jsx as jsx144, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
18115
18224
|
var CONTEXT_MENU_POSITIONER_CN = "isolate z-50 outline-none";
|
|
18116
18225
|
var CONTEXT_MENU_CONTENT_CN = cn(
|
|
18117
18226
|
"cn-context-menu-content cn-context-menu-content-logical cn-menu-target",
|
|
@@ -18180,7 +18289,7 @@ function ContextMenuSubTrigger({
|
|
|
18180
18289
|
children,
|
|
18181
18290
|
...props
|
|
18182
18291
|
}) {
|
|
18183
|
-
return /* @__PURE__ */
|
|
18292
|
+
return /* @__PURE__ */ jsxs87(
|
|
18184
18293
|
ContextMenuPrimitive.SubmenuTrigger,
|
|
18185
18294
|
{
|
|
18186
18295
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -18292,7 +18401,7 @@ function ContextMenuCheckboxItem({
|
|
|
18292
18401
|
inset,
|
|
18293
18402
|
...props
|
|
18294
18403
|
}) {
|
|
18295
|
-
return /* @__PURE__ */
|
|
18404
|
+
return /* @__PURE__ */ jsxs87(
|
|
18296
18405
|
ContextMenuPrimitive.CheckboxItem,
|
|
18297
18406
|
{
|
|
18298
18407
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -18317,7 +18426,7 @@ function ContextMenuRadioItem({
|
|
|
18317
18426
|
inset,
|
|
18318
18427
|
...props
|
|
18319
18428
|
}) {
|
|
18320
|
-
return /* @__PURE__ */
|
|
18429
|
+
return /* @__PURE__ */ jsxs87(
|
|
18321
18430
|
ContextMenuPrimitive.RadioItem,
|
|
18322
18431
|
{
|
|
18323
18432
|
"data-slot": "context-menu-radio-item",
|
|
@@ -18430,7 +18539,7 @@ import {
|
|
|
18430
18539
|
useReactTable
|
|
18431
18540
|
} from "@tanstack/react-table";
|
|
18432
18541
|
import * as React15 from "react";
|
|
18433
|
-
import { jsx as jsx146, jsxs as
|
|
18542
|
+
import { jsx as jsx146, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
18434
18543
|
function DataTable({
|
|
18435
18544
|
columns,
|
|
18436
18545
|
data,
|
|
@@ -18518,7 +18627,7 @@ function DataTable({
|
|
|
18518
18627
|
getFacetedRowModel: getFacetedRowModel(),
|
|
18519
18628
|
getFacetedUniqueValues: getFacetedUniqueValues()
|
|
18520
18629
|
});
|
|
18521
|
-
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: [
|
|
18522
18631
|
/* @__PURE__ */ jsx146(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx146(TableRow, { children: headerGroup.headers.map((header, index) => {
|
|
18523
18632
|
const isFirst = index === 0;
|
|
18524
18633
|
const isLast = index === headerGroup.headers.length - 1;
|
|
@@ -18578,13 +18687,13 @@ function DataTable({
|
|
|
18578
18687
|
|
|
18579
18688
|
// src/components/ui/data-table/data-table-action.tsx
|
|
18580
18689
|
import { IconChevronRight as IconChevronRight8 } from "@tabler/icons-react";
|
|
18581
|
-
import { jsx as jsx147, jsxs as
|
|
18690
|
+
import { jsx as jsx147, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
18582
18691
|
function DataTableAction({
|
|
18583
18692
|
onClick,
|
|
18584
18693
|
disabled,
|
|
18585
18694
|
"aria-label": ariaLabel = "Open menu"
|
|
18586
18695
|
}) {
|
|
18587
|
-
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(
|
|
18588
18697
|
Button,
|
|
18589
18698
|
{
|
|
18590
18699
|
variant: "ghost",
|
|
@@ -18620,12 +18729,12 @@ function DataTableColumnHeader({
|
|
|
18620
18729
|
|
|
18621
18730
|
// src/components/ui/data-table/data-table-view-options.tsx
|
|
18622
18731
|
import { IconSettings } from "@tabler/icons-react";
|
|
18623
|
-
import { jsx as jsx149, jsxs as
|
|
18732
|
+
import { jsx as jsx149, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
18624
18733
|
function DataTableViewOptions({
|
|
18625
18734
|
table
|
|
18626
18735
|
}) {
|
|
18627
|
-
return /* @__PURE__ */
|
|
18628
|
-
/* @__PURE__ */
|
|
18736
|
+
return /* @__PURE__ */ jsxs90(DropdownMenu, { children: [
|
|
18737
|
+
/* @__PURE__ */ jsxs90(
|
|
18629
18738
|
DropdownMenuTrigger,
|
|
18630
18739
|
{
|
|
18631
18740
|
render: /* @__PURE__ */ jsx149(
|
|
@@ -18648,7 +18757,7 @@ function DataTableViewOptions({
|
|
|
18648
18757
|
DropdownMenuContent,
|
|
18649
18758
|
{
|
|
18650
18759
|
className: cn("cn-data-table-view-options-content w-[150px]"),
|
|
18651
|
-
children: /* @__PURE__ */
|
|
18760
|
+
children: /* @__PURE__ */ jsxs90(DropdownMenuGroup, { children: [
|
|
18652
18761
|
/* @__PURE__ */ jsx149(DropdownMenuLabel, { children: "Toggle columns" }),
|
|
18653
18762
|
table.getAllColumns().filter(
|
|
18654
18763
|
(column) => typeof column.accessorFn !== "undefined" && column.getCanHide()
|
|
@@ -18676,7 +18785,7 @@ import {
|
|
|
18676
18785
|
|
|
18677
18786
|
// src/components/ui/drawer.tsx
|
|
18678
18787
|
import { Dialog as DrawerPrimitive } from "@base-ui/react/dialog";
|
|
18679
|
-
import { jsx as jsx150, jsxs as
|
|
18788
|
+
import { jsx as jsx150, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
18680
18789
|
function Drawer({
|
|
18681
18790
|
...props
|
|
18682
18791
|
}) {
|
|
@@ -18716,9 +18825,9 @@ function DrawerContent({
|
|
|
18716
18825
|
side = "bottom",
|
|
18717
18826
|
...props
|
|
18718
18827
|
}) {
|
|
18719
|
-
return /* @__PURE__ */
|
|
18828
|
+
return /* @__PURE__ */ jsxs91(DrawerPortal, { "data-slot": "drawer-portal", keepMounted: true, children: [
|
|
18720
18829
|
/* @__PURE__ */ jsx150(DrawerOverlay, {}),
|
|
18721
|
-
/* @__PURE__ */
|
|
18830
|
+
/* @__PURE__ */ jsxs91(
|
|
18722
18831
|
DrawerPrimitive.Popup,
|
|
18723
18832
|
{
|
|
18724
18833
|
"data-slot": "drawer-content",
|
|
@@ -18785,7 +18894,7 @@ function DrawerDescription({
|
|
|
18785
18894
|
|
|
18786
18895
|
// src/components/ui/dropdown-button.tsx
|
|
18787
18896
|
import { IconChevronDown as IconChevronDown10 } from "@tabler/icons-react";
|
|
18788
|
-
import { Fragment as Fragment26, jsx as jsx151, jsxs as
|
|
18897
|
+
import { Fragment as Fragment26, jsx as jsx151, jsxs as jsxs92 } from "react/jsx-runtime";
|
|
18789
18898
|
var DROPDOWN_BUTTON_TRIGGER_SIZE_CN = {
|
|
18790
18899
|
xs: "px-1.5",
|
|
18791
18900
|
sm: "px-2",
|
|
@@ -18800,7 +18909,7 @@ function getButtonVariant(variant) {
|
|
|
18800
18909
|
return variant;
|
|
18801
18910
|
}
|
|
18802
18911
|
function renderItemContent(item) {
|
|
18803
|
-
return /* @__PURE__ */
|
|
18912
|
+
return /* @__PURE__ */ jsxs92(Fragment26, { children: [
|
|
18804
18913
|
item.icon,
|
|
18805
18914
|
/* @__PURE__ */ jsx151("span", { className: "min-w-0 flex-1 truncate", children: item.label }),
|
|
18806
18915
|
item.shortcut ? /* @__PURE__ */ jsx151(DropdownMenuShortcut, { children: item.shortcut }) : null
|
|
@@ -18808,7 +18917,7 @@ function renderItemContent(item) {
|
|
|
18808
18917
|
}
|
|
18809
18918
|
function renderActionItem(item, key) {
|
|
18810
18919
|
if (item.items?.length) {
|
|
18811
|
-
return /* @__PURE__ */
|
|
18920
|
+
return /* @__PURE__ */ jsxs92(DropdownMenuSub, { children: [
|
|
18812
18921
|
/* @__PURE__ */ jsx151(DropdownMenuSubTrigger, { inset: item.inset, children: renderItemContent(item) }),
|
|
18813
18922
|
/* @__PURE__ */ jsx151(DropdownMenuSubContent, { children: renderDropdownButtonItems(item.items) })
|
|
18814
18923
|
] }, key);
|
|
@@ -18890,7 +18999,7 @@ function DropdownButton({
|
|
|
18890
18999
|
const variantClass = variant === "danger" ? "cn-dropdown-button-variant-danger" : "";
|
|
18891
19000
|
const isDisabled = buttonProps.disabled || buttonProps.loading || items.length === 0;
|
|
18892
19001
|
if (!split) {
|
|
18893
|
-
return /* @__PURE__ */
|
|
19002
|
+
return /* @__PURE__ */ jsxs92(DropdownMenu, { children: [
|
|
18894
19003
|
/* @__PURE__ */ jsx151(
|
|
18895
19004
|
DropdownMenuTrigger,
|
|
18896
19005
|
{
|
|
@@ -18921,8 +19030,8 @@ function DropdownButton({
|
|
|
18921
19030
|
) })
|
|
18922
19031
|
] });
|
|
18923
19032
|
}
|
|
18924
|
-
return /* @__PURE__ */
|
|
18925
|
-
/* @__PURE__ */
|
|
19033
|
+
return /* @__PURE__ */ jsxs92(DropdownMenu, { children: [
|
|
19034
|
+
/* @__PURE__ */ jsxs92("div", { className: cn("cn-dropdown-button-shell", className), children: [
|
|
18926
19035
|
/* @__PURE__ */ jsx151(
|
|
18927
19036
|
Button,
|
|
18928
19037
|
{
|
|
@@ -18978,7 +19087,7 @@ function DropdownButton({
|
|
|
18978
19087
|
|
|
18979
19088
|
// src/components/ui/file-button.tsx
|
|
18980
19089
|
import { useRef as useRef18 } from "react";
|
|
18981
|
-
import { Fragment as Fragment27, jsx as jsx152, jsxs as
|
|
19090
|
+
import { Fragment as Fragment27, jsx as jsx152, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
18982
19091
|
function FileButton({
|
|
18983
19092
|
onChange,
|
|
18984
19093
|
accept,
|
|
@@ -18996,7 +19105,7 @@ function FileButton({
|
|
|
18996
19105
|
const handleChange = (e) => {
|
|
18997
19106
|
onChange(e.target.files);
|
|
18998
19107
|
};
|
|
18999
|
-
return /* @__PURE__ */
|
|
19108
|
+
return /* @__PURE__ */ jsxs93(Fragment27, { children: [
|
|
19000
19109
|
/* @__PURE__ */ jsx152(
|
|
19001
19110
|
"input",
|
|
19002
19111
|
{
|
|
@@ -19164,7 +19273,7 @@ function FilePreviewSurface({
|
|
|
19164
19273
|
}
|
|
19165
19274
|
|
|
19166
19275
|
// src/components/ui/file-drop-input.tsx
|
|
19167
|
-
import { Fragment as Fragment28, jsx as jsx154, jsxs as
|
|
19276
|
+
import { Fragment as Fragment28, jsx as jsx154, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
19168
19277
|
function FileDropInput({
|
|
19169
19278
|
className,
|
|
19170
19279
|
onFilesChange,
|
|
@@ -19241,14 +19350,14 @@ function FileDropInput({
|
|
|
19241
19350
|
}
|
|
19242
19351
|
setFiles(nextFiles);
|
|
19243
19352
|
};
|
|
19244
|
-
const fileDropInputElement = /* @__PURE__ */
|
|
19245
|
-
/* @__PURE__ */
|
|
19353
|
+
const fileDropInputElement = /* @__PURE__ */ jsxs94(Fragment28, { children: [
|
|
19354
|
+
/* @__PURE__ */ jsxs94(
|
|
19246
19355
|
"div",
|
|
19247
19356
|
{
|
|
19248
19357
|
"data-slot": "file-drop-input-wrapper",
|
|
19249
19358
|
className: cn("cn-file-drop-input-wrapper", className),
|
|
19250
19359
|
children: [
|
|
19251
|
-
/* @__PURE__ */
|
|
19360
|
+
/* @__PURE__ */ jsxs94(
|
|
19252
19361
|
"label",
|
|
19253
19362
|
{
|
|
19254
19363
|
htmlFor: inputId,
|
|
@@ -19278,7 +19387,7 @@ function FileDropInput({
|
|
|
19278
19387
|
...props
|
|
19279
19388
|
}
|
|
19280
19389
|
),
|
|
19281
|
-
singleItem ? /* @__PURE__ */
|
|
19390
|
+
singleItem ? /* @__PURE__ */ jsxs94(
|
|
19282
19391
|
"div",
|
|
19283
19392
|
{
|
|
19284
19393
|
"data-slot": "file-drop-input-single-preview",
|
|
@@ -19298,7 +19407,7 @@ function FileDropInput({
|
|
|
19298
19407
|
)
|
|
19299
19408
|
}
|
|
19300
19409
|
),
|
|
19301
|
-
/* @__PURE__ */
|
|
19410
|
+
/* @__PURE__ */ jsxs94(
|
|
19302
19411
|
"div",
|
|
19303
19412
|
{
|
|
19304
19413
|
"data-slot": "file-drop-input-preview-actions",
|
|
@@ -19345,14 +19454,14 @@ function FileDropInput({
|
|
|
19345
19454
|
)
|
|
19346
19455
|
]
|
|
19347
19456
|
}
|
|
19348
|
-
) : /* @__PURE__ */
|
|
19457
|
+
) : /* @__PURE__ */ jsxs94(
|
|
19349
19458
|
"div",
|
|
19350
19459
|
{
|
|
19351
19460
|
"data-slot": "file-drop-input-prompt",
|
|
19352
19461
|
className: "cn-file-drop-input-prompt",
|
|
19353
19462
|
children: [
|
|
19354
19463
|
/* @__PURE__ */ jsx154(IconPhoto4, { className: "cn-file-drop-input-icon" }),
|
|
19355
|
-
/* @__PURE__ */
|
|
19464
|
+
/* @__PURE__ */ jsxs94("div", { children: [
|
|
19356
19465
|
/* @__PURE__ */ jsx154("div", { className: "cn-file-drop-input-title", children: dropLabel }),
|
|
19357
19466
|
/* @__PURE__ */ jsx154("div", { className: "cn-file-drop-input-description", children: dropDescription })
|
|
19358
19467
|
] })
|
|
@@ -19369,13 +19478,13 @@ function FileDropInput({
|
|
|
19369
19478
|
className: "cn-file-drop-input-list",
|
|
19370
19479
|
children: items.map((item) => {
|
|
19371
19480
|
const ItemIcon = getFileIcon2(item.type);
|
|
19372
|
-
return /* @__PURE__ */
|
|
19481
|
+
return /* @__PURE__ */ jsxs94(
|
|
19373
19482
|
"div",
|
|
19374
19483
|
{
|
|
19375
19484
|
"data-slot": "file-drop-input-item",
|
|
19376
19485
|
className: "cn-file-drop-input-item",
|
|
19377
19486
|
children: [
|
|
19378
|
-
/* @__PURE__ */
|
|
19487
|
+
/* @__PURE__ */ jsxs94("div", { className: "cn-file-drop-input-item-left", children: [
|
|
19379
19488
|
/* @__PURE__ */ jsx154(ItemIcon, { className: "cn-file-drop-input-item-icon" }),
|
|
19380
19489
|
/* @__PURE__ */ jsx154("span", { className: "cn-file-drop-input-item-name", children: item.name }),
|
|
19381
19490
|
formatBytes2(item.size) ? /* @__PURE__ */ jsx154("span", { className: "cn-file-drop-input-item-size", children: formatBytes2(item.size) }) : null
|
|
@@ -19456,7 +19565,7 @@ import {
|
|
|
19456
19565
|
IconX as IconX12
|
|
19457
19566
|
} from "@tabler/icons-react";
|
|
19458
19567
|
import { useId as useId7, useRef as useRef20, useState as useState45 } from "react";
|
|
19459
|
-
import { Fragment as Fragment29, jsx as jsx155, jsxs as
|
|
19568
|
+
import { Fragment as Fragment29, jsx as jsx155, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
19460
19569
|
function FileInput({
|
|
19461
19570
|
className,
|
|
19462
19571
|
onFilesChange,
|
|
@@ -19537,18 +19646,18 @@ function FileInput({
|
|
|
19537
19646
|
const RootIcon = singleItem ? getFileIcon2(singleItem.type) : IconPaperclip;
|
|
19538
19647
|
let metaContent = null;
|
|
19539
19648
|
if (items.length > 1) {
|
|
19540
|
-
metaContent = /* @__PURE__ */
|
|
19649
|
+
metaContent = /* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
|
|
19541
19650
|
items.length,
|
|
19542
19651
|
" files selected"
|
|
19543
19652
|
] });
|
|
19544
19653
|
} else if (props.accept) {
|
|
19545
|
-
metaContent = /* @__PURE__ */
|
|
19654
|
+
metaContent = /* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
|
|
19546
19655
|
"Accepts ",
|
|
19547
19656
|
props.accept
|
|
19548
19657
|
] });
|
|
19549
19658
|
}
|
|
19550
|
-
const fileInputElement = /* @__PURE__ */
|
|
19551
|
-
/* @__PURE__ */
|
|
19659
|
+
const fileInputElement = /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19660
|
+
/* @__PURE__ */ jsxs95(
|
|
19552
19661
|
"div",
|
|
19553
19662
|
{
|
|
19554
19663
|
"data-slot": "file-input-wrapper",
|
|
@@ -19577,7 +19686,7 @@ function FileInput({
|
|
|
19577
19686
|
className: "cn-file-input-root",
|
|
19578
19687
|
onClick: () => inputRef.current?.click(),
|
|
19579
19688
|
disabled,
|
|
19580
|
-
children: singleItem ? /* @__PURE__ */
|
|
19689
|
+
children: singleItem ? /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19581
19690
|
/* @__PURE__ */ jsx155(
|
|
19582
19691
|
"div",
|
|
19583
19692
|
{
|
|
@@ -19592,7 +19701,7 @@ function FileInput({
|
|
|
19592
19701
|
)
|
|
19593
19702
|
}
|
|
19594
19703
|
),
|
|
19595
|
-
/* @__PURE__ */
|
|
19704
|
+
/* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
|
|
19596
19705
|
/* @__PURE__ */ jsx155(
|
|
19597
19706
|
"div",
|
|
19598
19707
|
{
|
|
@@ -19603,7 +19712,7 @@ function FileInput({
|
|
|
19603
19712
|
),
|
|
19604
19713
|
/* @__PURE__ */ jsx155("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: formatBytes2(singleItem.size) ?? "uploaded file" })
|
|
19605
19714
|
] }),
|
|
19606
|
-
/* @__PURE__ */
|
|
19715
|
+
/* @__PURE__ */ jsxs95(
|
|
19607
19716
|
"div",
|
|
19608
19717
|
{
|
|
19609
19718
|
"data-slot": "file-input-actions",
|
|
@@ -19642,7 +19751,7 @@ function FileInput({
|
|
|
19642
19751
|
]
|
|
19643
19752
|
}
|
|
19644
19753
|
)
|
|
19645
|
-
] }) : /* @__PURE__ */
|
|
19754
|
+
] }) : /* @__PURE__ */ jsxs95(Fragment29, { children: [
|
|
19646
19755
|
/* @__PURE__ */ jsx155(
|
|
19647
19756
|
"div",
|
|
19648
19757
|
{
|
|
@@ -19651,7 +19760,7 @@ function FileInput({
|
|
|
19651
19760
|
children: leftSection ?? /* @__PURE__ */ jsx155(RootIcon, { className: "size-4" })
|
|
19652
19761
|
}
|
|
19653
19762
|
),
|
|
19654
|
-
/* @__PURE__ */
|
|
19763
|
+
/* @__PURE__ */ jsxs95("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
|
|
19655
19764
|
/* @__PURE__ */ jsx155(
|
|
19656
19765
|
"div",
|
|
19657
19766
|
{
|
|
@@ -19675,13 +19784,13 @@ function FileInput({
|
|
|
19675
19784
|
),
|
|
19676
19785
|
!singleItem && items.length > 1 ? /* @__PURE__ */ jsx155("div", { "data-slot": "file-input-list", className: "cn-file-input-list", children: items.map((item) => {
|
|
19677
19786
|
const ItemIcon = getFileIcon2(item.type);
|
|
19678
|
-
return /* @__PURE__ */
|
|
19787
|
+
return /* @__PURE__ */ jsxs95(
|
|
19679
19788
|
"div",
|
|
19680
19789
|
{
|
|
19681
19790
|
"data-slot": "file-input-item",
|
|
19682
19791
|
className: "cn-file-input-item",
|
|
19683
19792
|
children: [
|
|
19684
|
-
/* @__PURE__ */
|
|
19793
|
+
/* @__PURE__ */ jsxs95("div", { className: "cn-file-input-item-left", children: [
|
|
19685
19794
|
/* @__PURE__ */ jsx155(ItemIcon, { className: "cn-file-input-item-icon" }),
|
|
19686
19795
|
/* @__PURE__ */ jsx155("span", { className: "cn-file-input-item-name", children: item.name }),
|
|
19687
19796
|
formatBytes2(item.size) ? /* @__PURE__ */ jsx155("span", { className: "cn-file-input-item-size", children: formatBytes2(item.size) }) : null
|
|
@@ -20253,7 +20362,7 @@ function HoverCardContent({
|
|
|
20253
20362
|
|
|
20254
20363
|
// src/components/ui/indicator.tsx
|
|
20255
20364
|
import { cva as cva18 } from "class-variance-authority";
|
|
20256
|
-
import { jsx as jsx163, jsxs as
|
|
20365
|
+
import { jsx as jsx163, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
20257
20366
|
var indicatorVariants = cva18(
|
|
20258
20367
|
"cn-indicator absolute flex items-center justify-center rounded-full text-xs font-medium transition-colors",
|
|
20259
20368
|
{
|
|
@@ -20317,7 +20426,7 @@ function Indicator({
|
|
|
20317
20426
|
if (disabled) {
|
|
20318
20427
|
return /* @__PURE__ */ jsx163("div", { className: cn(inline && "inline-block"), children });
|
|
20319
20428
|
}
|
|
20320
|
-
return /* @__PURE__ */
|
|
20429
|
+
return /* @__PURE__ */ jsxs96(
|
|
20321
20430
|
"div",
|
|
20322
20431
|
{
|
|
20323
20432
|
"data-slot": "indicator-wrapper",
|
|
@@ -20525,7 +20634,7 @@ function ItemFooter({ className, ...props }) {
|
|
|
20525
20634
|
|
|
20526
20635
|
// src/components/ui/json-input.tsx
|
|
20527
20636
|
import { useState as useState47 } from "react";
|
|
20528
|
-
import { jsx as jsx165, jsxs as
|
|
20637
|
+
import { jsx as jsx165, jsxs as jsxs97 } from "react/jsx-runtime";
|
|
20529
20638
|
function JsonInput({
|
|
20530
20639
|
className,
|
|
20531
20640
|
value,
|
|
@@ -20578,7 +20687,7 @@ function JsonInput({
|
|
|
20578
20687
|
onBlur?.(e);
|
|
20579
20688
|
};
|
|
20580
20689
|
const errorMessage = validationError || error;
|
|
20581
|
-
return /* @__PURE__ */
|
|
20690
|
+
return /* @__PURE__ */ jsxs97("div", { "data-slot": "json-input", className: "cn-json-input relative w-full", children: [
|
|
20582
20691
|
/* @__PURE__ */ jsx165(
|
|
20583
20692
|
Textarea,
|
|
20584
20693
|
{
|
|
@@ -20712,7 +20821,7 @@ function Mark({ className, color, ...props }) {
|
|
|
20712
20821
|
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
20713
20822
|
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
|
|
20714
20823
|
import { IconCheck as IconCheck7, IconChevronRight as IconChevronRight9 } from "@tabler/icons-react";
|
|
20715
|
-
import { jsx as jsx169, jsxs as
|
|
20824
|
+
import { jsx as jsx169, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
20716
20825
|
var MENUBAR_POSITIONER_CN = "isolate z-50 outline-none";
|
|
20717
20826
|
var MENUBAR_CONTENT_CN = cn(
|
|
20718
20827
|
"cn-menubar-content cn-menubar-content-logical cn-menu-target",
|
|
@@ -20837,7 +20946,7 @@ function MenubarCheckboxItem({
|
|
|
20837
20946
|
inset,
|
|
20838
20947
|
...props
|
|
20839
20948
|
}) {
|
|
20840
|
-
return /* @__PURE__ */
|
|
20949
|
+
return /* @__PURE__ */ jsxs98(
|
|
20841
20950
|
MenuPrimitive.CheckboxItem,
|
|
20842
20951
|
{
|
|
20843
20952
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -20862,7 +20971,7 @@ function MenubarRadioItem({
|
|
|
20862
20971
|
inset,
|
|
20863
20972
|
...props
|
|
20864
20973
|
}) {
|
|
20865
|
-
return /* @__PURE__ */
|
|
20974
|
+
return /* @__PURE__ */ jsxs98(
|
|
20866
20975
|
MenuPrimitive.RadioItem,
|
|
20867
20976
|
{
|
|
20868
20977
|
"data-slot": "menubar-radio-item",
|
|
@@ -20928,7 +21037,7 @@ function MenubarSubTrigger({
|
|
|
20928
21037
|
children,
|
|
20929
21038
|
...props
|
|
20930
21039
|
}) {
|
|
20931
|
-
return /* @__PURE__ */
|
|
21040
|
+
return /* @__PURE__ */ jsxs98(
|
|
20932
21041
|
MenuPrimitive.SubmenuTrigger,
|
|
20933
21042
|
{
|
|
20934
21043
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -20981,7 +21090,7 @@ function MenubarSubContent({
|
|
|
20981
21090
|
|
|
20982
21091
|
// src/components/ui/money-input.tsx
|
|
20983
21092
|
import { forwardRef as forwardRef12, useCallback as useCallback23, useState as useState48 } from "react";
|
|
20984
|
-
import { jsx as jsx170, jsxs as
|
|
21093
|
+
import { jsx as jsx170, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
20985
21094
|
var defaultCurrencies = [
|
|
20986
21095
|
{ label: "ETB", value: "etb", symbol: "Br" },
|
|
20987
21096
|
{ label: "USD", value: "usd", symbol: "$" },
|
|
@@ -21072,7 +21181,7 @@ var MoneyInput = forwardRef12(
|
|
|
21072
21181
|
ref,
|
|
21073
21182
|
"data-slot": "money-input",
|
|
21074
21183
|
className: cn("w-full", className),
|
|
21075
|
-
children: /* @__PURE__ */
|
|
21184
|
+
children: /* @__PURE__ */ jsxs99(InputGroup, { disabled, className: cn(sizes.group), children: [
|
|
21076
21185
|
/* @__PURE__ */ jsx170(
|
|
21077
21186
|
InputGroupAddon,
|
|
21078
21187
|
{
|
|
@@ -21095,7 +21204,7 @@ var MoneyInput = forwardRef12(
|
|
|
21095
21204
|
className: "tabular-nums !pl-2"
|
|
21096
21205
|
}
|
|
21097
21206
|
),
|
|
21098
|
-
/* @__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(
|
|
21099
21208
|
Select,
|
|
21100
21209
|
{
|
|
21101
21210
|
value: internalCurrency,
|
|
@@ -21127,7 +21236,7 @@ MoneyInput.displayName = "MoneyInput";
|
|
|
21127
21236
|
import { Autocomplete as AutocompletePrimitive2 } from "@base-ui/react/autocomplete";
|
|
21128
21237
|
import { IconCheck as IconCheck8, IconChevronDown as IconChevronDown11, IconX as IconX13 } from "@tabler/icons-react";
|
|
21129
21238
|
import { useState as useState49 } from "react";
|
|
21130
|
-
import { jsx as jsx171, jsxs as
|
|
21239
|
+
import { jsx as jsx171, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
21131
21240
|
function MultiSelect({
|
|
21132
21241
|
options,
|
|
21133
21242
|
value = [],
|
|
@@ -21160,7 +21269,7 @@ function MultiSelect({
|
|
|
21160
21269
|
"relative w-full data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
21161
21270
|
className
|
|
21162
21271
|
),
|
|
21163
|
-
children: /* @__PURE__ */
|
|
21272
|
+
children: /* @__PURE__ */ jsxs100(
|
|
21164
21273
|
AutocompletePrimitive2.Root,
|
|
21165
21274
|
{
|
|
21166
21275
|
open: disabled ? false : open,
|
|
@@ -21177,16 +21286,16 @@ function MultiSelect({
|
|
|
21177
21286
|
inline: true,
|
|
21178
21287
|
...props,
|
|
21179
21288
|
children: [
|
|
21180
|
-
/* @__PURE__ */
|
|
21181
|
-
/* @__PURE__ */ jsx171("div", { className: "cn-combobox-chips", children: /* @__PURE__ */
|
|
21182
|
-
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(
|
|
21183
21292
|
"span",
|
|
21184
21293
|
{
|
|
21185
21294
|
"data-slot": "multi-select-chip",
|
|
21186
21295
|
className: "cn-combobox-chip",
|
|
21187
21296
|
children: [
|
|
21188
21297
|
/* @__PURE__ */ jsx171("span", { className: "flex-1", children: option.label }),
|
|
21189
|
-
/* @__PURE__ */
|
|
21298
|
+
/* @__PURE__ */ jsxs100(
|
|
21190
21299
|
"button",
|
|
21191
21300
|
{
|
|
21192
21301
|
type: "button",
|
|
@@ -21226,7 +21335,7 @@ function MultiSelect({
|
|
|
21226
21335
|
{
|
|
21227
21336
|
"data-slot": "multi-select-content",
|
|
21228
21337
|
className: cn("cn-multi-select-content cn-combobox-content"),
|
|
21229
|
-
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(
|
|
21230
21339
|
AutocompletePrimitive2.Item,
|
|
21231
21340
|
{
|
|
21232
21341
|
value: option.value,
|
|
@@ -21257,7 +21366,7 @@ function MultiSelect({
|
|
|
21257
21366
|
// src/components/ui/native-select.tsx
|
|
21258
21367
|
import { IconChevronDown as IconChevronDown12 } from "@tabler/icons-react";
|
|
21259
21368
|
import { forwardRef as forwardRef13 } from "react";
|
|
21260
|
-
import { jsx as jsx172, jsxs as
|
|
21369
|
+
import { jsx as jsx172, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
21261
21370
|
function mapNativeSelectSize(size) {
|
|
21262
21371
|
return size === "xs" || size === "sm" ? "sm" : "default";
|
|
21263
21372
|
}
|
|
@@ -21270,7 +21379,7 @@ var NativeSelectBase = forwardRef13(
|
|
|
21270
21379
|
({ className, size = "md", data, children, rightSection, ...props }, ref) => {
|
|
21271
21380
|
const options = data ? parseOptions(data) : null;
|
|
21272
21381
|
const mappedSize = mapNativeSelectSize(size);
|
|
21273
|
-
return /* @__PURE__ */
|
|
21382
|
+
return /* @__PURE__ */ jsxs101(
|
|
21274
21383
|
"div",
|
|
21275
21384
|
{
|
|
21276
21385
|
"data-slot": "native-select-wrapper",
|
|
@@ -21352,7 +21461,7 @@ NativeSelect.displayName = "NativeSelect";
|
|
|
21352
21461
|
// src/components/ui/nav-link.tsx
|
|
21353
21462
|
import { useMesob as useMesob9 } from "@mesob/ui/providers";
|
|
21354
21463
|
import { cva as cva21 } from "class-variance-authority";
|
|
21355
|
-
import { jsx as jsx173, jsxs as
|
|
21464
|
+
import { jsx as jsx173, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
21356
21465
|
var isExternal3 = (href) => !href || href.startsWith("http") || href.startsWith("//") || href.startsWith("mailto:") || href.startsWith("tel:");
|
|
21357
21466
|
var navLinkVariants = cva21(
|
|
21358
21467
|
"cn-nav-link flex items-center gap-3 px-3 py-2 text-sm font-medium transition-colors cursor-pointer",
|
|
@@ -21391,7 +21500,7 @@ function NavLink({
|
|
|
21391
21500
|
const useLink = href && !isExternal3(href) && Link2;
|
|
21392
21501
|
const Comp = useLink ? Link2 : "a";
|
|
21393
21502
|
const linkProps = useLink ? { ...props, href, ...locale && { locale } } : { ...props, href };
|
|
21394
|
-
return /* @__PURE__ */
|
|
21503
|
+
return /* @__PURE__ */ jsxs102(
|
|
21395
21504
|
Comp,
|
|
21396
21505
|
{
|
|
21397
21506
|
"data-slot": "nav-link",
|
|
@@ -21425,14 +21534,14 @@ function NavLink({
|
|
|
21425
21534
|
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
|
|
21426
21535
|
import { IconChevronDown as IconChevronDown13 } from "@tabler/icons-react";
|
|
21427
21536
|
import { cva as cva22 } from "class-variance-authority";
|
|
21428
|
-
import { jsx as jsx174, jsxs as
|
|
21537
|
+
import { jsx as jsx174, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
21429
21538
|
function NavigationMenu({
|
|
21430
21539
|
className,
|
|
21431
21540
|
children,
|
|
21432
21541
|
viewport = true,
|
|
21433
21542
|
...props
|
|
21434
21543
|
}) {
|
|
21435
|
-
return /* @__PURE__ */
|
|
21544
|
+
return /* @__PURE__ */ jsxs103(
|
|
21436
21545
|
NavigationMenuPrimitive.Root,
|
|
21437
21546
|
{
|
|
21438
21547
|
"data-slot": "navigation-menu",
|
|
@@ -21498,7 +21607,7 @@ function NavigationMenuTrigger({
|
|
|
21498
21607
|
children,
|
|
21499
21608
|
...props
|
|
21500
21609
|
}) {
|
|
21501
|
-
return /* @__PURE__ */
|
|
21610
|
+
return /* @__PURE__ */ jsxs103(
|
|
21502
21611
|
NavigationMenuPrimitive.Trigger,
|
|
21503
21612
|
{
|
|
21504
21613
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -21888,7 +21997,7 @@ function UnstyledButton({
|
|
|
21888
21997
|
}
|
|
21889
21998
|
|
|
21890
21999
|
// src/components/ui/number-input.tsx
|
|
21891
|
-
import { jsx as jsx178, jsxs as
|
|
22000
|
+
import { jsx as jsx178, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
21892
22001
|
var sizeClasses5 = {
|
|
21893
22002
|
xs: "h-7",
|
|
21894
22003
|
sm: "h-8",
|
|
@@ -21991,7 +22100,7 @@ var NumberInput = forwardRef14(
|
|
|
21991
22100
|
};
|
|
21992
22101
|
const hasWrapper = label || description || error || required || withAsterisk;
|
|
21993
22102
|
const showControls = controls && !disabled;
|
|
21994
|
-
const controlsEl = showControls ? /* @__PURE__ */
|
|
22103
|
+
const controlsEl = showControls ? /* @__PURE__ */ jsxs104(
|
|
21995
22104
|
"div",
|
|
21996
22105
|
{
|
|
21997
22106
|
"data-slot": "number-input-controls",
|
|
@@ -22032,7 +22141,7 @@ var NumberInput = forwardRef14(
|
|
|
22032
22141
|
]
|
|
22033
22142
|
}
|
|
22034
22143
|
) : null;
|
|
22035
|
-
const inputEl = /* @__PURE__ */
|
|
22144
|
+
const inputEl = /* @__PURE__ */ jsxs104(InputGroup, { disabled, className: cn(sizeClasses5[size]), children: [
|
|
22036
22145
|
leftSection && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-start", className: "pointer-events-none", children: leftSection }),
|
|
22037
22146
|
/* @__PURE__ */ jsx178(
|
|
22038
22147
|
InputGroupInput,
|
|
@@ -22052,12 +22161,13 @@ var NumberInput = forwardRef14(
|
|
|
22052
22161
|
...inputProps
|
|
22053
22162
|
}
|
|
22054
22163
|
),
|
|
22055
|
-
rightSection && !showControls && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-end", children: rightSection }),
|
|
22164
|
+
rightSection && !showControls && /* @__PURE__ */ jsx178(InputGroupAddon, { align: "inline-end", as: "div", children: rightSection }),
|
|
22056
22165
|
showControls && /* @__PURE__ */ jsx178(
|
|
22057
22166
|
InputGroupAddon,
|
|
22058
22167
|
{
|
|
22059
22168
|
align: "inline-end",
|
|
22060
22169
|
className: "cn-number-input-controls-addon",
|
|
22170
|
+
as: "div",
|
|
22061
22171
|
children: controlsEl
|
|
22062
22172
|
}
|
|
22063
22173
|
)
|
|
@@ -22092,7 +22202,7 @@ import {
|
|
|
22092
22202
|
IconChevronRight as IconChevronRight10,
|
|
22093
22203
|
IconDots as IconDots2
|
|
22094
22204
|
} from "@tabler/icons-react";
|
|
22095
|
-
import { jsx as jsx179, jsxs as
|
|
22205
|
+
import { jsx as jsx179, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
22096
22206
|
function Pagination({ className, ...props }) {
|
|
22097
22207
|
return /* @__PURE__ */ jsx179(
|
|
22098
22208
|
"nav",
|
|
@@ -22148,7 +22258,7 @@ function PaginationPrevious({
|
|
|
22148
22258
|
className,
|
|
22149
22259
|
...props
|
|
22150
22260
|
}) {
|
|
22151
|
-
return /* @__PURE__ */
|
|
22261
|
+
return /* @__PURE__ */ jsxs105(
|
|
22152
22262
|
PaginationLink,
|
|
22153
22263
|
{
|
|
22154
22264
|
"aria-label": "Go to previous page",
|
|
@@ -22166,7 +22276,7 @@ function PaginationNext({
|
|
|
22166
22276
|
className,
|
|
22167
22277
|
...props
|
|
22168
22278
|
}) {
|
|
22169
|
-
return /* @__PURE__ */
|
|
22279
|
+
return /* @__PURE__ */ jsxs105(
|
|
22170
22280
|
PaginationLink,
|
|
22171
22281
|
{
|
|
22172
22282
|
"aria-label": "Go to next page",
|
|
@@ -22184,7 +22294,7 @@ function PaginationEllipsis({
|
|
|
22184
22294
|
className,
|
|
22185
22295
|
...props
|
|
22186
22296
|
}) {
|
|
22187
|
-
return /* @__PURE__ */
|
|
22297
|
+
return /* @__PURE__ */ jsxs105(
|
|
22188
22298
|
"span",
|
|
22189
22299
|
{
|
|
22190
22300
|
"aria-hidden": true,
|
|
@@ -22253,7 +22363,7 @@ function Paper({
|
|
|
22253
22363
|
// src/components/ui/password-input.tsx
|
|
22254
22364
|
import { IconEye, IconEyeOff } from "@tabler/icons-react";
|
|
22255
22365
|
import { forwardRef as forwardRef15, useState as useState50 } from "react";
|
|
22256
|
-
import { jsx as jsx181, jsxs as
|
|
22366
|
+
import { jsx as jsx181, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
22257
22367
|
var PasswordInput = forwardRef15(
|
|
22258
22368
|
({ className, showToggle = true, size, ...props }, ref) => {
|
|
22259
22369
|
const [showPassword, setShowPassword] = useState50(false);
|
|
@@ -22265,7 +22375,7 @@ var PasswordInput = forwardRef15(
|
|
|
22265
22375
|
xl: "h-12"
|
|
22266
22376
|
};
|
|
22267
22377
|
const iconButtonSize = size === "xs" || size === "sm" ? "icon-xs" : "icon-sm";
|
|
22268
|
-
return /* @__PURE__ */
|
|
22378
|
+
return /* @__PURE__ */ jsxs106(
|
|
22269
22379
|
InputGroup,
|
|
22270
22380
|
{
|
|
22271
22381
|
disabled: props.disabled,
|
|
@@ -22280,7 +22390,7 @@ var PasswordInput = forwardRef15(
|
|
|
22280
22390
|
...props
|
|
22281
22391
|
}
|
|
22282
22392
|
),
|
|
22283
|
-
showToggle && /* @__PURE__ */ jsx181(InputGroupAddon, { align: "inline-end", children: /* @__PURE__ */ jsx181(
|
|
22393
|
+
showToggle && /* @__PURE__ */ jsx181(InputGroupAddon, { align: "inline-end", as: "div", children: /* @__PURE__ */ jsx181(
|
|
22284
22394
|
InputGroupButton,
|
|
22285
22395
|
{
|
|
22286
22396
|
type: "button",
|
|
@@ -22343,7 +22453,7 @@ PasswordInputWithWrapper.displayName = "PasswordInputWithWrapper";
|
|
|
22343
22453
|
|
|
22344
22454
|
// src/components/ui/pill.tsx
|
|
22345
22455
|
import { cva as cva23 } from "class-variance-authority";
|
|
22346
|
-
import { jsx as jsx182, jsxs as
|
|
22456
|
+
import { jsx as jsx182, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
22347
22457
|
var pillVariants = cva23(
|
|
22348
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",
|
|
22349
22459
|
{
|
|
@@ -22387,7 +22497,7 @@ function Pill({
|
|
|
22387
22497
|
disabled,
|
|
22388
22498
|
...props
|
|
22389
22499
|
}) {
|
|
22390
|
-
return /* @__PURE__ */
|
|
22500
|
+
return /* @__PURE__ */ jsxs107(
|
|
22391
22501
|
"span",
|
|
22392
22502
|
{
|
|
22393
22503
|
"data-slot": "pill",
|
|
@@ -22631,7 +22741,7 @@ function ResizableHandle({
|
|
|
22631
22741
|
}
|
|
22632
22742
|
|
|
22633
22743
|
// src/components/ui/ring-progress.tsx
|
|
22634
|
-
import { jsx as jsx186, jsxs as
|
|
22744
|
+
import { jsx as jsx186, jsxs as jsxs108 } from "react/jsx-runtime";
|
|
22635
22745
|
function RingProgress({
|
|
22636
22746
|
value,
|
|
22637
22747
|
size = 120,
|
|
@@ -22645,7 +22755,7 @@ function RingProgress({
|
|
|
22645
22755
|
const radius = (size - thickness) / 2;
|
|
22646
22756
|
const circumference = 2 * Math.PI * radius;
|
|
22647
22757
|
const offset = circumference - normalizedValue / 100 * circumference;
|
|
22648
|
-
return /* @__PURE__ */
|
|
22758
|
+
return /* @__PURE__ */ jsxs108(
|
|
22649
22759
|
"div",
|
|
22650
22760
|
{
|
|
22651
22761
|
"data-slot": "ring-progress",
|
|
@@ -22656,12 +22766,8 @@ function RingProgress({
|
|
|
22656
22766
|
style: { width: size, height: size },
|
|
22657
22767
|
...props,
|
|
22658
22768
|
children: [
|
|
22659
|
-
/* @__PURE__ */
|
|
22660
|
-
/* @__PURE__ */
|
|
22661
|
-
"Progress: ",
|
|
22662
|
-
normalizedValue,
|
|
22663
|
-
"%"
|
|
22664
|
-
] }),
|
|
22769
|
+
/* @__PURE__ */ jsxs108("svg", { width: size, height: size, className: "-rotate-90", "aria-hidden": "true", children: [
|
|
22770
|
+
/* @__PURE__ */ jsx186("title", { children: `Progress: ${normalizedValue}%` }),
|
|
22665
22771
|
/* @__PURE__ */ jsx186(
|
|
22666
22772
|
"circle",
|
|
22667
22773
|
{
|
|
@@ -22697,7 +22803,7 @@ function RingProgress({
|
|
|
22697
22803
|
}
|
|
22698
22804
|
|
|
22699
22805
|
// src/components/ui/semi-circle-progress.tsx
|
|
22700
|
-
import { jsx as jsx187, jsxs as
|
|
22806
|
+
import { jsx as jsx187, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
22701
22807
|
function SemiCircleProgress({
|
|
22702
22808
|
className,
|
|
22703
22809
|
value,
|
|
@@ -22711,7 +22817,7 @@ function SemiCircleProgress({
|
|
|
22711
22817
|
const radius = (size - thickness) / 2;
|
|
22712
22818
|
const circumference = Math.PI * radius;
|
|
22713
22819
|
const strokeDashoffset = circumference - normalizedValue / 100 * circumference;
|
|
22714
|
-
return /* @__PURE__ */
|
|
22820
|
+
return /* @__PURE__ */ jsxs109(
|
|
22715
22821
|
"div",
|
|
22716
22822
|
{
|
|
22717
22823
|
"data-slot": "semi-circle-progress",
|
|
@@ -22721,7 +22827,7 @@ function SemiCircleProgress({
|
|
|
22721
22827
|
),
|
|
22722
22828
|
...props,
|
|
22723
22829
|
children: [
|
|
22724
|
-
/* @__PURE__ */
|
|
22830
|
+
/* @__PURE__ */ jsxs109(
|
|
22725
22831
|
"svg",
|
|
22726
22832
|
{
|
|
22727
22833
|
width: size,
|
|
@@ -22731,11 +22837,7 @@ function SemiCircleProgress({
|
|
|
22731
22837
|
role: "img",
|
|
22732
22838
|
"aria-label": `Progress: ${Math.round(normalizedValue)}%`,
|
|
22733
22839
|
children: [
|
|
22734
|
-
/* @__PURE__ */
|
|
22735
|
-
"Progress: ",
|
|
22736
|
-
Math.round(normalizedValue),
|
|
22737
|
-
"%"
|
|
22738
|
-
] }),
|
|
22840
|
+
/* @__PURE__ */ jsx187("title", { children: `Progress: ${Math.round(normalizedValue)}%` }),
|
|
22739
22841
|
/* @__PURE__ */ jsx187(
|
|
22740
22842
|
"path",
|
|
22741
22843
|
{
|
|
@@ -22886,7 +22988,7 @@ function Space({ className, h, w, style, ...props }) {
|
|
|
22886
22988
|
// src/components/ui/spoiler.tsx
|
|
22887
22989
|
import { IconChevronDown as IconChevronDown15 } from "@tabler/icons-react";
|
|
22888
22990
|
import { useEffect as useEffect30, useRef as useRef22, useState as useState52 } from "react";
|
|
22889
|
-
import { jsx as jsx190, jsxs as
|
|
22991
|
+
import { jsx as jsx190, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
22890
22992
|
function Spoiler({
|
|
22891
22993
|
maxHeight = 100,
|
|
22892
22994
|
showLabel = "Show more",
|
|
@@ -22916,7 +23018,7 @@ function Spoiler({
|
|
|
22916
23018
|
window.removeEventListener("resize", update);
|
|
22917
23019
|
};
|
|
22918
23020
|
}, [maxHeight]);
|
|
22919
|
-
return /* @__PURE__ */
|
|
23021
|
+
return /* @__PURE__ */ jsxs110(
|
|
22920
23022
|
"div",
|
|
22921
23023
|
{
|
|
22922
23024
|
"data-slot": "spoiler",
|
|
@@ -22942,7 +23044,7 @@ function Spoiler({
|
|
|
22942
23044
|
className: "cn-spoiler-fade pointer-events-none absolute inset-x-0 bottom-0"
|
|
22943
23045
|
}
|
|
22944
23046
|
),
|
|
22945
|
-
shouldShowButton && /* @__PURE__ */
|
|
23047
|
+
shouldShowButton && /* @__PURE__ */ jsxs110(
|
|
22946
23048
|
Button,
|
|
22947
23049
|
{
|
|
22948
23050
|
variant: "ghost",
|
|
@@ -23017,7 +23119,7 @@ function Stack({
|
|
|
23017
23119
|
|
|
23018
23120
|
// src/components/ui/status-dropdown-button.tsx
|
|
23019
23121
|
import { useCallback as useCallback25, useMemo as useMemo16, useState as useState53 } from "react";
|
|
23020
|
-
import { Fragment as Fragment30, jsx as jsx192, jsxs as
|
|
23122
|
+
import { Fragment as Fragment30, jsx as jsx192, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
23021
23123
|
var STATUS_MENU_SEPARATOR = "separator";
|
|
23022
23124
|
function resolveConfirmConfig(target, entityLabel) {
|
|
23023
23125
|
if (!target.confirm) {
|
|
@@ -23110,7 +23212,7 @@ function StatusDropdownButton({
|
|
|
23110
23212
|
[value, states, transitions, groupLabel, onPick]
|
|
23111
23213
|
);
|
|
23112
23214
|
const current = states.find((s) => s.value === value);
|
|
23113
|
-
return /* @__PURE__ */
|
|
23215
|
+
return /* @__PURE__ */ jsxs111(Fragment30, { children: [
|
|
23114
23216
|
/* @__PURE__ */ jsx192(
|
|
23115
23217
|
DropdownButton,
|
|
23116
23218
|
{
|
|
@@ -23118,7 +23220,7 @@ function StatusDropdownButton({
|
|
|
23118
23220
|
className,
|
|
23119
23221
|
items,
|
|
23120
23222
|
variant,
|
|
23121
|
-
children: /* @__PURE__ */
|
|
23223
|
+
children: /* @__PURE__ */ jsxs111(
|
|
23122
23224
|
"span",
|
|
23123
23225
|
{
|
|
23124
23226
|
className: cn(
|
|
@@ -23143,12 +23245,12 @@ function StatusDropdownButton({
|
|
|
23143
23245
|
setPending(null);
|
|
23144
23246
|
}
|
|
23145
23247
|
},
|
|
23146
|
-
children: /* @__PURE__ */
|
|
23147
|
-
/* @__PURE__ */
|
|
23248
|
+
children: /* @__PURE__ */ jsxs111(AlertDialogContent, { children: [
|
|
23249
|
+
/* @__PURE__ */ jsxs111(AlertDialogHeader, { children: [
|
|
23148
23250
|
/* @__PURE__ */ jsx192(AlertDialogTitle, { children: pending?.config.title ?? "Confirm?" }),
|
|
23149
23251
|
pending?.config.description != null ? /* @__PURE__ */ jsx192(AlertDialogDescription, { children: pending.config.description }) : null
|
|
23150
23252
|
] }),
|
|
23151
|
-
/* @__PURE__ */
|
|
23253
|
+
/* @__PURE__ */ jsxs111(AlertDialogFooter, { children: [
|
|
23152
23254
|
/* @__PURE__ */ jsx192(AlertDialogCancel, { children: pending?.config.cancelLabel ?? "Cancel" }),
|
|
23153
23255
|
/* @__PURE__ */ jsx192(
|
|
23154
23256
|
AlertDialogAction,
|
|
@@ -23173,7 +23275,7 @@ function StatusDropdownButton({
|
|
|
23173
23275
|
// src/components/ui/stepper.tsx
|
|
23174
23276
|
import { IconCheck as IconCheck9 } from "@tabler/icons-react";
|
|
23175
23277
|
import { createContext as createContext8, useContext as useContext9 } from "react";
|
|
23176
|
-
import { jsx as jsx193, jsxs as
|
|
23278
|
+
import { jsx as jsx193, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
23177
23279
|
var StepperContext = createContext8({
|
|
23178
23280
|
activeStep: 0,
|
|
23179
23281
|
orientation: "horizontal"
|
|
@@ -23218,7 +23320,7 @@ function Step({
|
|
|
23218
23320
|
} else if (isActive) {
|
|
23219
23321
|
state2 = "active";
|
|
23220
23322
|
}
|
|
23221
|
-
return /* @__PURE__ */
|
|
23323
|
+
return /* @__PURE__ */ jsxs112(
|
|
23222
23324
|
"div",
|
|
23223
23325
|
{
|
|
23224
23326
|
"data-slot": "step",
|
|
@@ -23230,7 +23332,7 @@ function Step({
|
|
|
23230
23332
|
),
|
|
23231
23333
|
...props,
|
|
23232
23334
|
children: [
|
|
23233
|
-
/* @__PURE__ */
|
|
23335
|
+
/* @__PURE__ */ jsxs112(
|
|
23234
23336
|
"div",
|
|
23235
23337
|
{
|
|
23236
23338
|
className: cn(
|
|
@@ -23247,7 +23349,7 @@ function Step({
|
|
|
23247
23349
|
children: isCompleted ? /* @__PURE__ */ jsx193(IconCheck9, { className: "size-5" }) : /* @__PURE__ */ jsx193("span", { children: index + 1 })
|
|
23248
23350
|
}
|
|
23249
23351
|
),
|
|
23250
|
-
(label || description) && /* @__PURE__ */
|
|
23352
|
+
(label || description) && /* @__PURE__ */ jsxs112(
|
|
23251
23353
|
"div",
|
|
23252
23354
|
{
|
|
23253
23355
|
className: cn(
|
|
@@ -23359,7 +23461,7 @@ function TableOfContents({
|
|
|
23359
23461
|
// src/components/ui/tags-input.tsx
|
|
23360
23462
|
import { IconX as IconX14 } from "@tabler/icons-react";
|
|
23361
23463
|
import { useState as useState54 } from "react";
|
|
23362
|
-
import { jsx as jsx196, jsxs as
|
|
23464
|
+
import { jsx as jsx196, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
23363
23465
|
function TagsInput({
|
|
23364
23466
|
className,
|
|
23365
23467
|
value,
|
|
@@ -23417,21 +23519,21 @@ function TagsInput({
|
|
|
23417
23519
|
}
|
|
23418
23520
|
setInputValue(newValue);
|
|
23419
23521
|
};
|
|
23420
|
-
return /* @__PURE__ */
|
|
23522
|
+
return /* @__PURE__ */ jsxs113(
|
|
23421
23523
|
"div",
|
|
23422
23524
|
{
|
|
23423
23525
|
"data-slot": "tags-input",
|
|
23424
23526
|
className: cn("cn-tags-input cn-combobox-chips", className),
|
|
23425
23527
|
...props,
|
|
23426
23528
|
children: [
|
|
23427
|
-
tags.map((tag, index) => /* @__PURE__ */
|
|
23529
|
+
tags.map((tag, index) => /* @__PURE__ */ jsxs113(
|
|
23428
23530
|
"span",
|
|
23429
23531
|
{
|
|
23430
23532
|
"data-slot": "tags-input-tag",
|
|
23431
23533
|
className: "cn-combobox-chip",
|
|
23432
23534
|
children: [
|
|
23433
23535
|
tag,
|
|
23434
|
-
/* @__PURE__ */
|
|
23536
|
+
/* @__PURE__ */ jsxs113(
|
|
23435
23537
|
"button",
|
|
23436
23538
|
{
|
|
23437
23539
|
type: "button",
|
|
@@ -23468,7 +23570,7 @@ function TagsInput({
|
|
|
23468
23570
|
|
|
23469
23571
|
// src/components/ui/text-input.tsx
|
|
23470
23572
|
import { forwardRef as forwardRef16 } from "react";
|
|
23471
|
-
import { jsx as jsx197, jsxs as
|
|
23573
|
+
import { jsx as jsx197, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
23472
23574
|
var TextInput = forwardRef16(
|
|
23473
23575
|
({
|
|
23474
23576
|
label,
|
|
@@ -23497,13 +23599,21 @@ var TextInput = forwardRef16(
|
|
|
23497
23599
|
xl: "h-12"
|
|
23498
23600
|
};
|
|
23499
23601
|
const hasWrapper = label || description || error || required || withAsterisk;
|
|
23500
|
-
const inputElement = /* @__PURE__ */
|
|
23602
|
+
const inputElement = /* @__PURE__ */ jsxs114(
|
|
23501
23603
|
InputGroup,
|
|
23502
23604
|
{
|
|
23503
23605
|
disabled,
|
|
23504
23606
|
className: cn(size && groupSizeClasses[size]),
|
|
23505
23607
|
children: [
|
|
23506
|
-
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
|
+
),
|
|
23507
23617
|
/* @__PURE__ */ jsx197(
|
|
23508
23618
|
InputGroupInput,
|
|
23509
23619
|
{
|
|
@@ -23519,6 +23629,7 @@ var TextInput = forwardRef16(
|
|
|
23519
23629
|
InputGroupAddon,
|
|
23520
23630
|
{
|
|
23521
23631
|
align: "inline-end",
|
|
23632
|
+
as: "div",
|
|
23522
23633
|
className: cn(
|
|
23523
23634
|
rightSectionPointerEvents === "none" && "pointer-events-none"
|
|
23524
23635
|
),
|
|
@@ -24132,7 +24243,7 @@ function Transition({
|
|
|
24132
24243
|
// src/components/ui/tree.tsx
|
|
24133
24244
|
import { IconChevronRight as IconChevronRight11 } from "@tabler/icons-react";
|
|
24134
24245
|
import { useState as useState56 } from "react";
|
|
24135
|
-
import { jsx as jsx204, jsxs as
|
|
24246
|
+
import { jsx as jsx204, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
24136
24247
|
function Tree({
|
|
24137
24248
|
className,
|
|
24138
24249
|
data,
|
|
@@ -24213,14 +24324,14 @@ function TreeNode({
|
|
|
24213
24324
|
hasChildren,
|
|
24214
24325
|
selected
|
|
24215
24326
|
}) ?? node.label;
|
|
24216
|
-
return /* @__PURE__ */
|
|
24327
|
+
return /* @__PURE__ */ jsxs115(
|
|
24217
24328
|
"div",
|
|
24218
24329
|
{
|
|
24219
24330
|
role: "treeitem",
|
|
24220
24331
|
tabIndex: 0,
|
|
24221
24332
|
"aria-expanded": hasChildren ? expanded : void 0,
|
|
24222
24333
|
children: [
|
|
24223
|
-
/* @__PURE__ */
|
|
24334
|
+
/* @__PURE__ */ jsxs115(
|
|
24224
24335
|
UnstyledButton,
|
|
24225
24336
|
{
|
|
24226
24337
|
type: "button",
|