@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.
@@ -1010,35 +1010,53 @@ var inputGroupAddonVariants = cva3(
1010
1010
  function InputGroupAddon({
1011
1011
  className,
1012
1012
  align = "inline-start",
1013
- type = "button",
1013
+ as: Component = "button",
1014
1014
  ...props
1015
1015
  }) {
1016
- return /* @__PURE__ */ jsx11(
1017
- "button",
1018
- {
1019
- type,
1020
- "data-slot": "input-group-addon",
1021
- "data-align": align,
1022
- className: cn(inputGroupAddonVariants({ align }), className),
1023
- onClick: (e) => {
1024
- if (e.target.closest("button")) {
1025
- return;
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 { jsx as jsx22 } from "react/jsx-runtime";
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 = "default",
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
- return /* @__PURE__ */ jsx22(
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 items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",
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-span-2 row-start-1 self-start justify-self-end",
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 jsxs15 } from "react/jsx-runtime";
3109
- var OvalLoader = ({ className }) => /* @__PURE__ */ jsxs15(
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__ */ jsxs15("g", { transform: "translate(1 1)", strokeWidth: "2", children: [
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__ */ jsxs15(
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 jsxs16 } from "react/jsx-runtime";
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__ */ jsxs16(
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 jsxs17 } from "react/jsx-runtime";
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__ */ jsxs17("div", { className: "flex min-h-svh flex-col items-center justify-center bg-background px-6 py-16 sm:px-8", children: [
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__ */ jsxs17("div", { className: "relative flex w-full min-w-72 max-w-3xl shrink-0 flex-col items-center gap-8 text-center", children: [
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__ */ jsxs17("div", { className: "w-full space-y-2", children: [
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__ */ jsxs17("div", { className: "flex w-full flex-col gap-3 sm:flex-row sm:justify-center", children: [
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 jsxs18 } from "react/jsx-runtime";
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__ */ jsxs18("div", { className: "flex flex-col items-center gap-4 text-center", children: [
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 jsxs19 } from "react/jsx-runtime";
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__ */ jsxs19(
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 jsxs20 } from "react/jsx-runtime";
3703
+ import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
3634
3704
  function renderTableData(data, opts) {
3635
- return /* @__PURE__ */ jsxs20(Fragment8, { children: [
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 jsxs21 } from "react/jsx-runtime";
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__ */ jsxs21(AlertDialogPortal, { children: [
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 jsxs22 } from "react/jsx-runtime";
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__ */ jsxs22(Fragment9, { children: [
4012
- /* @__PURE__ */ jsxs22(DropdownMenu, { children: [
4013
- /* @__PURE__ */ jsxs22(
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__ */ jsxs22("div", { children: [
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__ */ jsxs22(
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__ */ jsxs22(AlertDialogContent, { children: [
4047
- /* @__PURE__ */ jsxs22(AlertDialogHeader, { children: [
4048
- /* @__PURE__ */ jsxs22(AlertDialogTitle, { children: [
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__ */ jsxs22(AlertDialogDescription, { children: [
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__ */ jsxs22(AlertDialogFooter, { children: [
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 jsxs23 } from "react/jsx-runtime";
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__ */ jsxs23(AlertDialog, { children: [
4174
+ return /* @__PURE__ */ jsxs24(AlertDialog, { children: [
4105
4175
  /* @__PURE__ */ jsx34(AlertDialogTrigger, { render: trigger ?? defaultTrigger }),
4106
- /* @__PURE__ */ jsxs23(AlertDialogContent, { children: [
4107
- /* @__PURE__ */ jsxs23(AlertDialogHeader, { children: [
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__ */ jsxs23(AlertDialogFooter, { children: [
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 isValidElement2,
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 jsxs24 } from "react/jsx-runtime";
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__ */ jsxs24(Tooltip, { children: [
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 jsxs25 } from "react/jsx-runtime";
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__ */ jsxs25(
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__ */ jsxs25(
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__ */ jsxs25(
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 jsxs26 } from "react/jsx-runtime";
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__ */ jsxs26(
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__ */ jsxs26(
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__ */ jsxs26("div", { className: cn("flex flex-col gap-4", className), children: [
4509
- /* @__PURE__ */ jsxs26(Card, { className: "overflow-hidden p-0 gap-0", children: [
4510
- /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between gap-2 pl-1 pr-4 pt-4", children: [
4511
- /* @__PURE__ */ jsxs26("div", { className: "flex items-center ", children: [
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 && (isValidElement2(icon) ? cloneElement(
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__ */ jsxs26("div", { ref: containerRef, className: "w-full px-4", children: [
4527
- /* @__PURE__ */ jsx37("div", { className: "mb-3 w-full sm:hidden", children: /* @__PURE__ */ jsxs26(
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__ */ jsxs26(SelectTrigger, { className: "h-9 w-full gap-2 [&>svg:first-child]:shrink-0", children: [
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__ */ jsxs26(
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__ */ jsxs26(DropdownMenu, { children: [
4554
- /* @__PURE__ */ jsxs26(
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 jsxs27 } from "react/jsx-runtime";
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__ */ jsxs27(Fragment10, { children: [
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__ */ jsxs27(
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__ */ jsxs27(AlertDialogContent, { children: [
4642
- /* @__PURE__ */ jsxs27(AlertDialogHeader, { children: [
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__ */ jsxs27(AlertDialogFooter, { children: [
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 jsxs28 } from "react/jsx-runtime";
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__ */ jsxs28(Fragment11, { children: [
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 jsxs29 } from "react/jsx-runtime";
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__ */ jsxs29(Empty, { className: cn("cn-entity-empty-state w-full", className), children: [
4832
- /* @__PURE__ */ jsxs29(EmptyHeader, { className: "flex w-full max-w-lg flex-col items-center text-center", children: [
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 jsxs30 } from "react/jsx-runtime";
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__ */ jsxs30("div", { className: cn("flex w-full items-center gap-2", className), children: [
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__ */ jsxs30(
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__ */ jsxs30(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
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__ */ jsxs30(SelectContent, { children: [
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 jsxs31 } from "react/jsx-runtime";
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__ */ jsxs31(
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__ */ jsxs31(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
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__ */ jsxs31(SelectContent, { children: [
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 jsxs32 } from "react/jsx-runtime";
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__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs32(
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__ */ jsxs32(AlertDialog, { children: [
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__ */ jsxs32(AlertDialogContent, { children: [
5014
- /* @__PURE__ */ jsxs32(AlertDialogHeader, { children: [
5083
+ /* @__PURE__ */ jsxs33(AlertDialogContent, { children: [
5084
+ /* @__PURE__ */ jsxs33(AlertDialogHeader, { children: [
5015
5085
  /* @__PURE__ */ jsx44(AlertDialogTitle, { children: "Are you sure?" }),
5016
- /* @__PURE__ */ jsxs32(AlertDialogDescription, { children: [
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__ */ jsxs32(AlertDialogFooter, { children: [
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 jsxs33 } from "react/jsx-runtime";
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__ */ jsxs33("div", { className: "flex flex-col gap-4", children: [
5059
- hasTitleRow && /* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between", children: [
5060
- /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs33("div", { className: "flex items-center gap-3", children: [
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__ */ jsxs33(
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__ */ jsxs33("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: [
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 jsxs34 } from "react/jsx-runtime";
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__ */ jsxs34(Table, { children: [
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__ */ jsxs34("div", { className: "cn-entity-loading-card", children: [
5229
- /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs34("div", { className: "flex gap-2", children: [
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 jsxs35 } from "react/jsx-runtime";
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__ */ jsxs35("div", { className: cn("relative w-full min-w-0", className), children: [
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 jsxs36 } from "react/jsx-runtime";
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__ */ jsxs36("div", { className: cn("relative w-full min-w-0", className), children: [
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 jsxs37 } from "react/jsx-runtime";
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__ */ jsxs37(
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__ */ jsxs37(
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__ */ jsxs37("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs37("div", { "data-slot": "section-content", children: [
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 jsxs38 } from "react/jsx-runtime";
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__ */ jsxs38("div", { className: cn("flex w-full items-center gap-0", className), children: [
5430
- /* @__PURE__ */ jsx51("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs38(Select, { value: sort, onValueChange: (v) => onSortChange(v), children: [
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 jsxs39 } from "react/jsx-runtime";
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__ */ jsxs39("div", { className: "space-y-4", children: [
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 jsxs40 } from "react/jsx-runtime";
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__ */ jsxs40(
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 jsxs41 } from "react/jsx-runtime";
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__ */ jsxs41("div", { className: "cn-data-table-pagination flex flex-col sm:flex-row", children: [
5842
- /* @__PURE__ */ jsxs41("div", { className: "cn-data-table-pagination-left flex items-center justify-center sm:justify-start", children: [
5843
- /* @__PURE__ */ jsx57("div", { className: "cn-data-table-pagination-summary text-muted-foreground", children: /* @__PURE__ */ jsxs41("span", { children: [
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__ */ jsxs41("div", { className: "cn-data-table-pagination-size flex items-center", children: [
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__ */ jsxs41(
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__ */ jsxs41(
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__ */ jsxs41(
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__ */ jsxs41(
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__ */ jsxs41(
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__ */ jsxs41(
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 jsxs42 } from "react/jsx-runtime";
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__ */ jsxs42(
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 jsxs43 } from "react/jsx-runtime";
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__ */ jsxs43(Fragment12, { children: [
6212
+ return /* @__PURE__ */ jsxs44(Fragment12, { children: [
6143
6213
  /* @__PURE__ */ jsx60(Button, { variant: "outline", size: "md", onClick: onCancel, children: "Cancel" }),
6144
- /* @__PURE__ */ jsxs43(
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__ */ jsxs43(Fragment12, { children: [
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__ */ jsxs43("div", { className: "space-y-4", children: [
6348
- multiple ? /* @__PURE__ */ jsxs43(DisplayTable, { withTableBorder: true, children: [
6349
- /* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */ jsxs43(DisplayTableTr, { children: [
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__ */ jsxs43(
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__ */ jsxs43(DisplayTable, { withTableBorder: true, children: [
6384
- /* @__PURE__ */ jsx60(DisplayTableThead, { children: /* @__PURE__ */ jsxs43(DisplayTableTr, { children: [
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__ */ jsxs43(
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__ */ jsxs43("div", { className: "space-y-4", children: [
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__ */ jsxs43(Fragment12, { children: [
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__ */ jsxs43("div", { className: "flex flex-col gap-4", children: [
6496
- selectedItems.length > 0 && /* @__PURE__ */ jsxs43("div", { className: "cn-selector-selected-bar", children: [
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 jsxs44 } from "react/jsx-runtime";
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__ */ jsxs44("div", { className: cn("flex w-full items-center gap-0", className), children: [
6551
- /* @__PURE__ */ jsx61("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs44(
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 jsxs45 } from "react/jsx-runtime";
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__ */ jsxs45("div", { className: "flex flex-col items-center gap-2 text-center", children: [
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__ */ jsxs45(
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__ */ jsxs45(
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__ */ jsxs45("div", { className: "flex items-start justify-between gap-3 px-3 pb-3", children: [
7081
- /* @__PURE__ */ jsxs45("div", { className: "flex min-w-0 items-start gap-3", children: [
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__ */ jsxs45("div", { className: "min-w-0", children: [
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__ */ jsxs45("div", { className: "text-muted-foreground flex flex-wrap gap-x-2 text-xs", children: [
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__ */ jsxs45(
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__ */ jsxs45(
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__ */ jsxs45(
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__ */ jsxs45("div", { className: "cn-file-upload-prompt-main flex items-start gap-3", children: [
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__ */ jsxs45("div", { className: "cn-file-upload-copy space-y-1", children: [
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__ */ jsxs45(
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 jsxs46 } from "react/jsx-runtime";
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__ */ jsxs46(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: [
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 jsxs47 } from "react/jsx-runtime";
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__ */ jsxs47(DialogContent, { className: "w-[min(96vw,72rem)] max-w-none overflow-hidden p-0", children: [
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__ */ jsxs47("div", { className: "grid gap-0 lg:grid-cols-[minmax(0,1fr)_340px]", children: [
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__ */ jsxs47("div", { className: "flex min-w-0 flex-col gap-5 px-5 py-4 sm:px-6 sm:py-5", children: [
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__ */ jsxs47("div", { className: "space-y-3", children: [
7510
- /* @__PURE__ */ jsxs47("div", { className: "flex items-center justify-between gap-3", children: [
7511
- /* @__PURE__ */ jsxs47(Label, { className: "flex items-center gap-2 text-sm font-semibold", children: [
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__ */ jsxs47(Text, { size: "sm", variant: "muted", children: [
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__ */ jsxs47("div", { className: "flex justify-between", children: [
7531
- /* @__PURE__ */ jsxs47(Text, { size: "xs", variant: "muted", children: [
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__ */ jsxs47("div", { className: "space-y-3", children: [
7539
- /* @__PURE__ */ jsxs47("div", { className: "flex items-center justify-between gap-3", children: [
7540
- /* @__PURE__ */ jsxs47(Label, { className: "flex items-center gap-2 text-sm font-semibold", children: [
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__ */ jsxs47(Text, { size: "sm", variant: "muted", children: [
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__ */ jsxs47(DialogFooter, { className: "border-border/70 flex justify-end border-t px-5 py-4 sm:px-6", children: [
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 jsxs48 } from "react/jsx-runtime";
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__ */ jsxs48(Fragment13, { children: [
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__ */ jsxs48(
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__ */ jsxs48("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [
7651
- /* @__PURE__ */ jsxs48("div", { className: "cn-image-upload-copy space-y-1", children: [
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__ */ jsxs48("div", { className: "cn-image-upload-toolbar flex gap-2", children: [
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__ */ jsxs48("div", { className: "grid gap-4 lg:grid-cols-[minmax(0,1fr)_220px]", children: [
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__ */ jsxs48("div", { className: "cn-image-upload-sidebar flex flex-col justify-between gap-4", children: [
7744
- /* @__PURE__ */ jsxs48("div", { className: "cn-image-upload-meta space-y-1", children: [
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__ */ jsxs48("div", { className: "text-muted-foreground text-xs", children: [
7824
+ /* @__PURE__ */ jsxs49("div", { className: "text-muted-foreground text-xs", children: [
7755
7825
  "Accepts ",
7756
7826
  accept
7757
7827
  ] })
7758
7828
  ] }),
7759
- /* @__PURE__ */ jsxs48("div", { className: "cn-image-upload-actions flex flex-wrap gap-2", children: [
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__ */ jsxs48("div", { className: "cn-image-upload-placeholder flex min-h-64 flex-col items-center justify-center gap-3 px-6 text-center", children: [
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__ */ jsxs48("div", { className: "cn-image-upload-placeholder-copy space-y-1", children: [
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__ */ jsxs48("div", { className: "text-muted-foreground text-sm", children: [
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 jsxs49 } from "react/jsx-runtime";
7912
+ import { jsx as jsx70, jsxs as jsxs50 } from "react/jsx-runtime";
7843
7913
  function PageSection({ title, className, children }) {
7844
- return /* @__PURE__ */ jsxs49("div", { className: cn("flex flex-col gap-4", className), children: [
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 jsxs50 } from "react/jsx-runtime";
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__ */ jsxs50(
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__ */ jsxs50("div", { className: "flex grow items-center justify-between", children: [
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 jsxs51 } from "react/jsx-runtime";
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__ */ jsxs51(SidebarProvider, { children: [
8047
+ return /* @__PURE__ */ jsx74(BreadcrumbProvider, { children: /* @__PURE__ */ jsxs52(SidebarProvider, { children: [
7960
8048
  sidebar,
7961
- /* @__PURE__ */ jsxs51(SidebarInset, { children: [
7962
- /* @__PURE__ */ jsxs51("header", { className: "cn-shell-header", children: [
7963
- /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs51("div", { className: "hidden md:flex md:items-center md:gap-2", children: [
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 jsxs52 } from "react/jsx-runtime";
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__ */ jsxs52("div", { className: "flex", children: [
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__ */ jsxs52(
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__ */ jsxs52("div", { className: "mb-2 flex items-center justify-between", children: [
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__ */ jsxs52(Fragment14, { children: [
8317
- !hideWeekdays && /* @__PURE__ */ jsxs52("div", { className: cn("mb-0.5", dayGridClass), children: [
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__ */ jsxs52(
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__ */ jsxs52(
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__ */ jsxs52("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
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 jsxs53 } from "react/jsx-runtime";
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__ */ jsxs53(
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 jsxs54 } from "react/jsx-runtime";
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__ */ jsxs54(Dialog, { open, onOpenChange: setOpen, children: [
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__ */ jsxs54(DialogContent, { children: [
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__ */ jsxs54("div", { className: "flex flex-col gap-2", children: [
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__ */ jsxs54(DialogFooter, { children: [
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 jsxs55 } from "react/jsx-runtime";
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__ */ jsxs55(Dialog, { open, onOpenChange: setOpen, children: [
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__ */ jsxs55(DialogContent, { children: [
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__ */ jsxs55("div", { className: "flex flex-col gap-2", children: [
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__ */ jsxs55(DialogFooter, { children: [
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 jsxs56 } from "react/jsx-runtime";
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__ */ jsxs56(Fragment15, { children: [
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 jsxs57 } from "react/jsx-runtime";
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__ */ jsxs57(Dialog, { open, onOpenChange: setOpen, children: [
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__ */ jsxs57(DialogContent, { children: [
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__ */ jsxs57("div", { className: "flex flex-col gap-2", children: [
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__ */ jsxs57(DialogFooter, { children: [
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 jsxs58 } from "react/jsx-runtime";
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__ */ jsxs58("div", { className: cn("flex flex-col gap-2", className), children: [
10139
- label && /* @__PURE__ */ jsxs58(Label, { children: [
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__ */ jsxs58(RichTextEditor, { editor, children: [
10144
- /* @__PURE__ */ jsxs58(RichTextEditorToolbar, { children: [
10145
- /* @__PURE__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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__ */ jsxs58(RichTextEditorControlsGroup, { children: [
10286
- isControllerEnabled("link") && /* @__PURE__ */ jsxs58(Fragment16, { children: [
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__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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__ */ jsxs58(Fragment16, { children: [
10477
+ mode === "large" && /* @__PURE__ */ jsxs59(Fragment16, { children: [
10390
10478
  isControllerEnabled("table") && /* @__PURE__ */ jsx86(RichTextEditorControlsGroup, { children: /* @__PURE__ */ jsx86(TableControl, { editor }) }),
10391
- /* @__PURE__ */ jsxs58(RichTextEditorControlsGroup, { children: [
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 jsxs59 } from "react/jsx-runtime";
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__ */ jsxs59(Field, { className: cn(className), children: [
10442
- label && /* @__PURE__ */ jsxs59(FieldLabel, { children: [
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__ */ jsxs59(FieldContent, { children: [
10447
- /* @__PURE__ */ jsxs59("div", { className: "relative", children: [
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__ */ jsxs59("div", { className: "absolute top-3 right-2 z-10 flex items-center gap-1", children: [
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__ */ jsxs59("div", { className: "space-y-2", children: [
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__ */ jsxs59(
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__ */ jsxs59(DialogTitle, { children: [
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 jsxs60 } from "react/jsx-runtime";
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__ */ jsxs60(Field, { className: cn(className), children: [
10573
- label && /* @__PURE__ */ jsxs60(FieldLabel, { children: [
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__ */ jsxs60(FieldContent, { children: [
10578
- /* @__PURE__ */ jsxs60("div", { className: "relative", children: [
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__ */ jsxs60("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs60("div", { className: "flex-1 space-y-1", children: [
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 jsxs61 } from "react/jsx-runtime";
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__ */ jsxs61(Field, { className: cn("cn-locale-input", className), children: [
10650
- label && /* @__PURE__ */ jsxs61(FieldLabel, { children: [
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__ */ jsxs61(FieldContent, { children: [
10655
- /* @__PURE__ */ jsxs61("div", { className: "relative", children: [
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__ */ jsxs61("div", { className: "flex items-start gap-2", children: [
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__ */ jsxs61("div", { className: "flex-1 space-y-1", children: [
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 jsxs62 } from "react/jsx-runtime";
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__ */ jsxs62(
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 jsxs63 } from "react/jsx-runtime";
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__ */ jsxs63(
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__ */ jsxs63(ModalRoot, { open: currentOpen, onOpenChange: handleOpenChange, ...props, children: [
11078
+ return /* @__PURE__ */ jsxs64(ModalRoot, { open: currentOpen, onOpenChange: handleOpenChange, ...props, children: [
10991
11079
  trigger && /* @__PURE__ */ jsx94(ModalTrigger, { render: trigger, ...triggerProps }),
10992
- /* @__PURE__ */ jsxs63(
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__ */ jsxs63(ModalHeader, { className: headerProps?.className, ...headerProps, children: [
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 jsxs64 } from "react/jsx-runtime";
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__ */ jsxs64(
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 jsxs65 } from "react/jsx-runtime";
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__ */ jsxs65(
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 jsxs66 } from "react/jsx-runtime";
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__ */ jsxs66("svg", { className: "size-4", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
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__ */ jsxs66("svg", { className: "size-3.5", fill: "none", viewBox: "0 0 24 24", "aria-hidden": true, children: [
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__ */ jsxs66(Popover, { open: state2.open, onOpenChange: state2.handleOpenChange, children: [
11639
- /* @__PURE__ */ jsx99("div", { ref: state2.triggerRef, className: "w-full", children: /* @__PURE__ */ jsxs66(
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__ */ jsxs66("span", { className: "mr-1 flex items-center gap-0.5 pr-0.5", children: [
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 jsxs67 } from "react/jsx-runtime";
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__ */ jsxs67(
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 jsxs68 } from "react/jsx-runtime";
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__ */ jsxs68("div", { className: cn("relative inline-block w-full", className), children: [
11865
- label ? /* @__PURE__ */ jsxs68("label", { className: "mb-1.5 block text-sm font-semibold text-foreground", children: [
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__ */ jsxs68("div", { ref: triggerRef, className: "relative", children: [
11871
- dropdownType === "modal" ? /* @__PURE__ */ jsx101(DialogTrigger, { children: triggerButton }) : /* @__PURE__ */ jsx101(PopoverTrigger, { className: "block w-full", children: triggerButton }),
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__ */ jsxs68(
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__ */ jsxs68(
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 jsxs69 } from "react/jsx-runtime";
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__ */ jsxs69("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: [
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__ */ jsxs69(Select, { value: hourVal, onValueChange: (v) => setHour12(Number(v), ampm), children: [
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__ */ jsxs69(
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__ */ jsxs69(Fragment18, { children: [
12315
+ withSeconds && /* @__PURE__ */ jsxs70(Fragment18, { children: [
12216
12316
  /* @__PURE__ */ jsx104("span", { className: "text-muted-foreground", children: ":" }),
12217
- /* @__PURE__ */ jsxs69(
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__ */ jsxs69("div", { className: "flex", children: [
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__ */ jsxs69(
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__ */ jsxs69("div", { className: "mb-2 flex items-center justify-between", children: [
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__ */ jsxs69(Fragment18, { children: [
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__ */ jsxs69("div", { className: "mt-2 flex items-center justify-between gap-2 border-t border-border pt-2", children: [
12439
- /* @__PURE__ */ jsxs69("div", { className: "flex gap-1", children: [
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 jsxs70 } from "react/jsx-runtime";
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__ */ jsxs70(
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__ */ jsxs70(Fragment19, { children: [
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 jsxs71 } from "react/jsx-runtime";
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__ */ jsxs71(
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__ */ jsxs71(
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 jsxs72 } from "react/jsx-runtime";
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__ */ jsxs72("div", { className: "min-w-[22rem] p-3", children: [
13549
- /* @__PURE__ */ jsxs72("div", { className: "mb-2 flex items-center justify-between", children: [
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__ */ jsxs72(
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__ */ jsxs72("div", { className: "mt-2 flex items-center justify-end gap-1 border-t border-border pt-2", children: [
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 jsxs73 } from "react/jsx-runtime";
14228
- var CheckIcon = /* @__PURE__ */ jsxs73(
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__ */ jsxs73("div", { className: "flex items-center gap-2", children: [
14257
- /* @__PURE__ */ jsxs73("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: [
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__ */ jsxs73(Fragment20, { children: [
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 jsxs74 } from "react/jsx-runtime";
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__ */ jsxs74("div", { className: "min-w-[22rem] p-3", children: [
14563
- /* @__PURE__ */ jsxs74("div", { className: "mb-2 flex items-center justify-between", children: [
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__ */ jsxs74("div", { className: "mt-2 flex justify-end gap-1 border-t border-border pt-2", children: [
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 jsxs75 } from "react/jsx-runtime";
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__ */ jsxs75(
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__ */ jsxs75(Fragment21, { children: [
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__ */ jsxs75(Fragment21, { children: [
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 jsxs76 } from "react/jsx-runtime";
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__ */ jsxs76(Fragment22, { children: [
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 jsxs77 } from "react/jsx-runtime";
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__ */ jsxs77(
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__ */ jsxs77(
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 jsxs78 } from "react/jsx-runtime";
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__ */ jsxs78(
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__ */ jsxs78(
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__ */ jsxs78(DropdownMenu, { children: [
15823
- /* @__PURE__ */ jsxs78(
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 jsxs79 } from "react/jsx-runtime";
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__ */ jsxs79(Fragment23, { children: [
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 jsxs80 } from "react/jsx-runtime";
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__ */ jsxs80(
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__ */ jsxs80(
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 jsxs81 } from "react/jsx-runtime";
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__ */ jsxs81(
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__ */ jsxs81(
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__ */ jsxs81(Fragment24, { children: [
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__ */ jsxs81(
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__ */ jsxs81("div", { className: "grid gap-1.5", children: [
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__ */ jsxs81(
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 jsxs82 } from "react/jsx-runtime";
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__ */ jsxs82(
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 jsxs83 } from "react/jsx-runtime";
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__ */ jsxs83(
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__ */ jsxs83(Fragment25, { children: [
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__ */ jsxs83("div", { className: "flex flex-col gap-1", children: [
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__ */ jsxs83("div", { className: "flex flex-col gap-1", children: [
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__ */ jsxs83("div", { className: "relative", children: [
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__ */ jsxs83("div", { className: "flex items-center gap-2", children: [
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 jsxs84 } from "react/jsx-runtime";
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__ */ jsxs84("div", { ref: anchorRef, className: "relative w-full", children: [
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__ */ jsxs84(Popover, { open: dropdownOpened, onOpenChange: setDropdownOpened, children: [
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 jsxs85 } from "react/jsx-runtime";
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__ */ jsxs85(
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__ */ jsxs85(InputGroup, { className: cn("w-auto", className), children: [
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__ */ jsxs85(InputGroupAddon, { align: "inline-end", children: [
17975
- /* @__PURE__ */ jsx142(
17976
- InputGroupButton,
17977
- {
17978
- size: "icon-xs",
17979
- variant: "ghost",
17980
- render: /* @__PURE__ */ jsx142(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", children: /* @__PURE__ */ jsx142(
17981
- IconChevronDown9,
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
- "data-slot": "combobox-trigger-icon",
17984
- className: "cn-combobox-trigger-icon"
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
- showClear && /* @__PURE__ */ jsx142(
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__ */ jsxs85(
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 jsxs86 } from "react/jsx-runtime";
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__ */ jsxs86(
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__ */ jsxs86(
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__ */ jsxs86(
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 jsxs87 } from "react/jsx-runtime";
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__ */ jsxs87(Table, { children: [
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 jsxs88 } from "react/jsx-runtime";
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__ */ jsxs88(
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 jsxs89 } from "react/jsx-runtime";
18732
+ import { jsx as jsx149, jsxs as jsxs90 } from "react/jsx-runtime";
18624
18733
  function DataTableViewOptions({
18625
18734
  table
18626
18735
  }) {
18627
- return /* @__PURE__ */ jsxs89(DropdownMenu, { children: [
18628
- /* @__PURE__ */ jsxs89(
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__ */ jsxs89(DropdownMenuGroup, { children: [
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 jsxs90 } from "react/jsx-runtime";
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__ */ jsxs90(DrawerPortal, { "data-slot": "drawer-portal", keepMounted: true, children: [
18828
+ return /* @__PURE__ */ jsxs91(DrawerPortal, { "data-slot": "drawer-portal", keepMounted: true, children: [
18720
18829
  /* @__PURE__ */ jsx150(DrawerOverlay, {}),
18721
- /* @__PURE__ */ jsxs90(
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 jsxs91 } from "react/jsx-runtime";
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__ */ jsxs91(Fragment26, { children: [
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__ */ jsxs91(DropdownMenuSub, { children: [
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__ */ jsxs91(DropdownMenu, { children: [
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__ */ jsxs91(DropdownMenu, { children: [
18925
- /* @__PURE__ */ jsxs91("div", { className: cn("cn-dropdown-button-shell", className), children: [
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 jsxs92 } from "react/jsx-runtime";
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__ */ jsxs92(Fragment27, { children: [
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 jsxs93 } from "react/jsx-runtime";
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__ */ jsxs93(Fragment28, { children: [
19245
- /* @__PURE__ */ jsxs93(
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__ */ jsxs93(
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__ */ jsxs93(
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__ */ jsxs93(
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__ */ jsxs93(
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__ */ jsxs93("div", { children: [
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__ */ jsxs93(
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__ */ jsxs93("div", { className: "cn-file-drop-input-item-left", children: [
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 jsxs94 } from "react/jsx-runtime";
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__ */ jsxs94("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
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__ */ jsxs94("div", { "data-slot": "file-input-meta", className: "cn-file-input-meta", children: [
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__ */ jsxs94(Fragment29, { children: [
19551
- /* @__PURE__ */ jsxs94(
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__ */ jsxs94(Fragment29, { children: [
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__ */ jsxs94("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
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__ */ jsxs94(
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__ */ jsxs94(Fragment29, { children: [
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__ */ jsxs94("div", { "data-slot": "file-input-body", className: "cn-file-input-body", children: [
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__ */ jsxs94(
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__ */ jsxs94("div", { className: "cn-file-input-item-left", children: [
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 jsxs95 } from "react/jsx-runtime";
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__ */ jsxs95(
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 jsxs96 } from "react/jsx-runtime";
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__ */ jsxs96("div", { "data-slot": "json-input", className: "cn-json-input relative w-full", children: [
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 jsxs97 } from "react/jsx-runtime";
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__ */ jsxs97(
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__ */ jsxs97(
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__ */ jsxs97(
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 jsxs98 } from "react/jsx-runtime";
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__ */ jsxs98(InputGroup, { disabled, className: cn(sizes.group), children: [
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__ */ jsxs98(
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 jsxs99 } from "react/jsx-runtime";
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__ */ jsxs99(
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__ */ jsxs99("div", { className: "relative", children: [
21181
- /* @__PURE__ */ jsx171("div", { className: "cn-combobox-chips", children: /* @__PURE__ */ jsxs99("div", { className: "flex flex-wrap gap-1", children: [
21182
- selectedOptions.map((option) => /* @__PURE__ */ jsxs99(
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__ */ jsxs99(
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__ */ jsxs99(
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 jsxs100 } from "react/jsx-runtime";
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__ */ jsxs100(
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 jsxs101 } from "react/jsx-runtime";
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__ */ jsxs101(
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 jsxs102 } from "react/jsx-runtime";
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__ */ jsxs102(
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__ */ jsxs102(
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 jsxs103 } from "react/jsx-runtime";
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__ */ jsxs103(
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__ */ jsxs103(InputGroup, { disabled, className: cn(sizeClasses5[size]), children: [
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 jsxs104 } from "react/jsx-runtime";
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__ */ jsxs104(
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__ */ jsxs104(
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__ */ jsxs104(
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 jsxs105 } from "react/jsx-runtime";
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__ */ jsxs105(
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 jsxs106 } from "react/jsx-runtime";
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__ */ jsxs106(
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 jsxs107 } from "react/jsx-runtime";
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__ */ jsxs107(
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__ */ jsxs107("svg", { width: size, height: size, className: "-rotate-90", "aria-hidden": "true", children: [
22660
- /* @__PURE__ */ jsxs107("title", { children: [
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 jsxs108 } from "react/jsx-runtime";
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__ */ jsxs108(
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__ */ jsxs108(
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__ */ jsxs108("title", { children: [
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 jsxs109 } from "react/jsx-runtime";
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__ */ jsxs109(
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__ */ jsxs109(
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 jsxs110 } from "react/jsx-runtime";
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__ */ jsxs110(Fragment30, { children: [
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__ */ jsxs110(
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__ */ jsxs110(AlertDialogContent, { children: [
23147
- /* @__PURE__ */ jsxs110(AlertDialogHeader, { children: [
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__ */ jsxs110(AlertDialogFooter, { children: [
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 jsxs111 } from "react/jsx-runtime";
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__ */ jsxs111(
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__ */ jsxs111(
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__ */ jsxs111(
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 jsxs112 } from "react/jsx-runtime";
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__ */ jsxs112(
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__ */ jsxs112(
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__ */ jsxs112(
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 jsxs113 } from "react/jsx-runtime";
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__ */ jsxs113(
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(InputGroupAddon, { align: "inline-start", className: "pointer-events-none", children: leftSection }),
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 jsxs114 } from "react/jsx-runtime";
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__ */ jsxs114(
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__ */ jsxs114(
24334
+ /* @__PURE__ */ jsxs115(
24224
24335
  UnstyledButton,
24225
24336
  {
24226
24337
  type: "button",