@akira-io/ui 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -42,9 +42,8 @@ import {
42
42
  TabsList,
43
43
  TabsTrigger,
44
44
  Textarea,
45
- confirmDialogDefaultLabels,
46
- floatingSheetDefaultLabels
47
- } from "./chunk-DPLCEU34.js";
45
+ confirmDialogDefaultLabels
46
+ } from "./chunk-RE4M2G2Y.js";
48
47
  import {
49
48
  CopyButton,
50
49
  copyButtonLabels
@@ -168,7 +167,11 @@ import {
168
167
  TooltipProvider,
169
168
  TooltipTrigger,
170
169
  useSidebar
171
- } from "./chunk-ZQXZ4UGE.js";
170
+ } from "./chunk-PYXUFFMO.js";
171
+ import {
172
+ floatingSheetDefaultLabels,
173
+ useSheetPortalContainer
174
+ } from "./chunk-EXTOGROG.js";
172
175
  import {
173
176
  Input,
174
177
  Separator
@@ -1463,9 +1466,11 @@ function ContextMenuSubContent({
1463
1466
  function ContextMenuContent({
1464
1467
  className,
1465
1468
  slotName = "context-menu-content",
1469
+ container,
1466
1470
  ...props
1467
1471
  }) {
1468
- return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
1472
+ const portalContainer = useSheetPortalContainer(container);
1473
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx12(
1469
1474
  ContextMenuPrimitive.Content,
1470
1475
  {
1471
1476
  className: cn(
@@ -1733,6 +1738,10 @@ function RowActionsMenu({
1733
1738
  actions,
1734
1739
  slotName = "data-table-row-actions"
1735
1740
  }) {
1741
+ const visible = actions.filter((action) => !action.hidden?.(row));
1742
+ if (visible.length === 0) {
1743
+ return null;
1744
+ }
1736
1745
  return /* @__PURE__ */ jsx14(
1737
1746
  "div",
1738
1747
  {
@@ -1749,7 +1758,7 @@ function RowActionsMenu({
1749
1758
  children: /* @__PURE__ */ jsx14(MoreVertical, { className: "size-4" })
1750
1759
  }
1751
1760
  ) }),
1752
- /* @__PURE__ */ jsx14(DropdownMenuContent, { align: "end", className: "rounded-2xl", children: actions.map((action) => /* @__PURE__ */ jsxs9(
1761
+ /* @__PURE__ */ jsx14(DropdownMenuContent, { align: "end", className: "rounded-2xl", children: visible.map((action) => /* @__PURE__ */ jsxs9(
1753
1762
  DropdownMenuItem,
1754
1763
  {
1755
1764
  onClick: () => action.onClick(row),
@@ -2815,34 +2824,64 @@ function HoverCardContent({
2815
2824
  align = "center",
2816
2825
  sideOffset = 4,
2817
2826
  slotName = "hover-card-content",
2827
+ container,
2818
2828
  ...props
2819
2829
  }) {
2820
- return /* @__PURE__ */ jsx23(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx23(
2821
- HoverCardPrimitive.Content,
2830
+ const portalContainer = useSheetPortalContainer(container);
2831
+ return /* @__PURE__ */ jsx23(
2832
+ HoverCardPrimitive.Portal,
2822
2833
  {
2823
- align,
2824
- sideOffset,
2825
- className: cn(
2826
- `${panelSurface} w-64 p-4 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 origin-(--radix-hover-card-content-transform-origin) bg-popover/90 outline-hidden`,
2827
- className
2828
- ),
2829
- ...props,
2830
- "data-slot": slotName
2834
+ container: portalContainer,
2835
+ "data-slot": "hover-card-portal",
2836
+ children: /* @__PURE__ */ jsx23(
2837
+ HoverCardPrimitive.Content,
2838
+ {
2839
+ align,
2840
+ sideOffset,
2841
+ className: cn(
2842
+ `${panelSurface} w-64 p-4 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 origin-(--radix-hover-card-content-transform-origin) bg-popover/90 outline-hidden`,
2843
+ className
2844
+ ),
2845
+ ...props,
2846
+ "data-slot": slotName
2847
+ }
2848
+ )
2831
2849
  }
2832
- ) });
2850
+ );
2833
2851
  }
2834
2852
 
2835
2853
  // src/components/ui/menubar.tsx
2836
2854
  import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2, CircleIcon as CircleIcon2 } from "lucide-react";
2855
+ import { Menubar as MenubarPrimitive2 } from "radix-ui";
2856
+
2857
+ // src/components/ui/menubar-portal.tsx
2837
2858
  import { Menubar as MenubarPrimitive } from "radix-ui";
2838
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
2859
+ import { jsx as jsx24 } from "react/jsx-runtime";
2860
+ function MenubarPortal({
2861
+ slotName = "menubar-portal",
2862
+ container,
2863
+ ...props
2864
+ }) {
2865
+ const portalContainer = useSheetPortalContainer(container);
2866
+ return /* @__PURE__ */ jsx24(
2867
+ MenubarPrimitive.Portal,
2868
+ {
2869
+ container: portalContainer,
2870
+ ...props,
2871
+ "data-slot": slotName
2872
+ }
2873
+ );
2874
+ }
2875
+
2876
+ // src/components/ui/menubar.tsx
2877
+ import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
2839
2878
  function Menubar({
2840
2879
  className,
2841
2880
  slotName = "menubar",
2842
2881
  ...props
2843
2882
  }) {
2844
- return /* @__PURE__ */ jsx24(
2845
- MenubarPrimitive.Root,
2883
+ return /* @__PURE__ */ jsx25(
2884
+ MenubarPrimitive2.Root,
2846
2885
  {
2847
2886
  className: cn(
2848
2887
  "h-9 gap-1 p-1 shadow-sm backdrop-blur-xl rounded-2xl flex items-center border border-border bg-card",
@@ -2857,33 +2896,27 @@ function MenubarMenu({
2857
2896
  slotName = "menubar-menu",
2858
2897
  ...props
2859
2898
  }) {
2860
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Menu, { ...props, "data-slot": slotName });
2899
+ return /* @__PURE__ */ jsx25(MenubarPrimitive2.Menu, { ...props, "data-slot": slotName });
2861
2900
  }
2862
2901
  function MenubarGroup({
2863
2902
  slotName = "menubar-group",
2864
2903
  ...props
2865
2904
  }) {
2866
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Group, { ...props, "data-slot": slotName });
2867
- }
2868
- function MenubarPortal({
2869
- slotName = "menubar-portal",
2870
- ...props
2871
- }) {
2872
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { ...props, "data-slot": slotName });
2905
+ return /* @__PURE__ */ jsx25(MenubarPrimitive2.Group, { ...props, "data-slot": slotName });
2873
2906
  }
2874
2907
  function MenubarRadioGroup({
2875
2908
  slotName = "menubar-radio-group",
2876
2909
  ...props
2877
2910
  }) {
2878
- return /* @__PURE__ */ jsx24(MenubarPrimitive.RadioGroup, { ...props, "data-slot": slotName });
2911
+ return /* @__PURE__ */ jsx25(MenubarPrimitive2.RadioGroup, { ...props, "data-slot": slotName });
2879
2912
  }
2880
2913
  function MenubarTrigger({
2881
2914
  className,
2882
2915
  slotName = "menubar-trigger",
2883
2916
  ...props
2884
2917
  }) {
2885
- return /* @__PURE__ */ jsx24(
2886
- MenubarPrimitive.Trigger,
2918
+ return /* @__PURE__ */ jsx25(
2919
+ MenubarPrimitive2.Trigger,
2887
2920
  {
2888
2921
  className: cn(
2889
2922
  "px-2 py-1 text-sm font-medium rounded-xl flex items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
@@ -2902,8 +2935,8 @@ function MenubarContent({
2902
2935
  slotName = "menubar-content",
2903
2936
  ...props
2904
2937
  }) {
2905
- return /* @__PURE__ */ jsx24(MenubarPortal, { children: /* @__PURE__ */ jsx24(
2906
- MenubarPrimitive.Content,
2938
+ return /* @__PURE__ */ jsx25(MenubarPortal, { children: /* @__PURE__ */ jsx25(
2939
+ MenubarPrimitive2.Content,
2907
2940
  {
2908
2941
  align,
2909
2942
  alignOffset,
@@ -2924,8 +2957,8 @@ function MenubarItem({
2924
2957
  slotName = "menubar-item",
2925
2958
  ...props
2926
2959
  }) {
2927
- return /* @__PURE__ */ jsx24(
2928
- MenubarPrimitive.Item,
2960
+ return /* @__PURE__ */ jsx25(
2961
+ MenubarPrimitive2.Item,
2929
2962
  {
2930
2963
  "data-inset": inset,
2931
2964
  "data-variant": variant,
@@ -2946,7 +2979,7 @@ function MenubarCheckboxItem({
2946
2979
  ...props
2947
2980
  }) {
2948
2981
  return /* @__PURE__ */ jsxs16(
2949
- MenubarPrimitive.CheckboxItem,
2982
+ MenubarPrimitive2.CheckboxItem,
2950
2983
  {
2951
2984
  className: cn(
2952
2985
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -2956,7 +2989,7 @@ function MenubarCheckboxItem({
2956
2989
  ...props,
2957
2990
  "data-slot": slotName,
2958
2991
  children: [
2959
- /* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon2, { className: "size-4" }) }) }),
2992
+ /* @__PURE__ */ jsx25("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive2.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon2, { className: "size-4" }) }) }),
2960
2993
  children
2961
2994
  ]
2962
2995
  }
@@ -2969,7 +3002,7 @@ function MenubarRadioItem({
2969
3002
  ...props
2970
3003
  }) {
2971
3004
  return /* @__PURE__ */ jsxs16(
2972
- MenubarPrimitive.RadioItem,
3005
+ MenubarPrimitive2.RadioItem,
2973
3006
  {
2974
3007
  className: cn(
2975
3008
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -2978,7 +3011,7 @@ function MenubarRadioItem({
2978
3011
  ...props,
2979
3012
  "data-slot": slotName,
2980
3013
  children: [
2981
- /* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CircleIcon2, { className: "size-2 fill-current" }) }) }),
3014
+ /* @__PURE__ */ jsx25("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive2.ItemIndicator, { children: /* @__PURE__ */ jsx25(CircleIcon2, { className: "size-2 fill-current" }) }) }),
2982
3015
  children
2983
3016
  ]
2984
3017
  }
@@ -2990,8 +3023,8 @@ function MenubarLabel({
2990
3023
  slotName = "menubar-label",
2991
3024
  ...props
2992
3025
  }) {
2993
- return /* @__PURE__ */ jsx24(
2994
- MenubarPrimitive.Label,
3026
+ return /* @__PURE__ */ jsx25(
3027
+ MenubarPrimitive2.Label,
2995
3028
  {
2996
3029
  "data-inset": inset,
2997
3030
  className: cn(
@@ -3008,8 +3041,8 @@ function MenubarSeparator({
3008
3041
  slotName = "menubar-separator",
3009
3042
  ...props
3010
3043
  }) {
3011
- return /* @__PURE__ */ jsx24(
3012
- MenubarPrimitive.Separator,
3044
+ return /* @__PURE__ */ jsx25(
3045
+ MenubarPrimitive2.Separator,
3013
3046
  {
3014
3047
  className: cn("-mx-1 my-1 h-px bg-border", className),
3015
3048
  ...props,
@@ -3022,7 +3055,7 @@ function MenubarShortcut({
3022
3055
  slotName = "menubar-shortcut",
3023
3056
  ...props
3024
3057
  }) {
3025
- return /* @__PURE__ */ jsx24(
3058
+ return /* @__PURE__ */ jsx25(
3026
3059
  "span",
3027
3060
  {
3028
3061
  className: cn(
@@ -3038,7 +3071,7 @@ function MenubarSub({
3038
3071
  slotName = "menubar-sub",
3039
3072
  ...props
3040
3073
  }) {
3041
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Sub, { ...props, "data-slot": slotName });
3074
+ return /* @__PURE__ */ jsx25(MenubarPrimitive2.Sub, { ...props, "data-slot": slotName });
3042
3075
  }
3043
3076
  function MenubarSubTrigger({
3044
3077
  className,
@@ -3048,7 +3081,7 @@ function MenubarSubTrigger({
3048
3081
  ...props
3049
3082
  }) {
3050
3083
  return /* @__PURE__ */ jsxs16(
3051
- MenubarPrimitive.SubTrigger,
3084
+ MenubarPrimitive2.SubTrigger,
3052
3085
  {
3053
3086
  "data-inset": inset,
3054
3087
  className: cn(
@@ -3059,7 +3092,7 @@ function MenubarSubTrigger({
3059
3092
  "data-slot": slotName,
3060
3093
  children: [
3061
3094
  children,
3062
- /* @__PURE__ */ jsx24(ChevronRightIcon2, { className: "h-4 w-4 ml-auto" })
3095
+ /* @__PURE__ */ jsx25(ChevronRightIcon2, { className: "h-4 w-4 ml-auto" })
3063
3096
  ]
3064
3097
  }
3065
3098
  );
@@ -3069,8 +3102,8 @@ function MenubarSubContent({
3069
3102
  slotName = "menubar-sub-content",
3070
3103
  ...props
3071
3104
  }) {
3072
- return /* @__PURE__ */ jsx24(
3073
- MenubarPrimitive.SubContent,
3105
+ return /* @__PURE__ */ jsx25(
3106
+ MenubarPrimitive2.SubContent,
3074
3107
  {
3075
3108
  className: cn(
3076
3109
  `${menuSurface} p-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,
@@ -3086,7 +3119,7 @@ function MenubarSubContent({
3086
3119
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
3087
3120
  import { cva as cva2 } from "class-variance-authority";
3088
3121
  import { ChevronDownIcon } from "lucide-react";
3089
- import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
3122
+ import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
3090
3123
  function NavigationMenu({
3091
3124
  className,
3092
3125
  children,
@@ -3106,7 +3139,7 @@ function NavigationMenu({
3106
3139
  "data-slot": slotName,
3107
3140
  children: [
3108
3141
  children,
3109
- viewport && /* @__PURE__ */ jsx25(NavigationMenuViewport, {})
3142
+ viewport && /* @__PURE__ */ jsx26(NavigationMenuViewport, {})
3110
3143
  ]
3111
3144
  }
3112
3145
  );
@@ -3116,7 +3149,7 @@ function NavigationMenuList({
3116
3149
  slotName = "navigation-menu-list",
3117
3150
  ...props
3118
3151
  }) {
3119
- return /* @__PURE__ */ jsx25(
3152
+ return /* @__PURE__ */ jsx26(
3120
3153
  NavigationMenuPrimitive.List,
3121
3154
  {
3122
3155
  className: cn(
@@ -3133,7 +3166,7 @@ function NavigationMenuItem({
3133
3166
  slotName = "navigation-menu-item",
3134
3167
  ...props
3135
3168
  }) {
3136
- return /* @__PURE__ */ jsx25(
3169
+ return /* @__PURE__ */ jsx26(
3137
3170
  NavigationMenuPrimitive.Item,
3138
3171
  {
3139
3172
  className: cn("relative", className),
@@ -3160,7 +3193,7 @@ function NavigationMenuTrigger({
3160
3193
  children: [
3161
3194
  children,
3162
3195
  " ",
3163
- /* @__PURE__ */ jsx25(
3196
+ /* @__PURE__ */ jsx26(
3164
3197
  ChevronDownIcon,
3165
3198
  {
3166
3199
  className: "ml-1 size-3 relative top-[1px] transition duration-300 group-data-[state=open]:rotate-180",
@@ -3176,7 +3209,7 @@ function NavigationMenuContent({
3176
3209
  slotName = "navigation-menu-content",
3177
3210
  ...props
3178
3211
  }) {
3179
- return /* @__PURE__ */ jsx25(
3212
+ return /* @__PURE__ */ jsx26(
3180
3213
  NavigationMenuPrimitive.Content,
3181
3214
  {
3182
3215
  className: cn(
@@ -3194,13 +3227,13 @@ function NavigationMenuViewport({
3194
3227
  slotName = "navigation-menu-viewport",
3195
3228
  ...props
3196
3229
  }) {
3197
- return /* @__PURE__ */ jsx25(
3230
+ return /* @__PURE__ */ jsx26(
3198
3231
  "div",
3199
3232
  {
3200
3233
  className: cn(
3201
3234
  "left-0 absolute top-full isolate z-50 flex justify-center"
3202
3235
  ),
3203
- children: /* @__PURE__ */ jsx25(
3236
+ children: /* @__PURE__ */ jsx26(
3204
3237
  NavigationMenuPrimitive.Viewport,
3205
3238
  {
3206
3239
  className: cn(
@@ -3219,7 +3252,7 @@ function NavigationMenuLink({
3219
3252
  slotName = "navigation-menu-link",
3220
3253
  ...props
3221
3254
  }) {
3222
- return /* @__PURE__ */ jsx25(
3255
+ return /* @__PURE__ */ jsx26(
3223
3256
  NavigationMenuPrimitive.Link,
3224
3257
  {
3225
3258
  className: cn(
@@ -3236,7 +3269,7 @@ function NavigationMenuIndicator({
3236
3269
  slotName = "navigation-menu-indicator",
3237
3270
  ...props
3238
3271
  }) {
3239
- return /* @__PURE__ */ jsx25(
3272
+ return /* @__PURE__ */ jsx26(
3240
3273
  NavigationMenuPrimitive.Indicator,
3241
3274
  {
3242
3275
  className: cn(
@@ -3245,7 +3278,7 @@ function NavigationMenuIndicator({
3245
3278
  ),
3246
3279
  ...props,
3247
3280
  "data-slot": slotName,
3248
- children: /* @__PURE__ */ jsx25("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
3281
+ children: /* @__PURE__ */ jsx26("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
3249
3282
  }
3250
3283
  );
3251
3284
  }
@@ -3256,13 +3289,13 @@ import {
3256
3289
  ChevronRightIcon as ChevronRightIcon3,
3257
3290
  MoreHorizontalIcon
3258
3291
  } from "lucide-react";
3259
- import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
3292
+ import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
3260
3293
  function Pagination({
3261
3294
  className,
3262
3295
  slotName = "pagination",
3263
3296
  ...props
3264
3297
  }) {
3265
- return /* @__PURE__ */ jsx26(
3298
+ return /* @__PURE__ */ jsx27(
3266
3299
  "nav",
3267
3300
  {
3268
3301
  role: "navigation",
@@ -3278,7 +3311,7 @@ function PaginationContent({
3278
3311
  slotName = "pagination-content",
3279
3312
  ...props
3280
3313
  }) {
3281
- return /* @__PURE__ */ jsx26(
3314
+ return /* @__PURE__ */ jsx27(
3282
3315
  "ul",
3283
3316
  {
3284
3317
  className: cn("gap-1 flex flex-row items-center", className),
@@ -3291,7 +3324,7 @@ function PaginationItem({
3291
3324
  slotName = "pagination-item",
3292
3325
  ...props
3293
3326
  }) {
3294
- return /* @__PURE__ */ jsx26("li", { ...props, "data-slot": slotName });
3327
+ return /* @__PURE__ */ jsx27("li", { ...props, "data-slot": slotName });
3295
3328
  }
3296
3329
  function PaginationLink({
3297
3330
  className,
@@ -3300,7 +3333,7 @@ function PaginationLink({
3300
3333
  slotName = "pagination-link",
3301
3334
  ...props
3302
3335
  }) {
3303
- return /* @__PURE__ */ jsx26(
3336
+ return /* @__PURE__ */ jsx27(
3304
3337
  "a",
3305
3338
  {
3306
3339
  "aria-current": isActive ? "page" : void 0,
@@ -3329,8 +3362,8 @@ function PaginationPrevious({
3329
3362
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
3330
3363
  ...props,
3331
3364
  children: [
3332
- /* @__PURE__ */ jsx26(ChevronLeftIcon, {}),
3333
- /* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Previous" })
3365
+ /* @__PURE__ */ jsx27(ChevronLeftIcon, {}),
3366
+ /* @__PURE__ */ jsx27("span", { className: "sm:block hidden", children: "Previous" })
3334
3367
  ]
3335
3368
  }
3336
3369
  );
@@ -3347,8 +3380,8 @@ function PaginationNext({
3347
3380
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
3348
3381
  ...props,
3349
3382
  children: [
3350
- /* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Next" }),
3351
- /* @__PURE__ */ jsx26(ChevronRightIcon3, {})
3383
+ /* @__PURE__ */ jsx27("span", { className: "sm:block hidden", children: "Next" }),
3384
+ /* @__PURE__ */ jsx27(ChevronRightIcon3, {})
3352
3385
  ]
3353
3386
  }
3354
3387
  );
@@ -3369,8 +3402,8 @@ function PaginationEllipsis({
3369
3402
  ...props,
3370
3403
  "data-slot": slotName,
3371
3404
  children: [
3372
- /* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "size-4" }),
3373
- /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "More pages" })
3405
+ /* @__PURE__ */ jsx27(MoreHorizontalIcon, { className: "size-4" }),
3406
+ /* @__PURE__ */ jsx27("span", { className: "sr-only", children: "More pages" })
3374
3407
  ]
3375
3408
  }
3376
3409
  );
@@ -3378,14 +3411,14 @@ function PaginationEllipsis({
3378
3411
 
3379
3412
  // src/components/ui/placeholder-pattern.tsx
3380
3413
  import { useId as useId3 } from "react";
3381
- import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
3414
+ import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
3382
3415
  function PlaceholderPattern({
3383
3416
  className,
3384
3417
  slotName = "placeholder-pattern"
3385
3418
  }) {
3386
3419
  const patternId = useId3();
3387
3420
  return /* @__PURE__ */ jsxs19("svg", { className, fill: "none", "data-slot": slotName, children: [
3388
- /* @__PURE__ */ jsx27("defs", { children: /* @__PURE__ */ jsx27(
3421
+ /* @__PURE__ */ jsx28("defs", { children: /* @__PURE__ */ jsx28(
3389
3422
  "pattern",
3390
3423
  {
3391
3424
  id: patternId,
@@ -3394,7 +3427,7 @@ function PlaceholderPattern({
3394
3427
  width: "10",
3395
3428
  height: "10",
3396
3429
  patternUnits: "userSpaceOnUse",
3397
- children: /* @__PURE__ */ jsx27(
3430
+ children: /* @__PURE__ */ jsx28(
3398
3431
  "path",
3399
3432
  {
3400
3433
  d: "M-3 13 15-5M-5 5l18-18M-1 21 17 3",
@@ -3403,7 +3436,7 @@ function PlaceholderPattern({
3403
3436
  )
3404
3437
  }
3405
3438
  ) }),
3406
- /* @__PURE__ */ jsx27(
3439
+ /* @__PURE__ */ jsx28(
3407
3440
  "rect",
3408
3441
  {
3409
3442
  stroke: "none",
@@ -3417,14 +3450,14 @@ function PlaceholderPattern({
3417
3450
 
3418
3451
  // src/components/ui/progress.tsx
3419
3452
  import { Progress as ProgressPrimitive } from "radix-ui";
3420
- import { jsx as jsx28 } from "react/jsx-runtime";
3453
+ import { jsx as jsx29 } from "react/jsx-runtime";
3421
3454
  function Progress({
3422
3455
  className,
3423
3456
  value,
3424
3457
  slotName = "progress",
3425
3458
  ...props
3426
3459
  }) {
3427
- return /* @__PURE__ */ jsx28(
3460
+ return /* @__PURE__ */ jsx29(
3428
3461
  ProgressPrimitive.Root,
3429
3462
  {
3430
3463
  className: cn(
@@ -3433,7 +3466,7 @@ function Progress({
3433
3466
  ),
3434
3467
  ...props,
3435
3468
  "data-slot": slotName,
3436
- children: /* @__PURE__ */ jsx28(
3469
+ children: /* @__PURE__ */ jsx29(
3437
3470
  ProgressPrimitive.Indicator,
3438
3471
  {
3439
3472
  "data-slot": "progress-indicator",
@@ -3448,13 +3481,13 @@ function Progress({
3448
3481
  // src/components/ui/radio-group.tsx
3449
3482
  import { CircleIcon as CircleIcon3 } from "lucide-react";
3450
3483
  import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
3451
- import { jsx as jsx29 } from "react/jsx-runtime";
3484
+ import { jsx as jsx30 } from "react/jsx-runtime";
3452
3485
  function RadioGroup({
3453
3486
  className,
3454
3487
  slotName = "radio-group",
3455
3488
  ...props
3456
3489
  }) {
3457
- return /* @__PURE__ */ jsx29(
3490
+ return /* @__PURE__ */ jsx30(
3458
3491
  RadioGroupPrimitive.Root,
3459
3492
  {
3460
3493
  className: cn("gap-3 grid", className),
@@ -3468,7 +3501,7 @@ function RadioGroupItem({
3468
3501
  slotName = "radio-group-item",
3469
3502
  ...props
3470
3503
  }) {
3471
- return /* @__PURE__ */ jsx29(
3504
+ return /* @__PURE__ */ jsx30(
3472
3505
  RadioGroupPrimitive.Item,
3473
3506
  {
3474
3507
  className: cn(
@@ -3477,12 +3510,12 @@ function RadioGroupItem({
3477
3510
  ),
3478
3511
  ...props,
3479
3512
  "data-slot": slotName,
3480
- children: /* @__PURE__ */ jsx29(
3513
+ children: /* @__PURE__ */ jsx30(
3481
3514
  RadioGroupPrimitive.Indicator,
3482
3515
  {
3483
3516
  "data-slot": "radio-group-indicator",
3484
3517
  className: "relative flex items-center justify-center",
3485
- children: /* @__PURE__ */ jsx29(CircleIcon3, { className: "size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
3518
+ children: /* @__PURE__ */ jsx30(CircleIcon3, { className: "size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
3486
3519
  }
3487
3520
  )
3488
3521
  }
@@ -3491,13 +3524,13 @@ function RadioGroupItem({
3491
3524
 
3492
3525
  // src/components/ui/resizable.tsx
3493
3526
  import * as ResizablePrimitive from "react-resizable-panels";
3494
- import { jsx as jsx30 } from "react/jsx-runtime";
3527
+ import { jsx as jsx31 } from "react/jsx-runtime";
3495
3528
  function ResizablePanelGroup({
3496
3529
  className,
3497
3530
  slotName = "resizable-panel-group",
3498
3531
  ...props
3499
3532
  }) {
3500
- return /* @__PURE__ */ jsx30(
3533
+ return /* @__PURE__ */ jsx31(
3501
3534
  ResizablePrimitive.Group,
3502
3535
  {
3503
3536
  className: cn(
@@ -3515,7 +3548,7 @@ function ResizablePanel({
3515
3548
  slotName = "resizable-panel",
3516
3549
  ...props
3517
3550
  }) {
3518
- return /* @__PURE__ */ jsx30(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
3551
+ return /* @__PURE__ */ jsx31(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
3519
3552
  }
3520
3553
  function ResizableHandle({
3521
3554
  withHandle,
@@ -3523,7 +3556,7 @@ function ResizableHandle({
3523
3556
  slotName = "resizable-handle",
3524
3557
  ...props
3525
3558
  }) {
3526
- return /* @__PURE__ */ jsx30(
3559
+ return /* @__PURE__ */ jsx31(
3527
3560
  ResizablePrimitive.Separator,
3528
3561
  {
3529
3562
  className: cn(
@@ -3532,7 +3565,7 @@ function ResizableHandle({
3532
3565
  ),
3533
3566
  ...props,
3534
3567
  "data-slot": slotName,
3535
- children: withHandle && /* @__PURE__ */ jsx30("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
3568
+ children: withHandle && /* @__PURE__ */ jsx31("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
3536
3569
  }
3537
3570
  );
3538
3571
  }
@@ -3540,7 +3573,7 @@ function ResizableHandle({
3540
3573
  // src/components/ui/save-status.tsx
3541
3574
  import { Check as Check3, TriangleAlert } from "lucide-react";
3542
3575
  import * as React7 from "react";
3543
- import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
3576
+ import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
3544
3577
  var saveStatusLabels = {
3545
3578
  error: "Your changes could not be saved",
3546
3579
  idle: "Changes are saved automatically",
@@ -3586,7 +3619,7 @@ function SaveStatus({
3586
3619
  ),
3587
3620
  "data-slot": slotName,
3588
3621
  children: [
3589
- status === "idle" && showIdle && /* @__PURE__ */ jsx31(
3622
+ status === "idle" && showIdle && /* @__PURE__ */ jsx32(
3590
3623
  "span",
3591
3624
  {
3592
3625
  "data-slot": "save-status-idle",
@@ -3600,7 +3633,7 @@ function SaveStatus({
3600
3633
  "data-slot": "save-status-saving",
3601
3634
  className: "gap-2 flex items-center text-muted-foreground",
3602
3635
  children: [
3603
- /* @__PURE__ */ jsx31(Spinner, { size: "sm", label: "", "aria-hidden": "true" }),
3636
+ /* @__PURE__ */ jsx32(Spinner, { size: "sm", label: "", "aria-hidden": "true" }),
3604
3637
  text.saving
3605
3638
  ]
3606
3639
  }
@@ -3611,7 +3644,7 @@ function SaveStatus({
3611
3644
  "data-slot": "save-status-saved",
3612
3645
  className: "gap-2 flex items-center text-success",
3613
3646
  children: [
3614
- /* @__PURE__ */ jsx31(Check3, { "aria-hidden": "true", className: "size-3.5" }),
3647
+ /* @__PURE__ */ jsx32(Check3, { "aria-hidden": "true", className: "size-3.5" }),
3615
3648
  text.saved
3616
3649
  ]
3617
3650
  }
@@ -3622,7 +3655,7 @@ function SaveStatus({
3622
3655
  "data-slot": "save-status-error",
3623
3656
  className: "gap-2 flex items-center text-destructive",
3624
3657
  children: [
3625
- /* @__PURE__ */ jsx31(TriangleAlert, { "aria-hidden": "true", className: "size-3.5" }),
3658
+ /* @__PURE__ */ jsx32(TriangleAlert, { "aria-hidden": "true", className: "size-3.5" }),
3626
3659
  message ?? text.error
3627
3660
  ]
3628
3661
  }
@@ -3635,7 +3668,7 @@ function SaveStatus({
3635
3668
  // src/components/ui/scroll-area.tsx
3636
3669
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3637
3670
  import * as React8 from "react";
3638
- import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
3671
+ import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
3639
3672
  var ScrollArea = React8.forwardRef(({ className, children, slotName = "scroll-area", ...props }, ref) => /* @__PURE__ */ jsxs21(
3640
3673
  ScrollAreaPrimitive.Root,
3641
3674
  {
@@ -3650,9 +3683,9 @@ var ScrollArea = React8.forwardRef(({ className, children, slotName = "scroll-ar
3650
3683
  ...props,
3651
3684
  "data-slot": slotName,
3652
3685
  children: [
3653
- /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3654
- /* @__PURE__ */ jsx32(ScrollBar, {}),
3655
- /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Corner, {})
3686
+ /* @__PURE__ */ jsx33(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3687
+ /* @__PURE__ */ jsx33(ScrollBar, {}),
3688
+ /* @__PURE__ */ jsx33(ScrollAreaPrimitive.Corner, {})
3656
3689
  ]
3657
3690
  }
3658
3691
  ));
@@ -3663,7 +3696,7 @@ var ScrollBar = React8.forwardRef(
3663
3696
  orientation = "vertical",
3664
3697
  slotName = "scroll-area-scrollbar",
3665
3698
  ...props
3666
- }, ref) => /* @__PURE__ */ jsx32(
3699
+ }, ref) => /* @__PURE__ */ jsx33(
3667
3700
  ScrollAreaPrimitive.ScrollAreaScrollbar,
3668
3701
  {
3669
3702
  ref,
@@ -3676,7 +3709,7 @@ var ScrollBar = React8.forwardRef(
3676
3709
  ),
3677
3710
  ...props,
3678
3711
  "data-slot": slotName,
3679
- children: /* @__PURE__ */ jsx32(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3712
+ children: /* @__PURE__ */ jsx33(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3680
3713
  }
3681
3714
  )
3682
3715
  );
@@ -3685,7 +3718,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3685
3718
  // src/components/ui/slider.tsx
3686
3719
  import { Slider as SliderPrimitive } from "radix-ui";
3687
3720
  import * as React9 from "react";
3688
- import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
3721
+ import { jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
3689
3722
  function Slider({
3690
3723
  className,
3691
3724
  defaultValue,
@@ -3713,14 +3746,14 @@ function Slider({
3713
3746
  ...props,
3714
3747
  "data-slot": slotName,
3715
3748
  children: [
3716
- /* @__PURE__ */ jsx33(
3749
+ /* @__PURE__ */ jsx34(
3717
3750
  SliderPrimitive.Track,
3718
3751
  {
3719
3752
  "data-slot": "slider-track",
3720
3753
  className: cn(
3721
3754
  "data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full"
3722
3755
  ),
3723
- children: /* @__PURE__ */ jsx33(
3756
+ children: /* @__PURE__ */ jsx34(
3724
3757
  SliderPrimitive.Range,
3725
3758
  {
3726
3759
  "data-slot": "slider-range",
@@ -3731,7 +3764,7 @@ function Slider({
3731
3764
  )
3732
3765
  }
3733
3766
  ),
3734
- Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx33(
3767
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx34(
3735
3768
  SliderPrimitive.Thumb,
3736
3769
  {
3737
3770
  "data-slot": "slider-thumb",
@@ -3757,7 +3790,7 @@ import {
3757
3790
  } from "lucide-react";
3758
3791
  import { useEffect as useEffect4, useState as useState9 } from "react";
3759
3792
  import { Toaster as Sonner } from "sonner";
3760
- import { jsx as jsx34 } from "react/jsx-runtime";
3793
+ import { jsx as jsx35 } from "react/jsx-runtime";
3761
3794
  function useDocumentScheme() {
3762
3795
  const [scheme, setScheme] = useState9("light");
3763
3796
  useEffect4(() => {
@@ -3775,17 +3808,17 @@ function useDocumentScheme() {
3775
3808
  }
3776
3809
  var Toaster = ({ theme, ...props }) => {
3777
3810
  const scheme = useDocumentScheme();
3778
- return /* @__PURE__ */ jsx34(
3811
+ return /* @__PURE__ */ jsx35(
3779
3812
  Sonner,
3780
3813
  {
3781
3814
  theme: theme ?? scheme,
3782
3815
  className: "toaster group [&_[data-sonner-toast]]:shadow-2xl [&_[data-sonner-toast]]:backdrop-blur-xl",
3783
3816
  icons: {
3784
- success: /* @__PURE__ */ jsx34(CircleCheckIcon, { className: "size-4" }),
3785
- info: /* @__PURE__ */ jsx34(InfoIcon, { className: "size-4" }),
3786
- warning: /* @__PURE__ */ jsx34(TriangleAlertIcon, { className: "size-4" }),
3787
- error: /* @__PURE__ */ jsx34(OctagonXIcon, { className: "size-4" }),
3788
- loading: /* @__PURE__ */ jsx34(Loader2Icon, { className: "size-4 animate-spin" })
3817
+ success: /* @__PURE__ */ jsx35(CircleCheckIcon, { className: "size-4" }),
3818
+ info: /* @__PURE__ */ jsx35(InfoIcon, { className: "size-4" }),
3819
+ warning: /* @__PURE__ */ jsx35(TriangleAlertIcon, { className: "size-4" }),
3820
+ error: /* @__PURE__ */ jsx35(OctagonXIcon, { className: "size-4" }),
3821
+ loading: /* @__PURE__ */ jsx35(Loader2Icon, { className: "size-4 animate-spin" })
3789
3822
  },
3790
3823
  style: {
3791
3824
  "--normal-bg": "color-mix(in oklab, var(--popover) 90%, transparent)",
@@ -3800,7 +3833,7 @@ var Toaster = ({ theme, ...props }) => {
3800
3833
 
3801
3834
  // src/components/ui/status-badge.tsx
3802
3835
  import { cva as cva3 } from "class-variance-authority";
3803
- import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
3836
+ import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3804
3837
  var statusBadgeVariants = cva3("", {
3805
3838
  variants: {
3806
3839
  status: {
@@ -3836,7 +3869,7 @@ function StatusBadge({
3836
3869
  ...props,
3837
3870
  slotName,
3838
3871
  children: [
3839
- dot && /* @__PURE__ */ jsx35(
3872
+ dot && /* @__PURE__ */ jsx36(
3840
3873
  "span",
3841
3874
  {
3842
3875
  "aria-hidden": "true",
@@ -3853,7 +3886,7 @@ function StatusBadge({
3853
3886
  // src/components/ui/text-link.tsx
3854
3887
  import { Slot as Slot3 } from "@radix-ui/react-slot";
3855
3888
  import { cva as cva4 } from "class-variance-authority";
3856
- import { jsx as jsx36 } from "react/jsx-runtime";
3889
+ import { jsx as jsx37 } from "react/jsx-runtime";
3857
3890
  var textLinkVariants = cva4(
3858
3891
  `cursor-pointer rounded-xl underline decoration-border underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current ${focusRing}`,
3859
3892
  {
@@ -3876,7 +3909,7 @@ function TextLink({
3876
3909
  ...props
3877
3910
  }) {
3878
3911
  const Comp = asChild ? Slot3 : "a";
3879
- return /* @__PURE__ */ jsx36(
3912
+ return /* @__PURE__ */ jsx37(
3880
3913
  Comp,
3881
3914
  {
3882
3915
  "data-variant": variant,