@mesob/ui 0.5.4 → 0.5.6

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