@pactor-app/ui 1.2.0 → 1.3.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.
@@ -43,6 +43,7 @@ __export(components_exports, {
43
43
  Card: () => Card2,
44
44
  Carousel: () => Carousel2,
45
45
  Chart: () => Chart,
46
+ ChatInput: () => ChatInput,
46
47
  Checkbox: () => Checkbox2,
47
48
  Collapsible: () => Collapsible2,
48
49
  Combobox: () => Combobox2,
@@ -326,16 +327,20 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
326
327
  variant: {
327
328
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
328
329
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
329
- outline: "border border-border bg-background hover:bg-accent hover:text-accent-foreground",
330
+ outline: "border border-border bg-card hover:bg-accent hover:text-accent-foreground",
330
331
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
331
332
  ghost: "hover:bg-accent hover:text-accent-foreground",
332
333
  link: "text-primary underline-offset-4 hover:underline"
333
334
  },
334
335
  size: {
335
336
  default: "h-9 px-4 py-2",
337
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
336
338
  sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
337
339
  lg: "h-10 rounded-md px-6",
338
- icon: "size-9"
340
+ icon: "size-9",
341
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
342
+ "icon-sm": "size-8",
343
+ "icon-lg": "size-10"
339
344
  }
340
345
  },
341
346
  defaultVariants: {
@@ -400,7 +405,7 @@ function AlertDialogOverlay({
400
405
  {
401
406
  "data-slot": "alert-dialog-overlay",
402
407
  className: cn(
403
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
408
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
404
409
  className
405
410
  ),
406
411
  ...props
@@ -418,7 +423,7 @@ function AlertDialogContent({
418
423
  {
419
424
  "data-slot": "alert-dialog-content",
420
425
  className: cn(
421
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
426
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
422
427
  className
423
428
  ),
424
429
  ...props
@@ -861,7 +866,7 @@ function Calendar({
861
866
  import_react_day_picker.DayPicker,
862
867
  {
863
868
  showOutsideDays,
864
- className: cn("bg-background p-3", className),
869
+ className: cn("bg-card p-3", className),
865
870
  classNames: {
866
871
  root: cn("w-fit", defaultClassNames.root),
867
872
  months: cn("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
@@ -894,15 +899,15 @@ function Calendar({
894
899
  week: cn("mt-2 flex w-full", defaultClassNames.week),
895
900
  day: cn("h-8 w-8 p-0 text-center text-sm", defaultClassNames.day),
896
901
  day_button: cn(
897
- "size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-accent hover:text-accent-foreground aria-selected:opacity-100",
902
+ "size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-(--calendar-day-hover-background) hover:text-(--calendar-day-hover-foreground) aria-selected:opacity-100",
898
903
  defaultClassNames.day_button
899
904
  ),
900
905
  selected: cn(
901
- "[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary",
906
+ "[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background)",
902
907
  defaultClassNames.selected
903
908
  ),
904
909
  today: cn(
905
- "[&>button]:bg-accent [&>button]:text-accent-foreground",
910
+ "[&>button]:bg-(--calendar-today-background) [&>button]:text-(--calendar-today-foreground)",
906
911
  defaultClassNames.today
907
912
  ),
908
913
  outside: cn(
@@ -1012,7 +1017,7 @@ function Card({ className, ...props }) {
1012
1017
  {
1013
1018
  "data-slot": "card",
1014
1019
  className: cn(
1015
- "flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-sm",
1020
+ "flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-(--card-shadow)",
1016
1021
  className
1017
1022
  ),
1018
1023
  ...props
@@ -1513,7 +1518,7 @@ function PopoverContent({
1513
1518
  {
1514
1519
  "data-slot": "popover-content",
1515
1520
  className: cn(
1516
- "z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1521
+ "z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1517
1522
  className
1518
1523
  ),
1519
1524
  ...props
@@ -1668,7 +1673,7 @@ function CommandItem({
1668
1673
  {
1669
1674
  "data-slot": "command-item",
1670
1675
  className: cn(
1671
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1676
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-(--menu-active-background) data-[selected=true]:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1672
1677
  className
1673
1678
  ),
1674
1679
  ...props
@@ -1970,11 +1975,11 @@ var import_recharts2 = require("recharts");
1970
1975
  var import_recharts = require("recharts");
1971
1976
  var import_jsx_runtime36 = require("react/jsx-runtime");
1972
1977
  var CHART_TOKEN_COLORS = [
1973
- "hsl(var(--chart-1))",
1974
- "hsl(var(--chart-2))",
1975
- "hsl(var(--chart-3))",
1976
- "hsl(var(--chart-4))",
1977
- "hsl(var(--chart-5))"
1978
+ "var(--chart-1)",
1979
+ "var(--chart-2)",
1980
+ "var(--chart-3)",
1981
+ "var(--chart-4)",
1982
+ "var(--chart-5)"
1978
1983
  ];
1979
1984
  function chartColor(index, colors) {
1980
1985
  if (colors && colors.length > 0) {
@@ -2165,7 +2170,7 @@ function ChatInput({
2165
2170
  {
2166
2171
  "data-slot": "chat-input",
2167
2172
  className: cn(
2168
- "rounded-xl border border-border bg-background transition-shadow focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50",
2173
+ "rounded-xl border border-border bg-card transition-shadow focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50",
2169
2174
  className
2170
2175
  ),
2171
2176
  style,
@@ -2244,7 +2249,7 @@ function ContextMenuContent({
2244
2249
  {
2245
2250
  "data-slot": "context-menu-content",
2246
2251
  className: cn(
2247
- "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2252
+ "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2248
2253
  className
2249
2254
  ),
2250
2255
  ...props
@@ -2262,7 +2267,7 @@ function ContextMenuItem({
2262
2267
  "data-slot": "context-menu-item",
2263
2268
  "data-variant": variant,
2264
2269
  className: cn(
2265
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2270
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2266
2271
  className
2267
2272
  ),
2268
2273
  ...props
@@ -2577,7 +2582,7 @@ function DialogOverlay({
2577
2582
  {
2578
2583
  "data-slot": "dialog-overlay",
2579
2584
  className: cn(
2580
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2585
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2581
2586
  className
2582
2587
  ),
2583
2588
  ...props
@@ -2597,7 +2602,7 @@ function DialogContent({
2597
2602
  {
2598
2603
  "data-slot": "dialog-content",
2599
2604
  className: cn(
2600
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
2605
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
2601
2606
  className
2602
2607
  ),
2603
2608
  ...props,
@@ -2732,7 +2737,7 @@ function DrawerOverlay({
2732
2737
  import_vaul.Drawer.Overlay,
2733
2738
  {
2734
2739
  "data-slot": "drawer-overlay",
2735
- className: cn("fixed inset-0 z-50 bg-black/50", className),
2740
+ className: cn("fixed inset-0 z-50 bg-(--overlay-background)", className),
2736
2741
  ...props
2737
2742
  }
2738
2743
  );
@@ -2749,7 +2754,7 @@ function DrawerContent({
2749
2754
  {
2750
2755
  "data-slot": "drawer-content",
2751
2756
  className: cn(
2752
- "group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-background",
2757
+ "group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-popover",
2753
2758
  "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
2754
2759
  "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
2755
2760
  "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
@@ -2851,7 +2856,7 @@ function DropdownMenuContent({
2851
2856
  {
2852
2857
  "data-slot": "dropdown-menu-content",
2853
2858
  className: cn(
2854
- "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2859
+ "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2855
2860
  className
2856
2861
  ),
2857
2862
  ...props
@@ -2871,7 +2876,7 @@ function DropdownMenuItem({
2871
2876
  "data-slot": "dropdown-menu-item",
2872
2877
  "data-variant": variant,
2873
2878
  className: cn(
2874
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2879
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2875
2880
  className
2876
2881
  ),
2877
2882
  ...props
@@ -2893,7 +2898,7 @@ function DropdownMenuSubTrigger({
2893
2898
  {
2894
2899
  "data-slot": "dropdown-menu-sub-trigger",
2895
2900
  className: cn(
2896
- "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2901
+ "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2897
2902
  className
2898
2903
  ),
2899
2904
  ...props,
@@ -2914,7 +2919,7 @@ function DropdownMenuSubContent({
2914
2919
  {
2915
2920
  "data-slot": "dropdown-menu-sub-content",
2916
2921
  className: cn(
2917
- "z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2922
+ "z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2918
2923
  className
2919
2924
  ),
2920
2925
  ...props
@@ -3085,9 +3090,9 @@ function Field2({ label, description, error, children, className, style }) {
3085
3090
  // src/components/components/Flex/index.tsx
3086
3091
  var import_jsx_runtime56 = require("react/jsx-runtime");
3087
3092
  var gapClass = {
3088
- small: "gap-2",
3089
- middle: "gap-4",
3090
- large: "gap-6"
3093
+ small: "gap-(--flex-gap-sm)",
3094
+ middle: "gap-(--flex-gap-md)",
3095
+ large: "gap-(--flex-gap-lg)"
3091
3096
  };
3092
3097
  var justifyClass = {
3093
3098
  start: "justify-start",
@@ -3120,6 +3125,7 @@ function Flex({
3120
3125
  className: cn(
3121
3126
  "flex",
3122
3127
  direction === "vertical" && "flex-col",
3128
+ gap === void 0 && "gap-(--flex-gap)",
3123
3129
  typeof gap === "string" && gapClass[gap],
3124
3130
  justify && justifyClass[justify],
3125
3131
  align && alignClass[align],
@@ -3254,7 +3260,7 @@ function Grid({ columns = 1, gap, className, style, children }) {
3254
3260
  {
3255
3261
  "data-slot": "grid",
3256
3262
  "data-columns": cols,
3257
- className: cn("grid", className),
3263
+ className: cn("grid", gap === void 0 && "gap-(--grid-gap)", className),
3258
3264
  style: {
3259
3265
  gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,
3260
3266
  ...gap !== void 0 ? { gap } : {},
@@ -3295,7 +3301,7 @@ function Header({
3295
3301
  const hasLocales = locales !== void 0 && locales.length > 0;
3296
3302
  const hasUser = user !== void 0;
3297
3303
  const rootClass = cn(
3298
- "flex h-14 shrink-0 items-center gap-4 border-b bg-background px-4",
3304
+ "flex h-14 shrink-0 items-center gap-4 border-b bg-card px-4",
3299
3305
  className
3300
3306
  );
3301
3307
  if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales) {
@@ -3340,7 +3346,7 @@ function HeaderDropdownArea({
3340
3346
  DropdownMenuTrigger,
3341
3347
  {
3342
3348
  "data-slot": "header-dropdown",
3343
- className: cn(menuItemClass, "outline-hidden"),
3349
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3344
3350
  children: [
3345
3351
  dropdown.label,
3346
3352
  /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
@@ -3372,7 +3378,7 @@ function HeaderMenuArea({
3372
3378
  {
3373
3379
  "data-slot": "header-menu-item",
3374
3380
  "data-key": item.key,
3375
- className: cn(menuItemClass, "outline-hidden"),
3381
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3376
3382
  children: [
3377
3383
  item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3378
3384
  item.label,
@@ -3404,7 +3410,7 @@ function HeaderMenuEntry({
3404
3410
  }) {
3405
3411
  if (item.children !== void 0 && item.children.length > 0) {
3406
3412
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSub, { children: [
3407
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, children: [
3413
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, className: "cursor-pointer", children: [
3408
3414
  item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3409
3415
  item.label
3410
3416
  ] }),
@@ -3435,7 +3441,7 @@ function HeaderUserArea({
3435
3441
  DropdownMenuTrigger,
3436
3442
  {
3437
3443
  "data-slot": "header-user",
3438
- className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50",
3444
+ className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50 cursor-pointer",
3439
3445
  children: identity
3440
3446
  }
3441
3447
  ),
@@ -3456,7 +3462,7 @@ function HeaderLocalesArea({
3456
3462
  DropdownMenuTrigger,
3457
3463
  {
3458
3464
  "data-slot": "header-locales",
3459
- className: cn(menuItemClass, "outline-hidden"),
3465
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3460
3466
  children: [
3461
3467
  current?.label ?? locale,
3462
3468
  /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
@@ -3509,7 +3515,7 @@ function HoverCardContent({
3509
3515
  {
3510
3516
  "data-slot": "hover-card-content",
3511
3517
  className: cn(
3512
- "z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
3518
+ "z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
3513
3519
  className
3514
3520
  ),
3515
3521
  ...props
@@ -4029,15 +4035,17 @@ function RailTooltip({
4029
4035
 
4030
4036
  // src/components/components/Sidebar/index.tsx
4031
4037
  var import_runtime13 = require("@pactor-app/runtime");
4032
- var import_lucide_react17 = require("lucide-react");
4038
+ var import_react17 = require("react");
4039
+
4040
+ // src/ui/sidebar.tsx
4041
+ var React4 = __toESM(require("react"), 1);
4042
+ var import_class_variance_authority5 = require("class-variance-authority");
4043
+ var import_lucide_react18 = require("lucide-react");
4044
+
4045
+ // src/hooks/use-mobile.ts
4033
4046
  var import_react16 = require("react");
4034
- var import_jsx_runtime78 = require("react/jsx-runtime");
4035
- var SidebarDrawerContext = (0, import_react16.createContext)(null);
4036
- function useSidebarDrawer() {
4037
- return (0, import_react16.useContext)(SidebarDrawerContext);
4038
- }
4039
4047
  var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
4040
- function useIsMobileViewport() {
4048
+ function useIsMobile() {
4041
4049
  const [isMobile, setIsMobile] = (0, import_react16.useState)(
4042
4050
  () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
4043
4051
  );
@@ -4055,6 +4063,512 @@ function useIsMobileViewport() {
4055
4063
  }, []);
4056
4064
  return isMobile;
4057
4065
  }
4066
+
4067
+ // src/ui/separator.tsx
4068
+ var import_separator = require("@base-ui/react/separator");
4069
+ var import_jsx_runtime78 = require("react/jsx-runtime");
4070
+ function Separator({
4071
+ className,
4072
+ orientation = "horizontal",
4073
+ decorative: _decorative,
4074
+ ...props
4075
+ }) {
4076
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4077
+ import_separator.Separator,
4078
+ {
4079
+ "data-slot": "separator",
4080
+ orientation,
4081
+ className: cn(
4082
+ "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
4083
+ className
4084
+ ),
4085
+ ...props
4086
+ }
4087
+ );
4088
+ }
4089
+
4090
+ // src/ui/sheet.tsx
4091
+ var import_dialog3 = require("@base-ui/react/dialog");
4092
+ var import_lucide_react17 = require("lucide-react");
4093
+ var import_class_variance_authority4 = require("class-variance-authority");
4094
+ var import_jsx_runtime79 = require("react/jsx-runtime");
4095
+ function Sheet({
4096
+ ...props
4097
+ }) {
4098
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
4099
+ }
4100
+ function SheetPortal({
4101
+ ...props
4102
+ }) {
4103
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
4104
+ }
4105
+ function SheetOverlay({
4106
+ className,
4107
+ ...props
4108
+ }) {
4109
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4110
+ import_dialog3.Dialog.Backdrop,
4111
+ {
4112
+ "data-slot": "sheet-overlay",
4113
+ className: cn(
4114
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
4115
+ className
4116
+ ),
4117
+ ...props
4118
+ }
4119
+ );
4120
+ }
4121
+ var sheetVariants = (0, import_class_variance_authority4.cva)(
4122
+ "fixed z-50 flex flex-col gap-4 border-border bg-popover shadow-lg shadow-(color:--shadow-color) transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
4123
+ {
4124
+ variants: {
4125
+ side: {
4126
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-open:slide-in-from-right data-closed:slide-out-to-right sm:max-w-sm",
4127
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-open:slide-in-from-left data-closed:slide-out-to-left sm:max-w-sm",
4128
+ top: "inset-x-0 top-0 border-b data-open:slide-in-from-top data-closed:slide-out-to-top",
4129
+ bottom: "inset-x-0 bottom-0 border-t data-open:slide-in-from-bottom data-closed:slide-out-to-bottom"
4130
+ }
4131
+ },
4132
+ defaultVariants: {
4133
+ side: "right"
4134
+ }
4135
+ }
4136
+ );
4137
+ function SheetContent({
4138
+ className,
4139
+ children,
4140
+ side = "right",
4141
+ ...props
4142
+ }) {
4143
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
4144
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetOverlay, {}),
4145
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
4146
+ import_dialog3.Dialog.Popup,
4147
+ {
4148
+ "data-slot": "sheet-content",
4149
+ className: cn(sheetVariants({ side }), className),
4150
+ ...props,
4151
+ children: [
4152
+ children,
4153
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
4154
+ import_dialog3.Dialog.Close,
4155
+ {
4156
+ "data-slot": "sheet-close",
4157
+ render: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4158
+ "button",
4159
+ {
4160
+ type: "button",
4161
+ className: "absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
4162
+ }
4163
+ ),
4164
+ children: [
4165
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react17.XIcon, {}),
4166
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "sr-only", children: "Close" })
4167
+ ]
4168
+ }
4169
+ )
4170
+ ]
4171
+ }
4172
+ )
4173
+ ] });
4174
+ }
4175
+ function SheetHeader({ className, ...props }) {
4176
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4177
+ "div",
4178
+ {
4179
+ "data-slot": "sheet-header",
4180
+ className: cn("flex flex-col gap-1.5 p-4", className),
4181
+ ...props
4182
+ }
4183
+ );
4184
+ }
4185
+ function SheetTitle({
4186
+ className,
4187
+ ...props
4188
+ }) {
4189
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4190
+ import_dialog3.Dialog.Title,
4191
+ {
4192
+ "data-slot": "sheet-title",
4193
+ className: cn("font-semibold text-foreground", className),
4194
+ ...props
4195
+ }
4196
+ );
4197
+ }
4198
+ function SheetDescription({
4199
+ className,
4200
+ ...props
4201
+ }) {
4202
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4203
+ import_dialog3.Dialog.Description,
4204
+ {
4205
+ "data-slot": "sheet-description",
4206
+ className: cn("text-sm text-muted-foreground", className),
4207
+ ...props
4208
+ }
4209
+ );
4210
+ }
4211
+
4212
+ // src/ui/skeleton.tsx
4213
+ var import_jsx_runtime80 = require("react/jsx-runtime");
4214
+ function Skeleton({ className, ...props }) {
4215
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4216
+ "div",
4217
+ {
4218
+ "data-slot": "skeleton",
4219
+ className: cn("animate-pulse rounded-md bg-muted", className),
4220
+ ...props
4221
+ }
4222
+ );
4223
+ }
4224
+
4225
+ // src/ui/sidebar.tsx
4226
+ var import_jsx_runtime81 = require("react/jsx-runtime");
4227
+ var SIDEBAR_COOKIE_NAME = "sidebar_state";
4228
+ var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4229
+ var SIDEBAR_WIDTH = "16rem";
4230
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
4231
+ var SIDEBAR_WIDTH_ICON = "3rem";
4232
+ var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4233
+ var SidebarContext = React4.createContext(null);
4234
+ function useSidebar() {
4235
+ const context = React4.useContext(SidebarContext);
4236
+ if (!context) {
4237
+ throw new Error("useSidebar must be used within a SidebarProvider.");
4238
+ }
4239
+ return context;
4240
+ }
4241
+ function SidebarProvider({
4242
+ defaultOpen = true,
4243
+ open: openProp,
4244
+ onOpenChange: setOpenProp,
4245
+ className,
4246
+ style,
4247
+ children,
4248
+ ...props
4249
+ }) {
4250
+ const isMobile = useIsMobile();
4251
+ const [openMobile, setOpenMobile] = React4.useState(false);
4252
+ const [_open, _setOpen] = React4.useState(defaultOpen);
4253
+ const open = openProp ?? _open;
4254
+ const setOpen = React4.useCallback(
4255
+ (value) => {
4256
+ const openState = typeof value === "function" ? value(open) : value;
4257
+ if (setOpenProp) {
4258
+ setOpenProp(openState);
4259
+ } else {
4260
+ _setOpen(openState);
4261
+ }
4262
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
4263
+ },
4264
+ [setOpenProp, open]
4265
+ );
4266
+ const toggleSidebar = React4.useCallback(() => {
4267
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
4268
+ }, [isMobile, setOpen, setOpenMobile]);
4269
+ React4.useEffect(() => {
4270
+ const handleKeyDown = (event) => {
4271
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
4272
+ event.preventDefault();
4273
+ toggleSidebar();
4274
+ }
4275
+ };
4276
+ window.addEventListener("keydown", handleKeyDown);
4277
+ return () => window.removeEventListener("keydown", handleKeyDown);
4278
+ }, [toggleSidebar]);
4279
+ const state = open ? "expanded" : "collapsed";
4280
+ const contextValue = React4.useMemo(
4281
+ () => ({
4282
+ state,
4283
+ open,
4284
+ setOpen,
4285
+ isMobile,
4286
+ openMobile,
4287
+ setOpenMobile,
4288
+ toggleSidebar
4289
+ }),
4290
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
4291
+ );
4292
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4293
+ "div",
4294
+ {
4295
+ "data-slot": "sidebar-wrapper",
4296
+ style: {
4297
+ "--sidebar-width": SIDEBAR_WIDTH,
4298
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
4299
+ ...style
4300
+ },
4301
+ className: cn(
4302
+ "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
4303
+ className
4304
+ ),
4305
+ ...props,
4306
+ children
4307
+ }
4308
+ ) }) });
4309
+ }
4310
+ function SidebarRoot({
4311
+ side = "left",
4312
+ variant = "sidebar",
4313
+ collapsible = "offcanvas",
4314
+ className,
4315
+ children,
4316
+ ...props
4317
+ }) {
4318
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
4319
+ if (collapsible === "none") {
4320
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4321
+ "div",
4322
+ {
4323
+ "data-slot": "sidebar",
4324
+ className: cn(
4325
+ "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
4326
+ className
4327
+ ),
4328
+ ...props,
4329
+ children
4330
+ }
4331
+ );
4332
+ }
4333
+ if (isMobile) {
4334
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
4335
+ SheetContent,
4336
+ {
4337
+ "data-sidebar": "sidebar",
4338
+ "data-slot": "sidebar",
4339
+ "data-mobile": "true",
4340
+ className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
4341
+ style: {
4342
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
4343
+ },
4344
+ side,
4345
+ children: [
4346
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(SheetHeader, { className: "sr-only", children: [
4347
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SheetTitle, { children: "Sidebar" }),
4348
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
4349
+ ] }),
4350
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex h-full w-full flex-col", children })
4351
+ ]
4352
+ }
4353
+ ) });
4354
+ }
4355
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
4356
+ "div",
4357
+ {
4358
+ className: "group peer hidden text-sidebar-foreground md:block",
4359
+ "data-state": state,
4360
+ "data-collapsible": state === "collapsed" ? collapsible : "",
4361
+ "data-variant": variant,
4362
+ "data-side": side,
4363
+ "data-slot": "sidebar",
4364
+ children: [
4365
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4366
+ "div",
4367
+ {
4368
+ "data-slot": "sidebar-gap",
4369
+ className: cn(
4370
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
4371
+ "group-data-[collapsible=offcanvas]:w-0",
4372
+ "group-data-[side=right]:rotate-180",
4373
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
4374
+ )
4375
+ }
4376
+ ),
4377
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4378
+ "div",
4379
+ {
4380
+ "data-slot": "sidebar-container",
4381
+ className: cn(
4382
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
4383
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
4384
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
4385
+ className
4386
+ ),
4387
+ ...props,
4388
+ children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4389
+ "div",
4390
+ {
4391
+ "data-sidebar": "sidebar",
4392
+ "data-slot": "sidebar-inner",
4393
+ className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
4394
+ children
4395
+ }
4396
+ )
4397
+ }
4398
+ )
4399
+ ]
4400
+ }
4401
+ );
4402
+ }
4403
+ function SidebarInset({ className, ...props }) {
4404
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4405
+ "main",
4406
+ {
4407
+ "data-slot": "sidebar-inset",
4408
+ className: cn(
4409
+ "relative flex w-full flex-1 flex-col bg-background",
4410
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
4411
+ className
4412
+ ),
4413
+ ...props
4414
+ }
4415
+ );
4416
+ }
4417
+ function SidebarHeader({ className, ...props }) {
4418
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4419
+ "div",
4420
+ {
4421
+ "data-slot": "sidebar-header",
4422
+ "data-sidebar": "header",
4423
+ className: cn("flex flex-col gap-2 p-2", className),
4424
+ ...props
4425
+ }
4426
+ );
4427
+ }
4428
+ function SidebarFooter({ className, ...props }) {
4429
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4430
+ "div",
4431
+ {
4432
+ "data-slot": "sidebar-footer",
4433
+ "data-sidebar": "footer",
4434
+ className: cn("flex flex-col gap-2 p-2", className),
4435
+ ...props
4436
+ }
4437
+ );
4438
+ }
4439
+ function SidebarContent({ className, ...props }) {
4440
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4441
+ "div",
4442
+ {
4443
+ "data-slot": "sidebar-content",
4444
+ "data-sidebar": "content",
4445
+ className: cn(
4446
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
4447
+ className
4448
+ ),
4449
+ ...props
4450
+ }
4451
+ );
4452
+ }
4453
+ function renderAsChild(children, dataSlot, className, rest) {
4454
+ if (!React4.isValidElement(children)) {
4455
+ return null;
4456
+ }
4457
+ return React4.cloneElement(children, {
4458
+ "data-slot": dataSlot,
4459
+ className: cn(
4460
+ className,
4461
+ children.props.className
4462
+ ),
4463
+ ...rest
4464
+ });
4465
+ }
4466
+ function SidebarMenu({ className, ...props }) {
4467
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4468
+ "ul",
4469
+ {
4470
+ "data-slot": "sidebar-menu",
4471
+ "data-sidebar": "menu",
4472
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
4473
+ ...props
4474
+ }
4475
+ );
4476
+ }
4477
+ function SidebarMenuItem({ className, ...props }) {
4478
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4479
+ "li",
4480
+ {
4481
+ "data-slot": "sidebar-menu-item",
4482
+ "data-sidebar": "menu-item",
4483
+ className: cn("group/menu-item relative", className),
4484
+ ...props
4485
+ }
4486
+ );
4487
+ }
4488
+ var sidebarMenuButtonVariants = (0, import_class_variance_authority5.cva)(
4489
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
4490
+ {
4491
+ variants: {
4492
+ variant: {
4493
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
4494
+ outline: "bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
4495
+ },
4496
+ size: {
4497
+ default: "h-8 text-sm",
4498
+ sm: "h-7 text-xs",
4499
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
4500
+ }
4501
+ },
4502
+ defaultVariants: {
4503
+ variant: "default",
4504
+ size: "default"
4505
+ }
4506
+ }
4507
+ );
4508
+ function SidebarMenuButton({
4509
+ asChild = false,
4510
+ isActive = false,
4511
+ variant = "default",
4512
+ size = "default",
4513
+ tooltip,
4514
+ className,
4515
+ children,
4516
+ ...props
4517
+ }) {
4518
+ const { isMobile, state } = useSidebar();
4519
+ const cls = cn(sidebarMenuButtonVariants({ variant, size }), className);
4520
+ const button = asChild ? renderAsChild(children, "sidebar-menu-button", cls, {
4521
+ "data-sidebar": "menu-button",
4522
+ "data-size": size,
4523
+ "data-active": isActive,
4524
+ ...props
4525
+ }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4526
+ "button",
4527
+ {
4528
+ "data-slot": "sidebar-menu-button",
4529
+ "data-sidebar": "menu-button",
4530
+ "data-size": size,
4531
+ "data-active": isActive,
4532
+ className: cls,
4533
+ ...props,
4534
+ children
4535
+ }
4536
+ );
4537
+ if (!tooltip) {
4538
+ return button;
4539
+ }
4540
+ if (typeof tooltip === "string") {
4541
+ tooltip = {
4542
+ children: tooltip
4543
+ };
4544
+ }
4545
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Tooltip2, { children: [
4546
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TooltipTrigger, { render: button }),
4547
+ /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4548
+ TooltipContent,
4549
+ {
4550
+ side: "right",
4551
+ align: "center",
4552
+ hidden: state !== "collapsed" || isMobile,
4553
+ ...tooltip
4554
+ }
4555
+ )
4556
+ ] });
4557
+ }
4558
+
4559
+ // src/components/components/Sidebar/index.tsx
4560
+ var import_jsx_runtime82 = require("react/jsx-runtime");
4561
+ function useSidebarDrawer() {
4562
+ try {
4563
+ const ctx = useSidebar();
4564
+ return {
4565
+ close: () => ctx.setOpenMobile(false),
4566
+ collapsed: ctx.state === "collapsed"
4567
+ };
4568
+ } catch {
4569
+ return null;
4570
+ }
4571
+ }
4058
4572
  function useOptionalRenderer() {
4059
4573
  try {
4060
4574
  return (0, import_runtime13.useRenderer)();
@@ -4062,16 +4576,61 @@ function useOptionalRenderer() {
4062
4576
  return null;
4063
4577
  }
4064
4578
  }
4065
- function SidebarContent({ content }) {
4579
+ function SidebarContentSlot({ content }) {
4066
4580
  const renderer = useOptionalRenderer();
4067
4581
  if (renderer !== null && typeof content === "object" && content !== null && !("$$typeof" in content) && "type" in content) {
4068
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_jsx_runtime78.Fragment, { children: renderer.renderChildren([content]) });
4582
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: renderer.renderChildren([content]) });
4069
4583
  }
4070
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_jsx_runtime78.Fragment, { children: content });
4584
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: content });
4071
4585
  }
4072
4586
  function isBrandObject(brand) {
4073
4587
  return typeof brand === "object" && brand !== null && !("$$typeof" in brand) && "title" in brand;
4074
4588
  }
4589
+ function BrandNode({ brand, collapsed }) {
4590
+ if (brand === void 0 || brand === null) {
4591
+ return null;
4592
+ }
4593
+ if (isBrandObject(brand)) {
4594
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
4595
+ brand.logo ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4596
+ "img",
4597
+ {
4598
+ "data-slot": "sidebar-brand-logo",
4599
+ src: brand.logo,
4600
+ alt: brand.title,
4601
+ className: "size-6 shrink-0"
4602
+ }
4603
+ ) : null,
4604
+ collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "truncate text-sm font-semibold", children: brand.title })
4605
+ ] });
4606
+ }
4607
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: brand });
4608
+ }
4609
+ function SidebarNavItems({ items }) {
4610
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarMenu, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarNavEntry, { item, depth: 0 }, item.href ?? item.label ?? index)) });
4611
+ }
4612
+ function SidebarNavEntry({ item, depth }) {
4613
+ const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
4614
+ const labelNode = item.label;
4615
+ const button = item.href ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarMenuButton, { asChild: true, tooltip: item.label, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("a", { href: item.href, children: [
4616
+ iconNode,
4617
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
4618
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuButton, { tooltip: item.label, children: [
4619
+ iconNode,
4620
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
4621
+ ] });
4622
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuItem, { children: [
4623
+ button,
4624
+ item.children && item.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: cn("ml-4"), children: item.children.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4625
+ SidebarNavEntry,
4626
+ {
4627
+ item: child,
4628
+ depth: depth + 1
4629
+ },
4630
+ child.href ?? child.label ?? index
4631
+ )) })
4632
+ ] });
4633
+ }
4075
4634
  function Sidebar({
4076
4635
  brand,
4077
4636
  items = [],
@@ -4084,222 +4643,125 @@ function Sidebar({
4084
4643
  className,
4085
4644
  style,
4086
4645
  children
4646
+ }) {
4647
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4648
+ SidebarProvider,
4649
+ {
4650
+ defaultOpen: true,
4651
+ className,
4652
+ style,
4653
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4654
+ SidebarInner,
4655
+ {
4656
+ brand,
4657
+ items,
4658
+ content,
4659
+ sidebarFooter,
4660
+ collapsible,
4661
+ onCollapse,
4662
+ locationKey,
4663
+ drawer,
4664
+ children
4665
+ }
4666
+ )
4667
+ }
4668
+ );
4669
+ }
4670
+ function SidebarInner({
4671
+ brand,
4672
+ items = [],
4673
+ content,
4674
+ sidebarFooter,
4675
+ collapsible,
4676
+ onCollapse,
4677
+ locationKey,
4678
+ drawer = true,
4679
+ children
4087
4680
  }) {
4088
4681
  const { t } = (0, import_runtime13.useI18n)();
4089
- const isMobile = useIsMobileViewport();
4090
- const [drawerOpen, setDrawerOpen] = (0, import_react16.useState)(false);
4091
- const [collapsed, setCollapsed] = (0, import_react16.useState)(false);
4682
+ const isMobile = useIsMobile();
4683
+ const { state, setOpenMobile, toggleSidebar } = useSidebar();
4684
+ const collapsed = state === "collapsed";
4685
+ const prevCollapsed = (0, import_react17.useRef)(collapsed);
4686
+ (0, import_react17.useEffect)(() => {
4687
+ if (prevCollapsed.current !== collapsed) {
4688
+ prevCollapsed.current = collapsed;
4689
+ onCollapse?.(collapsed);
4690
+ }
4691
+ }, [collapsed, onCollapse]);
4692
+ (0, import_react17.useEffect)(() => {
4693
+ if (locationKey !== void 0) {
4694
+ setOpenMobile(false);
4695
+ }
4696
+ }, [locationKey, setOpenMobile]);
4092
4697
  const collapsedEffective = collapsible === true && collapsed && !isMobile;
4093
- const close = (0, import_react16.useCallback)(() => setDrawerOpen(false), []);
4094
- const toggleCollapsed = () => {
4095
- const next = !collapsed;
4096
- setCollapsed(next);
4097
- onCollapse?.(next);
4098
- };
4099
- const [trackedLocationKey, setTrackedLocationKey] = (0, import_react16.useState)(locationKey);
4100
- if (trackedLocationKey !== locationKey) {
4101
- setTrackedLocationKey(locationKey);
4102
- setDrawerOpen(false);
4103
- }
4104
- (0, import_react16.useEffect)(() => {
4105
- if (!drawerOpen) {
4106
- return;
4107
- }
4108
- const onKeyDown = (event) => {
4109
- if (event.key === "Escape") {
4110
- setDrawerOpen(false);
4111
- }
4112
- };
4113
- window.addEventListener("keydown", onKeyDown);
4114
- return () => window.removeEventListener("keydown", onKeyDown);
4115
- }, [drawerOpen]);
4116
- const brandNode = isBrandObject(brand) ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
4117
- brand.logo ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4118
- "img",
4698
+ const brandNode = /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(BrandNode, { brand, collapsed: collapsedEffective });
4699
+ const sidebarContent = content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarContentSlot, { content }) : items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarNavItems, { items }) : null;
4700
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
4701
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4702
+ SidebarRoot,
4119
4703
  {
4120
- "data-slot": "sidebar-brand-logo",
4121
- src: brand.logo,
4122
- alt: brand.title,
4123
- className: "size-6 shrink-0"
4704
+ collapsible: collapsible ? "icon" : "offcanvas",
4705
+ children: [
4706
+ (brand !== void 0 || collapsible) && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4707
+ "div",
4708
+ {
4709
+ "data-slot": "sidebar-brand",
4710
+ className: cn(
4711
+ "flex h-14 shrink-0 items-center gap-2 px-2",
4712
+ collapsedEffective && "justify-center px-0"
4713
+ ),
4714
+ children: [
4715
+ collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
4716
+ collapsible && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4717
+ "button",
4718
+ {
4719
+ type: "button",
4720
+ "data-slot": "sidebar-collapse-trigger",
4721
+ "aria-label": collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
4722
+ "aria-expanded": !collapsedEffective,
4723
+ className: "flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
4724
+ onClick: toggleSidebar,
4725
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: collapsedEffective ? "chevron-right" : "chevron-left", size: 16 })
4726
+ }
4727
+ )
4728
+ ]
4729
+ }
4730
+ ) }),
4731
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarContent, { children: sidebarContent }),
4732
+ sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarFooter, { children: sidebarFooter })
4733
+ ]
4124
4734
  }
4125
- ) : null,
4126
- collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "truncate text-sm font-semibold", children: brand.title })
4127
- ] }) : brand;
4128
- const collapseTrigger = collapsible && !isMobile ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4129
- "button",
4130
- {
4131
- type: "button",
4132
- "data-slot": "sidebar-collapse-trigger",
4133
- "aria-label": collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
4134
- "aria-expanded": !collapsedEffective,
4135
- title: collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
4136
- className: cn(
4137
- "cursor-pointer flex size-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground"
4138
- ),
4139
- onClick: toggleCollapsed,
4140
- children: collapsedEffective ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react17.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react17.ChevronLeft, { "aria-hidden": true, className: "size-4" })
4141
- }
4142
- ) : null;
4143
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4144
- SidebarDrawerContext.Provider,
4145
- {
4146
- value: { close, collapsed: collapsedEffective },
4147
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4735
+ ),
4736
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarInset, { children: [
4737
+ drawer && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4148
4738
  "div",
4149
4739
  {
4150
- "data-slot": "sidebar-layout",
4151
- className: cn("flex min-h-screen w-full", className),
4152
- style,
4740
+ "data-slot": "sidebar-topbar",
4741
+ className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
4153
4742
  children: [
4154
- drawer && drawerOpen ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4155
- "div",
4743
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4744
+ "button",
4156
4745
  {
4157
- "data-slot": "sidebar-scrim",
4158
- "aria-hidden": true,
4159
- className: "fixed inset-0 z-40 bg-black/40 md:hidden",
4160
- onClick: close
4161
- }
4162
- ) : null,
4163
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4164
- "aside",
4165
- {
4166
- "data-slot": "sidebar",
4167
- "data-collapsed": collapsedEffective || void 0,
4168
- "data-open": drawerOpen ? "true" : "false",
4169
- inert: drawer && isMobile && !drawerOpen ? true : void 0,
4170
- className: cn(
4171
- "flex shrink-0 flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width,transform]",
4172
- collapsedEffective ? "w-16" : "w-60",
4173
- // 移动端覆盖抽屉:退出文档流,关闭时移出屏幕
4174
- drawer && "max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-50 max-md:w-60 max-md:-translate-x-full max-md:data-[open=true]:translate-x-0"
4175
- ),
4176
- children: [
4177
- brand !== void 0 || collapseTrigger !== null ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4178
- "div",
4179
- {
4180
- "data-slot": "sidebar-brand",
4181
- className: cn(
4182
- "flex h-14 shrink-0 items-center gap-2 border-b border-sidebar-border px-4",
4183
- // 移动端品牌维持顶栏现状:抽屉内不重复渲染品牌行
4184
- "max-md:hidden",
4185
- collapsedEffective && "justify-center px-2"
4186
- ),
4187
- children: [
4188
- collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
4189
- collapseTrigger
4190
- ]
4191
- }
4192
- ) : null,
4193
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4194
- "nav",
4195
- {
4196
- "data-slot": "sidebar-nav",
4197
- className: "min-h-0 flex-1 overflow-auto p-2",
4198
- children: content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SidebarContent, { content }) : items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4199
- SidebarEntry,
4200
- {
4201
- item,
4202
- depth: 0,
4203
- collapsed: collapsedEffective
4204
- },
4205
- item.href ?? item.label ?? index
4206
- ))
4207
- }
4208
- ),
4209
- sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4210
- "div",
4211
- {
4212
- "data-slot": "sidebar-footer",
4213
- className: "shrink-0 border-t border-sidebar-border p-2",
4214
- children: sidebarFooter
4215
- }
4216
- ) : null
4217
- ]
4746
+ type: "button",
4747
+ "data-slot": "sidebar-menu-trigger",
4748
+ "aria-label": t("pactor.layout.openNavigation"),
4749
+ className: "flex size-8 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
4750
+ onClick: toggleSidebar,
4751
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "menu", size: 18 })
4218
4752
  }
4219
4753
  ),
4220
- /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4221
- "main",
4222
- {
4223
- "data-slot": "sidebar-content",
4224
- className: "flex min-w-0 flex-1 flex-col",
4225
- children: [
4226
- drawer ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4227
- "div",
4228
- {
4229
- "data-slot": "sidebar-topbar",
4230
- className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
4231
- children: [
4232
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4233
- "button",
4234
- {
4235
- type: "button",
4236
- "data-slot": "sidebar-menu-trigger",
4237
- "aria-label": t("pactor.layout.openNavigation"),
4238
- "aria-expanded": drawerOpen,
4239
- className: "flex size-8 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
4240
- onClick: () => setDrawerOpen(true),
4241
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "menu", size: 18 })
4242
- }
4243
- ),
4244
- brandNode
4245
- ]
4246
- }
4247
- ) : null,
4248
- children
4249
- ]
4250
- }
4251
- )
4754
+ brandNode
4252
4755
  ]
4253
4756
  }
4254
- )
4255
- }
4256
- );
4257
- }
4258
- function SidebarEntry({
4259
- item,
4260
- depth,
4261
- collapsed
4262
- }) {
4263
- const entryClass = cn(
4264
- "flex w-full items-center gap-2 rounded-md px-3 py-2 text-left text-sm transition-colors",
4265
- "text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
4266
- collapsed && "justify-center px-0"
4267
- );
4268
- const indentStyle = !collapsed && depth > 0 ? { paddingLeft: 12 + depth * 16 } : void 0;
4269
- const labelNode = collapsed ? null : item.label;
4270
- const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
4271
- const entry = item.href ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
4272
- "a",
4273
- {
4274
- "data-slot": "sidebar-item",
4275
- href: item.href,
4276
- className: entryClass,
4277
- style: indentStyle,
4278
- children: [
4279
- iconNode,
4280
- labelNode
4281
- ]
4282
- }
4283
- ) : /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { "data-slot": "sidebar-item", className: entryClass, style: indentStyle, children: [
4284
- iconNode,
4285
- labelNode
4286
- ] });
4287
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { "data-slot": "sidebar-entry", children: [
4288
- collapsed ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(RailTooltip, { label: item.label, children: entry }) : entry,
4289
- item.children?.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4290
- SidebarEntry,
4291
- {
4292
- item: child,
4293
- depth: depth + 1,
4294
- collapsed
4295
- },
4296
- child.href ?? child.label ?? index
4297
- ))
4757
+ ),
4758
+ children
4759
+ ] })
4298
4760
  ] });
4299
4761
  }
4300
4762
 
4301
4763
  // src/components/components/Menu/index.tsx
4302
- var import_jsx_runtime79 = require("react/jsx-runtime");
4764
+ var import_jsx_runtime83 = require("react/jsx-runtime");
4303
4765
  function Menu2({
4304
4766
  items = [],
4305
4767
  mode = "inline",
@@ -4311,7 +4773,7 @@ function Menu2({
4311
4773
  const drawer = useSidebarDrawer();
4312
4774
  const collapsed = mode === "inline" && drawer?.collapsed === true;
4313
4775
  let previousGroup;
4314
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4776
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4315
4777
  "nav",
4316
4778
  {
4317
4779
  "data-slot": "menu",
@@ -4328,8 +4790,8 @@ function Menu2({
4328
4790
  groupLabel = item.group;
4329
4791
  }
4330
4792
  previousGroup = item.group;
4331
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { "data-slot": "menu-group-entry", children: [
4332
- groupLabel !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4793
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { "data-slot": "menu-group-entry", children: [
4794
+ groupLabel !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4333
4795
  "div",
4334
4796
  {
4335
4797
  "data-slot": "menu-group",
@@ -4337,7 +4799,7 @@ function Menu2({
4337
4799
  children: groupLabel
4338
4800
  }
4339
4801
  ),
4340
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4802
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4341
4803
  MenuEntry,
4342
4804
  {
4343
4805
  item,
@@ -4362,7 +4824,7 @@ function MenuEntry({
4362
4824
  collapsed = false
4363
4825
  }) {
4364
4826
  const selected = item.key === selectedKey;
4365
- const button = /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
4827
+ const button = /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
4366
4828
  "button",
4367
4829
  {
4368
4830
  type: "button",
@@ -4373,7 +4835,7 @@ function MenuEntry({
4373
4835
  "flex w-full items-center gap-2 rounded-md text-sm transition-colors",
4374
4836
  mode === "horizontal" ? "px-3 py-2" : "px-3 py-2 text-left",
4375
4837
  collapsed && "justify-center px-0",
4376
- selected ? "bg-accent font-medium text-accent-foreground" : "cursor-pointer text-muted-foreground hover:bg-accent/50 hover:text-foreground",
4838
+ selected ? "bg-(--menu-active-background) font-medium text-(--menu-active-foreground)" : "cursor-pointer text-muted-foreground hover:bg-(--menu-hover-background)/50 hover:text-foreground",
4377
4839
  item.disabled && "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-muted-foreground"
4378
4840
  ),
4379
4841
  style: mode === "inline" && depth > 0 && !collapsed ? { paddingLeft: 12 + depth * 16 } : void 0,
@@ -4383,10 +4845,10 @@ function MenuEntry({
4383
4845
  }
4384
4846
  },
4385
4847
  children: [
4386
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4387
- collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: item.label }),
4388
- item.dot && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { "data-slot": "menu-item-dot", className: "size-1.5 shrink-0 rounded-full bg-destructive" }) : null,
4389
- item.badge !== void 0 && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4848
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4849
+ collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: item.label }),
4850
+ item.dot && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { "data-slot": "menu-item-dot", className: "size-1.5 shrink-0 rounded-full bg-destructive" }) : null,
4851
+ item.badge !== void 0 && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4390
4852
  "span",
4391
4853
  {
4392
4854
  "data-slot": "menu-item-badge",
@@ -4397,9 +4859,9 @@ function MenuEntry({
4397
4859
  ]
4398
4860
  }
4399
4861
  );
4400
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { "data-slot": "menu-entry", "data-key": item.key, children: [
4401
- collapsed ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(RailTooltip, { label: item.label, children: button }) : button,
4402
- item.children?.map((child) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4862
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { "data-slot": "menu-entry", "data-key": item.key, children: [
4863
+ collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(RailTooltip, { label: item.label, children: button }) : button,
4864
+ item.children?.map((child) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4403
4865
  MenuEntry,
4404
4866
  {
4405
4867
  item: child,
@@ -4417,17 +4879,17 @@ function MenuEntry({
4417
4879
  // src/ui/menubar.tsx
4418
4880
  var import_menu2 = require("@base-ui/react/menu");
4419
4881
  var import_menubar = require("@base-ui/react/menubar");
4420
- var import_jsx_runtime80 = require("react/jsx-runtime");
4882
+ var import_jsx_runtime84 = require("react/jsx-runtime");
4421
4883
  function Menubar({
4422
4884
  className,
4423
4885
  ...props
4424
4886
  }) {
4425
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4887
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4426
4888
  import_menubar.Menubar,
4427
4889
  {
4428
4890
  "data-slot": "menubar",
4429
4891
  className: cn(
4430
- "flex h-9 items-center gap-1 rounded-md border border-border bg-background p-1 shadow-xs",
4892
+ "flex h-9 items-center gap-1 rounded-md border border-border bg-card p-1 shadow-xs",
4431
4893
  className
4432
4894
  ),
4433
4895
  ...props
@@ -4437,18 +4899,18 @@ function Menubar({
4437
4899
  function MenubarMenu({
4438
4900
  ...props
4439
4901
  }) {
4440
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
4902
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
4441
4903
  }
4442
4904
  function MenubarTrigger({
4443
4905
  className,
4444
4906
  ...props
4445
4907
  }) {
4446
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4908
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4447
4909
  import_menu2.Menu.Trigger,
4448
4910
  {
4449
4911
  "data-slot": "menubar-trigger",
4450
4912
  className: cn(
4451
- "flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground",
4913
+ "flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground)",
4452
4914
  className
4453
4915
  ),
4454
4916
  ...props
@@ -4462,19 +4924,19 @@ function MenubarContent({
4462
4924
  sideOffset = 8,
4463
4925
  ...props
4464
4926
  }) {
4465
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4927
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4466
4928
  import_menu2.Menu.Positioner,
4467
4929
  {
4468
4930
  align,
4469
4931
  side,
4470
4932
  sideOffset,
4471
4933
  className: "isolate z-50",
4472
- children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4934
+ children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4473
4935
  import_menu2.Menu.Popup,
4474
4936
  {
4475
4937
  "data-slot": "menubar-content",
4476
4938
  className: cn(
4477
- "z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
4939
+ "z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
4478
4940
  className
4479
4941
  ),
4480
4942
  ...props
@@ -4488,13 +4950,13 @@ function MenubarItem({
4488
4950
  variant = "default",
4489
4951
  ...props
4490
4952
  }) {
4491
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4953
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4492
4954
  import_menu2.Menu.Item,
4493
4955
  {
4494
4956
  "data-slot": "menubar-item",
4495
4957
  "data-variant": variant,
4496
4958
  className: cn(
4497
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4959
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4498
4960
  className
4499
4961
  ),
4500
4962
  ...props
@@ -4503,17 +4965,17 @@ function MenubarItem({
4503
4965
  }
4504
4966
 
4505
4967
  // src/components/components/Menubar/index.tsx
4506
- var import_jsx_runtime81 = require("react/jsx-runtime");
4968
+ var import_jsx_runtime85 = require("react/jsx-runtime");
4507
4969
  function Menubar2({ menus = [], onSelect, className, style }) {
4508
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(MenubarMenu, { children: [
4509
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(MenubarTrigger, { children: menu.label }),
4510
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
4970
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(MenubarMenu, { children: [
4971
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MenubarTrigger, { children: menu.label }),
4972
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
4511
4973
  MenubarItem,
4512
4974
  {
4513
4975
  disabled: item.disabled,
4514
4976
  onClick: () => onSelect?.(item.value),
4515
4977
  children: [
4516
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4978
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4517
4979
  item.label
4518
4980
  ]
4519
4981
  },
@@ -4524,15 +4986,15 @@ function Menubar2({ menus = [], onSelect, className, style }) {
4524
4986
 
4525
4987
  // src/ui/navigation-menu.tsx
4526
4988
  var import_navigation_menu = require("@base-ui/react/navigation-menu");
4527
- var import_lucide_react18 = require("lucide-react");
4528
- var import_class_variance_authority4 = require("class-variance-authority");
4529
- var import_jsx_runtime82 = require("react/jsx-runtime");
4989
+ var import_lucide_react19 = require("lucide-react");
4990
+ var import_class_variance_authority6 = require("class-variance-authority");
4991
+ var import_jsx_runtime86 = require("react/jsx-runtime");
4530
4992
  function NavigationMenu({
4531
4993
  className,
4532
4994
  children,
4533
4995
  ...props
4534
4996
  }) {
4535
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4997
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
4536
4998
  import_navigation_menu.NavigationMenu.Root,
4537
4999
  {
4538
5000
  "data-slot": "navigation-menu",
@@ -4540,7 +5002,7 @@ function NavigationMenu({
4540
5002
  ...props,
4541
5003
  children: [
4542
5004
  children,
4543
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(NavigationMenuViewport, {})
5005
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(NavigationMenuViewport, {})
4544
5006
  ]
4545
5007
  }
4546
5008
  );
@@ -4549,7 +5011,7 @@ function NavigationMenuList({
4549
5011
  className,
4550
5012
  ...props
4551
5013
  }) {
4552
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5014
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4553
5015
  import_navigation_menu.NavigationMenu.List,
4554
5016
  {
4555
5017
  "data-slot": "navigation-menu-list",
@@ -4562,7 +5024,7 @@ function NavigationMenuItem({
4562
5024
  className,
4563
5025
  ...props
4564
5026
  }) {
4565
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5027
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4566
5028
  import_navigation_menu.NavigationMenu.Item,
4567
5029
  {
4568
5030
  "data-slot": "navigation-menu-item",
@@ -4571,15 +5033,15 @@ function NavigationMenuItem({
4571
5033
  }
4572
5034
  );
4573
5035
  }
4574
- var navigationMenuTriggerStyle = (0, import_class_variance_authority4.cva)(
4575
- "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-open:bg-accent/50 data-open:text-accent-foreground"
5036
+ var navigationMenuTriggerStyle = (0, import_class_variance_authority6.cva)(
5037
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-open:bg-(--menu-active-background)/50 data-open:text-(--menu-active-foreground)"
4576
5038
  );
4577
5039
  function NavigationMenuTrigger({
4578
5040
  className,
4579
5041
  children,
4580
5042
  ...props
4581
5043
  }) {
4582
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
5044
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
4583
5045
  import_navigation_menu.NavigationMenu.Trigger,
4584
5046
  {
4585
5047
  "data-slot": "navigation-menu-trigger",
@@ -4587,8 +5049,8 @@ function NavigationMenuTrigger({
4587
5049
  ...props,
4588
5050
  children: [
4589
5051
  children,
4590
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4591
- import_lucide_react18.ChevronDownIcon,
5052
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5053
+ import_lucide_react19.ChevronDownIcon,
4592
5054
  {
4593
5055
  className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
4594
5056
  "aria-hidden": "true"
@@ -4602,7 +5064,7 @@ function NavigationMenuContent({
4602
5064
  className,
4603
5065
  ...props
4604
5066
  }) {
4605
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5067
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4606
5068
  import_navigation_menu.NavigationMenu.Content,
4607
5069
  {
4608
5070
  "data-slot": "navigation-menu-content",
@@ -4615,21 +5077,21 @@ function NavigationMenuContent({
4615
5077
  );
4616
5078
  }
4617
5079
  function NavigationMenuViewport({ className }) {
4618
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5080
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4619
5081
  import_navigation_menu.NavigationMenu.Positioner,
4620
5082
  {
4621
5083
  side: "bottom",
4622
5084
  align: "start",
4623
5085
  className: "isolate z-50",
4624
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5086
+ children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4625
5087
  import_navigation_menu.NavigationMenu.Popup,
4626
5088
  {
4627
5089
  "data-slot": "navigation-menu-popup",
4628
5090
  className: cn(
4629
- "origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
5091
+ "origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
4630
5092
  className
4631
5093
  ),
4632
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
5094
+ children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
4633
5095
  }
4634
5096
  )
4635
5097
  }
@@ -4639,12 +5101,12 @@ function NavigationMenuLink({
4639
5101
  className,
4640
5102
  ...props
4641
5103
  }) {
4642
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5104
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4643
5105
  import_navigation_menu.NavigationMenu.Link,
4644
5106
  {
4645
5107
  "data-slot": "navigation-menu-link",
4646
5108
  className: cn(
4647
- "flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 data-active:bg-accent/50 data-active:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
5109
+ "flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 data-active:bg-(--menu-active-background)/50 data-active:text-(--menu-active-foreground) [&_svg:not([class*='size-'])]:size-4",
4648
5110
  className
4649
5111
  ),
4650
5112
  ...props
@@ -4653,33 +5115,33 @@ function NavigationMenuLink({
4653
5115
  }
4654
5116
 
4655
5117
  // src/components/components/NavigationMenu/index.tsx
4656
- var import_jsx_runtime83 = require("react/jsx-runtime");
5118
+ var import_jsx_runtime87 = require("react/jsx-runtime");
4657
5119
  function NavigationMenu2({ items = [], className, style }) {
4658
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(NavigationMenu, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_jsx_runtime83.Fragment, { children: [
4659
- /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5120
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenu, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(import_jsx_runtime87.Fragment, { children: [
5121
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
4660
5122
  NavigationMenuTrigger,
4661
5123
  {
4662
5124
  className: item.icon !== void 0 ? "gap-2" : void 0,
4663
5125
  children: [
4664
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5126
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4665
5127
  item.label
4666
5128
  ]
4667
5129
  }
4668
5130
  ),
4669
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(NavigationMenuContent, { children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(NavigationMenuLink, { href: child.href, children: [
4670
- /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5131
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuContent, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(NavigationMenuLink, { href: child.href, children: [
5132
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
4671
5133
  "span",
4672
5134
  {
4673
5135
  className: child.icon !== void 0 ? "flex items-center gap-2 font-medium" : "font-medium",
4674
5136
  children: [
4675
- child.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: child.icon, size: "sm" }) : null,
5137
+ child.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: child.icon, size: "sm" }) : null,
4676
5138
  child.label
4677
5139
  ]
4678
5140
  }
4679
5141
  ),
4680
- child.description ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "text-muted-foreground", children: child.description }) : null
5142
+ child.description ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-muted-foreground", children: child.description }) : null
4681
5143
  ] }) }, child.href)) }) })
4682
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5144
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
4683
5145
  NavigationMenuLink,
4684
5146
  {
4685
5147
  href: item.href,
@@ -4688,7 +5150,7 @@ function NavigationMenu2({ items = [], className, style }) {
4688
5150
  item.icon !== void 0 && "gap-2"
4689
5151
  ),
4690
5152
  children: [
4691
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5153
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4692
5154
  item.label
4693
5155
  ]
4694
5156
  }
@@ -4696,22 +5158,22 @@ function NavigationMenu2({ items = [], className, style }) {
4696
5158
  }
4697
5159
 
4698
5160
  // src/components/components/Page/index.tsx
4699
- var import_jsx_runtime84 = require("react/jsx-runtime");
5161
+ var import_jsx_runtime88 = require("react/jsx-runtime");
4700
5162
  function Page({ title, className, style, children }) {
4701
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
4702
- title ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
4703
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
5163
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
5164
+ title ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
5165
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
4704
5166
  ] });
4705
5167
  }
4706
5168
 
4707
5169
  // src/components/components/Pagination/index.tsx
4708
- var import_react17 = require("react");
5170
+ var import_react18 = require("react");
4709
5171
 
4710
5172
  // src/ui/pagination.tsx
4711
- var import_lucide_react19 = require("lucide-react");
4712
- var import_jsx_runtime85 = require("react/jsx-runtime");
5173
+ var import_lucide_react20 = require("lucide-react");
5174
+ var import_jsx_runtime89 = require("react/jsx-runtime");
4713
5175
  function Pagination({ className, ...props }) {
4714
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5176
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4715
5177
  "nav",
4716
5178
  {
4717
5179
  role: "navigation",
@@ -4723,7 +5185,7 @@ function Pagination({ className, ...props }) {
4723
5185
  );
4724
5186
  }
4725
5187
  function PaginationContent({ className, ...props }) {
4726
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5188
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4727
5189
  "ul",
4728
5190
  {
4729
5191
  "data-slot": "pagination-content",
@@ -4733,7 +5195,7 @@ function PaginationContent({ className, ...props }) {
4733
5195
  );
4734
5196
  }
4735
5197
  function PaginationItem({ ...props }) {
4736
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("li", { "data-slot": "pagination-item", ...props });
5198
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("li", { "data-slot": "pagination-item", ...props });
4737
5199
  }
4738
5200
  function PaginationLink({
4739
5201
  className,
@@ -4741,7 +5203,7 @@ function PaginationLink({
4741
5203
  disabled,
4742
5204
  ...props
4743
5205
  }) {
4744
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5206
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4745
5207
  "a",
4746
5208
  {
4747
5209
  "aria-current": isActive ? "page" : void 0,
@@ -4753,6 +5215,7 @@ function PaginationLink({
4753
5215
  buttonVariants({
4754
5216
  variant: isActive ? "outline" : "ghost"
4755
5217
  }),
5218
+ isActive && "border-(color:--pagination-active-border) bg-(--pagination-active-background) rounded-(--pagination-active-radius)",
4756
5219
  disabled && "pointer-events-none opacity-50",
4757
5220
  className
4758
5221
  ),
@@ -4764,15 +5227,15 @@ function PaginationPrevious({
4764
5227
  className,
4765
5228
  ...props
4766
5229
  }) {
4767
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
5230
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
4768
5231
  PaginationLink,
4769
5232
  {
4770
5233
  "aria-label": "Go to previous page",
4771
5234
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
4772
5235
  ...props,
4773
5236
  children: [
4774
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react19.ChevronLeftIcon, {}),
4775
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "hidden sm:block", children: "Previous" })
5237
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.ChevronLeftIcon, {}),
5238
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "hidden sm:block", children: "Previous" })
4776
5239
  ]
4777
5240
  }
4778
5241
  );
@@ -4781,21 +5244,21 @@ function PaginationNext({
4781
5244
  className,
4782
5245
  ...props
4783
5246
  }) {
4784
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
5247
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
4785
5248
  PaginationLink,
4786
5249
  {
4787
5250
  "aria-label": "Go to next page",
4788
5251
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
4789
5252
  ...props,
4790
5253
  children: [
4791
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "hidden sm:block", children: "Next" }),
4792
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react19.ChevronRightIcon, {})
5254
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "hidden sm:block", children: "Next" }),
5255
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.ChevronRightIcon, {})
4793
5256
  ]
4794
5257
  }
4795
5258
  );
4796
5259
  }
4797
5260
  function PaginationEllipsis({ className, ...props }) {
4798
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
5261
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
4799
5262
  "span",
4800
5263
  {
4801
5264
  "aria-hidden": true,
@@ -4803,15 +5266,15 @@ function PaginationEllipsis({ className, ...props }) {
4803
5266
  className: cn("flex size-9 items-center justify-center", className),
4804
5267
  ...props,
4805
5268
  children: [
4806
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react19.MoreHorizontalIcon, { className: "size-4" }),
4807
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "sr-only", children: "More pages" })
5269
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.MoreHorizontalIcon, { className: "size-4" }),
5270
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "sr-only", children: "More pages" })
4808
5271
  ]
4809
5272
  }
4810
5273
  );
4811
5274
  }
4812
5275
 
4813
5276
  // src/components/components/Pagination/index.tsx
4814
- var import_jsx_runtime86 = require("react/jsx-runtime");
5277
+ var import_jsx_runtime90 = require("react/jsx-runtime");
4815
5278
  function pageItems(current, count) {
4816
5279
  if (count <= 7) {
4817
5280
  return Array.from({ length: count }, (_, i) => i + 1);
@@ -4832,7 +5295,7 @@ function Pagination2({
4832
5295
  className,
4833
5296
  style
4834
5297
  }) {
4835
- const [innerPage, setInnerPage] = (0, import_react17.useState)(1);
5298
+ const [innerPage, setInnerPage] = (0, import_react18.useState)(1);
4836
5299
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
4837
5300
  const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
4838
5301
  const goTo = (next) => {
@@ -4845,8 +5308,8 @@ function Pagination2({
4845
5308
  }
4846
5309
  onChange?.(target);
4847
5310
  };
4848
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(PaginationContent, { children: [
4849
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5311
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(PaginationContent, { children: [
5312
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
4850
5313
  PaginationPrevious,
4851
5314
  {
4852
5315
  href: "#",
@@ -4857,7 +5320,7 @@ function Pagination2({
4857
5320
  }
4858
5321
  }
4859
5322
  ) }),
4860
- pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5323
+ pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
4861
5324
  PaginationLink,
4862
5325
  {
4863
5326
  href: "#",
@@ -4869,7 +5332,7 @@ function Pagination2({
4869
5332
  children: item
4870
5333
  }
4871
5334
  ) }, item === "ellipsis" ? `ellipsis-${index}` : item)),
4872
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5335
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
4873
5336
  PaginationNext,
4874
5337
  {
4875
5338
  href: "#",
@@ -4885,14 +5348,14 @@ function Pagination2({
4885
5348
 
4886
5349
  // src/components/components/Popover/index.tsx
4887
5350
  var import_runtime14 = require("@pactor-app/runtime");
4888
- var import_jsx_runtime87 = require("react/jsx-runtime");
5351
+ var import_jsx_runtime91 = require("react/jsx-runtime");
4889
5352
  function isDslNode3(value) {
4890
5353
  return typeof value === "object" && value !== null && typeof value.type === "string";
4891
5354
  }
4892
5355
  function Popover2({ content, children, className, style }) {
4893
5356
  const { renderChildren } = (0, import_runtime14.useRenderer)();
4894
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(Popover, { children: [
4895
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5357
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Popover, { children: [
5358
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
4896
5359
  PopoverTrigger,
4897
5360
  {
4898
5361
  nativeButton: false,
@@ -4900,15 +5363,15 @@ function Popover2({ content, children, className, style }) {
4900
5363
  children
4901
5364
  }
4902
5365
  ),
4903
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
5366
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
4904
5367
  ] });
4905
5368
  }
4906
5369
 
4907
5370
  // src/ui/progress.tsx
4908
5371
  var import_progress = require("@base-ui/react/progress");
4909
- var import_jsx_runtime88 = require("react/jsx-runtime");
5372
+ var import_jsx_runtime92 = require("react/jsx-runtime");
4910
5373
  function Progress({ className, ...props }) {
4911
- return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
5374
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
4912
5375
  import_progress.Progress.Root,
4913
5376
  {
4914
5377
  "data-slot": "progress",
@@ -4918,11 +5381,11 @@ function Progress({ className, ...props }) {
4918
5381
  );
4919
5382
  }
4920
5383
  function ProgressTrack({ className, ...props }) {
4921
- return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
5384
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
4922
5385
  import_progress.Progress.Track,
4923
5386
  {
4924
5387
  "data-slot": "progress-track",
4925
- className: cn("h-2 w-full overflow-hidden rounded-full bg-muted", className),
5388
+ className: cn("h-2 w-full overflow-hidden rounded-full bg-(--progress-track)", className),
4926
5389
  ...props
4927
5390
  }
4928
5391
  );
@@ -4931,12 +5394,12 @@ function ProgressIndicator({
4931
5394
  className,
4932
5395
  ...props
4933
5396
  }) {
4934
- return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
5397
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
4935
5398
  import_progress.Progress.Indicator,
4936
5399
  {
4937
5400
  "data-slot": "progress-indicator",
4938
5401
  className: cn(
4939
- "h-full bg-primary transition-[width] duration-300 ease-in-out",
5402
+ "h-full bg-(--progress-indicator) transition-[width] duration-300 ease-in-out",
4940
5403
  className
4941
5404
  ),
4942
5405
  ...props
@@ -4945,21 +5408,21 @@ function ProgressIndicator({
4945
5408
  }
4946
5409
 
4947
5410
  // src/components/components/Progress/index.tsx
4948
- var import_jsx_runtime89 = require("react/jsx-runtime");
5411
+ var import_jsx_runtime93 = require("react/jsx-runtime");
4949
5412
  function Progress2({ value, className, style }) {
4950
5413
  const resolved = typeof value === "number" && Number.isFinite(value) ? Math.min(100, Math.max(0, value)) : null;
4951
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Progress, { value: resolved, className, style, children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(ProgressIndicator, {}) }) });
5414
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Progress, { value: resolved, className, style, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ProgressIndicator, {}) }) });
4952
5415
  }
4953
5416
 
4954
5417
  // src/components/components/RadioGroup/index.tsx
4955
- var import_react18 = require("react");
5418
+ var import_react19 = require("react");
4956
5419
 
4957
5420
  // src/ui/radio-group.tsx
4958
5421
  var import_radio = require("@base-ui/react/radio");
4959
5422
  var import_radio_group = require("@base-ui/react/radio-group");
4960
- var import_jsx_runtime90 = require("react/jsx-runtime");
5423
+ var import_jsx_runtime94 = require("react/jsx-runtime");
4961
5424
  function RadioGroup({ className, ...props }) {
4962
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5425
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
4963
5426
  import_radio_group.RadioGroup,
4964
5427
  {
4965
5428
  "data-slot": "radio-group",
@@ -4969,21 +5432,21 @@ function RadioGroup({ className, ...props }) {
4969
5432
  );
4970
5433
  }
4971
5434
  function RadioGroupItem({ className, ...props }) {
4972
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5435
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
4973
5436
  import_radio.Radio.Root,
4974
5437
  {
4975
5438
  "data-slot": "radio-group-item",
4976
5439
  className: cn(
4977
- "aspect-square size-4 shrink-0 cursor-pointer rounded-full border border-input shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-primary",
5440
+ "aspect-square size-4 shrink-0 cursor-pointer inline-flex items-center justify-center rounded-full border border-(color:--radio-border) shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-(color:--radio-checked)",
4978
5441
  className
4979
5442
  ),
4980
5443
  ...props,
4981
- children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5444
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
4982
5445
  import_radio.Radio.Indicator,
4983
5446
  {
4984
5447
  "data-slot": "radio-group-indicator",
4985
5448
  className: "flex items-center justify-center",
4986
- children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "size-2 rounded-full bg-primary" })
5449
+ children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
4987
5450
  }
4988
5451
  )
4989
5452
  }
@@ -4991,7 +5454,7 @@ function RadioGroupItem({ className, ...props }) {
4991
5454
  }
4992
5455
 
4993
5456
  // src/components/components/Form/form-item.tsx
4994
- var import_jsx_runtime91 = require("react/jsx-runtime");
5457
+ var import_jsx_runtime95 = require("react/jsx-runtime");
4995
5458
  function FieldShell({
4996
5459
  layout,
4997
5460
  label,
@@ -5001,14 +5464,14 @@ function FieldShell({
5001
5464
  style,
5002
5465
  children
5003
5466
  }) {
5004
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
5467
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
5005
5468
  "div",
5006
5469
  {
5007
5470
  "data-slot": "form-item",
5008
5471
  className: cn(formItemClass(layout), className),
5009
5472
  style,
5010
5473
  children: [
5011
- label ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
5474
+ label ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5012
5475
  "label",
5013
5476
  {
5014
5477
  htmlFor,
@@ -5017,14 +5480,14 @@ function FieldShell({
5017
5480
  }
5018
5481
  ) : null,
5019
5482
  children,
5020
- error ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5483
+ error ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5021
5484
  ]
5022
5485
  }
5023
5486
  );
5024
5487
  }
5025
5488
 
5026
5489
  // src/components/components/RadioGroup/index.tsx
5027
- var import_jsx_runtime92 = require("react/jsx-runtime");
5490
+ var import_jsx_runtime96 = require("react/jsx-runtime");
5028
5491
  function RadioGroup2({
5029
5492
  name,
5030
5493
  label,
@@ -5037,9 +5500,9 @@ function RadioGroup2({
5037
5500
  style
5038
5501
  }) {
5039
5502
  const form = useFormContext();
5040
- const controlId = (0, import_react18.useId)();
5503
+ const controlId = (0, import_react19.useId)();
5041
5504
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5042
- (0, import_react18.useEffect)(() => {
5505
+ (0, import_react19.useEffect)(() => {
5043
5506
  if (inForm && form && name) {
5044
5507
  form.registerField(name, rules, value);
5045
5508
  return () => form.unregisterField(name);
@@ -5054,7 +5517,7 @@ function RadioGroup2({
5054
5517
  onChange?.(next);
5055
5518
  };
5056
5519
  const groupValue = current ?? "";
5057
- const group = /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5520
+ const group = /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5058
5521
  RadioGroup,
5059
5522
  {
5060
5523
  value: groupValue,
@@ -5065,8 +5528,8 @@ function RadioGroup2({
5065
5528
  style: inForm ? void 0 : style,
5066
5529
  children: options.map((option, index) => {
5067
5530
  const optionId = `${controlId}-${index}`;
5068
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
5069
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5531
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
5532
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5070
5533
  RadioGroupItem,
5071
5534
  {
5072
5535
  id: optionId,
@@ -5074,13 +5537,13 @@ function RadioGroup2({
5074
5537
  disabled: option.disabled
5075
5538
  }
5076
5539
  ),
5077
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
5540
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
5078
5541
  ] }, String(option.value));
5079
5542
  })
5080
5543
  }
5081
5544
  );
5082
5545
  if (inForm && form && name) {
5083
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5546
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5084
5547
  FieldShell,
5085
5548
  {
5086
5549
  layout: form.layout,
@@ -5097,17 +5560,17 @@ function RadioGroup2({
5097
5560
 
5098
5561
  // src/components/components/Resizable/index.tsx
5099
5562
  var import_runtime15 = require("@pactor-app/runtime");
5100
- var import_react19 = require("react");
5563
+ var import_react20 = require("react");
5101
5564
 
5102
5565
  // src/ui/resizable.tsx
5103
- var import_lucide_react20 = require("lucide-react");
5566
+ var import_lucide_react21 = require("lucide-react");
5104
5567
  var import_react_resizable_panels = require("react-resizable-panels");
5105
- var import_jsx_runtime93 = require("react/jsx-runtime");
5568
+ var import_jsx_runtime97 = require("react/jsx-runtime");
5106
5569
  function PanelGroup({
5107
5570
  className,
5108
5571
  ...props
5109
5572
  }) {
5110
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5573
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5111
5574
  import_react_resizable_panels.Group,
5112
5575
  {
5113
5576
  "data-slot": "resizable-panel-group",
@@ -5120,14 +5583,14 @@ function PanelGroup({
5120
5583
  );
5121
5584
  }
5122
5585
  function Panel({ ...props }) {
5123
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
5586
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
5124
5587
  }
5125
5588
  function ResizableHandle({
5126
5589
  withHandle,
5127
5590
  className,
5128
5591
  ...props
5129
5592
  }) {
5130
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5593
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5131
5594
  import_react_resizable_panels.Separator,
5132
5595
  {
5133
5596
  "data-slot": "resizable-handle",
@@ -5136,13 +5599,13 @@ function ResizableHandle({
5136
5599
  className
5137
5600
  ),
5138
5601
  ...props,
5139
- children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_lucide_react20.GripVerticalIcon, { className: "size-2.5" }) }) : null
5602
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.GripVerticalIcon, { className: "size-2.5" }) }) : null
5140
5603
  }
5141
5604
  );
5142
5605
  }
5143
5606
 
5144
5607
  // src/components/components/Resizable/index.tsx
5145
- var import_jsx_runtime94 = require("react/jsx-runtime");
5608
+ var import_jsx_runtime98 = require("react/jsx-runtime");
5146
5609
  function Resizable({
5147
5610
  panels = [],
5148
5611
  direction = "horizontal",
@@ -5150,12 +5613,14 @@ function Resizable({
5150
5613
  style
5151
5614
  }) {
5152
5615
  const { renderChildren } = (0, import_runtime15.useRenderer)();
5153
- return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_react19.Fragment, { children: [
5154
- index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(ResizableHandle, { withHandle: true }) : null,
5155
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
5616
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_react20.Fragment, { children: [
5617
+ index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(ResizableHandle, { withHandle: true }) : null,
5618
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5156
5619
  Panel,
5157
5620
  {
5158
- defaultSize: typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
5621
+ defaultSize: typeof panel.defaultSizePx === "number" ? `${panel.defaultSizePx}px` : typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
5622
+ minSize: typeof panel.minSizePx === "number" ? `${panel.minSizePx}px` : void 0,
5623
+ maxSize: typeof panel.maxSizePx === "number" ? `${panel.maxSizePx}px` : void 0,
5159
5624
  children: renderChildren(panel.children)
5160
5625
  }
5161
5626
  )
@@ -5164,20 +5629,20 @@ function Resizable({
5164
5629
 
5165
5630
  // src/ui/scroll-area.tsx
5166
5631
  var import_scroll_area = require("@base-ui/react/scroll-area");
5167
- var import_jsx_runtime95 = require("react/jsx-runtime");
5632
+ var import_jsx_runtime99 = require("react/jsx-runtime");
5168
5633
  function ScrollArea({
5169
5634
  className,
5170
5635
  children,
5171
5636
  ...props
5172
5637
  }) {
5173
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
5638
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
5174
5639
  import_scroll_area.ScrollArea.Root,
5175
5640
  {
5176
5641
  "data-slot": "scroll-area",
5177
5642
  className: cn("relative overflow-hidden", className),
5178
5643
  ...props,
5179
5644
  children: [
5180
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5645
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5181
5646
  import_scroll_area.ScrollArea.Viewport,
5182
5647
  {
5183
5648
  "data-slot": "scroll-area-viewport",
@@ -5185,8 +5650,8 @@ function ScrollArea({
5185
5650
  children
5186
5651
  }
5187
5652
  ),
5188
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(ScrollBar, {}),
5189
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_scroll_area.ScrollArea.Corner, {})
5653
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ScrollBar, {}),
5654
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_scroll_area.ScrollArea.Corner, {})
5190
5655
  ]
5191
5656
  }
5192
5657
  );
@@ -5196,7 +5661,7 @@ function ScrollBar({
5196
5661
  orientation = "vertical",
5197
5662
  ...props
5198
5663
  }) {
5199
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5664
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5200
5665
  import_scroll_area.ScrollArea.Scrollbar,
5201
5666
  {
5202
5667
  "data-slot": "scroll-area-scrollbar",
@@ -5208,7 +5673,7 @@ function ScrollBar({
5208
5673
  className
5209
5674
  ),
5210
5675
  ...props,
5211
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5676
+ children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5212
5677
  import_scroll_area.ScrollArea.Thumb,
5213
5678
  {
5214
5679
  "data-slot": "scroll-area-thumb",
@@ -5220,7 +5685,7 @@ function ScrollBar({
5220
5685
  }
5221
5686
 
5222
5687
  // src/components/components/ScrollArea/index.tsx
5223
- var import_jsx_runtime96 = require("react/jsx-runtime");
5688
+ var import_jsx_runtime100 = require("react/jsx-runtime");
5224
5689
  function ScrollArea2({
5225
5690
  maxHeight,
5226
5691
  maxWidth,
@@ -5228,7 +5693,7 @@ function ScrollArea2({
5228
5693
  style,
5229
5694
  children
5230
5695
  }) {
5231
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5696
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
5232
5697
  ScrollArea,
5233
5698
  {
5234
5699
  className,
@@ -5240,17 +5705,17 @@ function ScrollArea2({
5240
5705
 
5241
5706
  // src/components/components/Select/index.tsx
5242
5707
  var import_runtime16 = require("@pactor-app/runtime");
5243
- var import_react20 = require("react");
5708
+ var import_react21 = require("react");
5244
5709
 
5245
5710
  // src/ui/select.tsx
5246
5711
  var import_select = require("@base-ui/react/select");
5247
- var import_lucide_react21 = require("lucide-react");
5248
- var import_jsx_runtime97 = require("react/jsx-runtime");
5712
+ var import_lucide_react22 = require("lucide-react");
5713
+ var import_jsx_runtime101 = require("react/jsx-runtime");
5249
5714
  var Select = import_select.Select.Root;
5250
5715
  function SelectValue({
5251
5716
  ...props
5252
5717
  }) {
5253
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
5718
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
5254
5719
  }
5255
5720
  function SelectTrigger({
5256
5721
  className,
@@ -5258,7 +5723,7 @@ function SelectTrigger({
5258
5723
  children,
5259
5724
  ...props
5260
5725
  }) {
5261
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
5726
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
5262
5727
  import_select.Select.Trigger,
5263
5728
  {
5264
5729
  "data-slot": "select-trigger",
@@ -5270,10 +5735,10 @@ function SelectTrigger({
5270
5735
  ...props,
5271
5736
  children: [
5272
5737
  children,
5273
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5738
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5274
5739
  import_select.Select.Icon,
5275
5740
  {
5276
- render: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.ChevronDownIcon, { className: "size-4 opacity-50" })
5741
+ render: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4 opacity-50" })
5277
5742
  }
5278
5743
  )
5279
5744
  ]
@@ -5289,7 +5754,7 @@ function SelectContent({
5289
5754
  alignItemWithTrigger = false,
5290
5755
  ...props
5291
5756
  }) {
5292
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5757
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5293
5758
  import_select.Select.Positioner,
5294
5759
  {
5295
5760
  side,
@@ -5297,19 +5762,19 @@ function SelectContent({
5297
5762
  align,
5298
5763
  alignItemWithTrigger,
5299
5764
  className: "isolate z-50",
5300
- children: /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
5765
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
5301
5766
  import_select.Select.Popup,
5302
5767
  {
5303
5768
  "data-slot": "select-content",
5304
5769
  className: cn(
5305
- "relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
5770
+ "relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
5306
5771
  className
5307
5772
  ),
5308
5773
  ...props,
5309
5774
  children: [
5310
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(SelectScrollUpButton, {}),
5311
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_select.Select.List, { className: "p-1", children }),
5312
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(SelectScrollDownButton, {})
5775
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SelectScrollUpButton, {}),
5776
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.List, { className: "p-1", children }),
5777
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SelectScrollDownButton, {})
5313
5778
  ]
5314
5779
  }
5315
5780
  )
@@ -5321,18 +5786,18 @@ function SelectItem({
5321
5786
  children,
5322
5787
  ...props
5323
5788
  }) {
5324
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
5789
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
5325
5790
  import_select.Select.Item,
5326
5791
  {
5327
5792
  "data-slot": "select-item",
5328
5793
  className: cn(
5329
- "relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none 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 [&_svg:not([class*='size-'])]:size-4",
5794
+ "relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
5330
5795
  className
5331
5796
  ),
5332
5797
  ...props,
5333
5798
  children: [
5334
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.CheckIcon, { className: "size-4" }) }) }),
5335
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_select.Select.ItemText, { children })
5799
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.CheckIcon, { className: "size-4" }) }) }),
5800
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.ItemText, { children })
5336
5801
  ]
5337
5802
  }
5338
5803
  );
@@ -5341,7 +5806,7 @@ function SelectScrollUpButton({
5341
5806
  className,
5342
5807
  ...props
5343
5808
  }) {
5344
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5809
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5345
5810
  import_select.Select.ScrollUpArrow,
5346
5811
  {
5347
5812
  "data-slot": "select-scroll-up-button",
@@ -5350,7 +5815,7 @@ function SelectScrollUpButton({
5350
5815
  className
5351
5816
  ),
5352
5817
  ...props,
5353
- children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.ChevronUpIcon, { className: "size-4" })
5818
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronUpIcon, { className: "size-4" })
5354
5819
  }
5355
5820
  );
5356
5821
  }
@@ -5358,7 +5823,7 @@ function SelectScrollDownButton({
5358
5823
  className,
5359
5824
  ...props
5360
5825
  }) {
5361
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5826
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5362
5827
  import_select.Select.ScrollDownArrow,
5363
5828
  {
5364
5829
  "data-slot": "select-scroll-down-button",
@@ -5367,13 +5832,13 @@ function SelectScrollDownButton({
5367
5832
  className
5368
5833
  ),
5369
5834
  ...props,
5370
- children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.ChevronDownIcon, { className: "size-4" })
5835
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4" })
5371
5836
  }
5372
5837
  );
5373
5838
  }
5374
5839
 
5375
5840
  // src/components/components/Select/index.tsx
5376
- var import_jsx_runtime98 = require("react/jsx-runtime");
5841
+ var import_jsx_runtime102 = require("react/jsx-runtime");
5377
5842
  function Select2({
5378
5843
  name,
5379
5844
  label,
@@ -5389,9 +5854,9 @@ function Select2({
5389
5854
  }) {
5390
5855
  const form = useFormContext();
5391
5856
  const { t } = (0, import_runtime16.useI18n)();
5392
- const controlId = (0, import_react20.useId)();
5857
+ const controlId = (0, import_react21.useId)();
5393
5858
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5394
- (0, import_react20.useEffect)(() => {
5859
+ (0, import_react21.useEffect)(() => {
5395
5860
  if (inForm && form && name) {
5396
5861
  form.registerField(name, rules, value);
5397
5862
  return () => form.unregisterField(name);
@@ -5407,13 +5872,13 @@ function Select2({
5407
5872
  onChange?.(next ?? void 0);
5408
5873
  };
5409
5874
  const inFormRoot = inForm === true;
5410
- const select = /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
5875
+ const select = /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5411
5876
  "span",
5412
5877
  {
5413
5878
  className: cn("inline-flex items-center gap-1", !inFormRoot && className),
5414
5879
  style: inFormRoot ? void 0 : style,
5415
5880
  children: [
5416
- /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
5881
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5417
5882
  Select,
5418
5883
  {
5419
5884
  items: options,
@@ -5422,8 +5887,8 @@ function Select2({
5422
5887
  disabled,
5423
5888
  name: inForm ? name : void 0,
5424
5889
  children: [
5425
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(SelectTrigger, { id: controlId, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(SelectValue, { placeholder }) }),
5426
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5890
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectTrigger, { id: controlId, children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectValue, { placeholder }) }),
5891
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5427
5892
  SelectItem,
5428
5893
  {
5429
5894
  value: option.value,
@@ -5435,7 +5900,7 @@ function Select2({
5435
5900
  ]
5436
5901
  }
5437
5902
  ),
5438
- allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5903
+ allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5439
5904
  "button",
5440
5905
  {
5441
5906
  type: "button",
@@ -5455,14 +5920,14 @@ function Select2({
5455
5920
  );
5456
5921
  if (inForm && form && name) {
5457
5922
  const error = form.errors[name];
5458
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
5923
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5459
5924
  "div",
5460
5925
  {
5461
5926
  "data-slot": "form-item",
5462
5927
  className: cn(formItemClass(form.layout), className),
5463
5928
  style,
5464
5929
  children: [
5465
- label ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5930
+ label ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5466
5931
  "label",
5467
5932
  {
5468
5933
  htmlFor: controlId,
@@ -5471,7 +5936,7 @@ function Select2({
5471
5936
  }
5472
5937
  ) : null,
5473
5938
  select,
5474
- error ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5939
+ error ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5475
5940
  ]
5476
5941
  }
5477
5942
  );
@@ -5479,146 +5944,14 @@ function Select2({
5479
5944
  return select;
5480
5945
  }
5481
5946
 
5482
- // src/ui/separator.tsx
5483
- var import_separator = require("@base-ui/react/separator");
5484
- var import_jsx_runtime99 = require("react/jsx-runtime");
5485
- function Separator({
5486
- className,
5487
- orientation = "horizontal",
5488
- decorative: _decorative,
5489
- ...props
5490
- }) {
5491
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5492
- import_separator.Separator,
5493
- {
5494
- "data-slot": "separator",
5495
- orientation,
5496
- className: cn(
5497
- "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
5498
- className
5499
- ),
5500
- ...props
5501
- }
5502
- );
5503
- }
5504
-
5505
5947
  // src/components/components/Separator/index.tsx
5506
- var import_jsx_runtime100 = require("react/jsx-runtime");
5948
+ var import_jsx_runtime103 = require("react/jsx-runtime");
5507
5949
  function Separator2({ orientation = "horizontal", className, style }) {
5508
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(Separator, { orientation, className, style });
5509
- }
5510
-
5511
- // src/ui/sheet.tsx
5512
- var import_dialog3 = require("@base-ui/react/dialog");
5513
- var import_lucide_react22 = require("lucide-react");
5514
- var import_class_variance_authority5 = require("class-variance-authority");
5515
- var import_jsx_runtime101 = require("react/jsx-runtime");
5516
- function Sheet({
5517
- ...props
5518
- }) {
5519
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
5520
- }
5521
- function SheetPortal({
5522
- ...props
5523
- }) {
5524
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
5525
- }
5526
- function SheetOverlay({
5527
- className,
5528
- ...props
5529
- }) {
5530
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5531
- import_dialog3.Dialog.Backdrop,
5532
- {
5533
- "data-slot": "sheet-overlay",
5534
- className: cn(
5535
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
5536
- className
5537
- ),
5538
- ...props
5539
- }
5540
- );
5541
- }
5542
- var sheetVariants = (0, import_class_variance_authority5.cva)(
5543
- "fixed z-50 flex flex-col gap-4 border-border bg-background shadow-lg transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
5544
- {
5545
- variants: {
5546
- side: {
5547
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-open:slide-in-from-right data-closed:slide-out-to-right sm:max-w-sm",
5548
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-open:slide-in-from-left data-closed:slide-out-to-left sm:max-w-sm",
5549
- top: "inset-x-0 top-0 border-b data-open:slide-in-from-top data-closed:slide-out-to-top",
5550
- bottom: "inset-x-0 bottom-0 border-t data-open:slide-in-from-bottom data-closed:slide-out-to-bottom"
5551
- }
5552
- },
5553
- defaultVariants: {
5554
- side: "right"
5555
- }
5556
- }
5557
- );
5558
- function SheetContent({
5559
- className,
5560
- children,
5561
- side = "right",
5562
- ...props
5563
- }) {
5564
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
5565
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SheetOverlay, {}),
5566
- /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
5567
- import_dialog3.Dialog.Popup,
5568
- {
5569
- "data-slot": "sheet-content",
5570
- className: cn(sheetVariants({ side }), className),
5571
- ...props,
5572
- children: [
5573
- children,
5574
- /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
5575
- import_dialog3.Dialog.Close,
5576
- {
5577
- "data-slot": "sheet-close",
5578
- render: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5579
- "button",
5580
- {
5581
- type: "button",
5582
- className: "absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
5583
- }
5584
- ),
5585
- children: [
5586
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.XIcon, {}),
5587
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "sr-only", children: "Close" })
5588
- ]
5589
- }
5590
- )
5591
- ]
5592
- }
5593
- )
5594
- ] });
5595
- }
5596
- function SheetHeader({ className, ...props }) {
5597
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5598
- "div",
5599
- {
5600
- "data-slot": "sheet-header",
5601
- className: cn("flex flex-col gap-1.5 p-4", className),
5602
- ...props
5603
- }
5604
- );
5605
- }
5606
- function SheetTitle({
5607
- className,
5608
- ...props
5609
- }) {
5610
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5611
- import_dialog3.Dialog.Title,
5612
- {
5613
- "data-slot": "sheet-title",
5614
- className: cn("font-semibold text-foreground", className),
5615
- ...props
5616
- }
5617
- );
5950
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Separator, { orientation, className, style });
5618
5951
  }
5619
5952
 
5620
5953
  // src/components/components/Sheet/index.tsx
5621
- var import_jsx_runtime102 = require("react/jsx-runtime");
5954
+ var import_jsx_runtime104 = require("react/jsx-runtime");
5622
5955
  function Sheet2({
5623
5956
  title,
5624
5957
  open,
@@ -5628,7 +5961,7 @@ function Sheet2({
5628
5961
  className,
5629
5962
  style
5630
5963
  }) {
5631
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5964
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
5632
5965
  Sheet,
5633
5966
  {
5634
5967
  open: open ?? false,
@@ -5637,9 +5970,9 @@ function Sheet2({
5637
5970
  onClose?.();
5638
5971
  }
5639
5972
  },
5640
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(SheetContent, { side, className, style, children: [
5641
- title ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SheetTitle, { children: title }) }) : null,
5642
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
5973
+ children: /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(SheetContent, { side, className, style, children: [
5974
+ title ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SheetTitle, { children: title }) }) : null,
5975
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
5643
5976
  ] })
5644
5977
  }
5645
5978
  );
@@ -5647,7 +5980,7 @@ function Sheet2({
5647
5980
 
5648
5981
  // src/components/components/Sider/index.tsx
5649
5982
  var import_lucide_react23 = require("lucide-react");
5650
- var import_jsx_runtime103 = require("react/jsx-runtime");
5983
+ var import_jsx_runtime105 = require("react/jsx-runtime");
5651
5984
  function Sider({
5652
5985
  width = 200,
5653
5986
  collapsible,
@@ -5659,26 +5992,26 @@ function Sider({
5659
5992
  children
5660
5993
  }) {
5661
5994
  const current = collapsed ? collapsedWidth : width;
5662
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
5995
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
5663
5996
  "aside",
5664
5997
  {
5665
5998
  "data-slot": "layout-sider",
5666
5999
  "data-collapsed": collapsed || void 0,
5667
6000
  className: cn(
5668
- "flex min-h-0 shrink-0 flex-col border-r bg-background transition-[width]",
6001
+ "flex min-h-0 shrink-0 flex-col border-r bg-sidebar transition-[width]",
5669
6002
  className
5670
6003
  ),
5671
6004
  style: { width: current, ...style },
5672
6005
  children: [
5673
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
5674
- collapsible ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6006
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
6007
+ collapsible ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
5675
6008
  "button",
5676
6009
  {
5677
6010
  type: "button",
5678
6011
  "aria-label": collapsed ? "expand sider" : "collapse sider",
5679
6012
  className: "flex h-10 shrink-0 items-center justify-center border-t text-muted-foreground hover:text-foreground",
5680
6013
  onClick: () => onCollapse?.(!collapsed),
5681
- children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react23.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react23.ChevronLeft, { "aria-hidden": true, className: "size-4" })
6014
+ children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react23.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react23.ChevronLeft, { "aria-hidden": true, className: "size-4" })
5682
6015
  }
5683
6016
  ) : null
5684
6017
  ]
@@ -5686,21 +6019,8 @@ function Sider({
5686
6019
  );
5687
6020
  }
5688
6021
 
5689
- // src/ui/skeleton.tsx
5690
- var import_jsx_runtime104 = require("react/jsx-runtime");
5691
- function Skeleton({ className, ...props }) {
5692
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
5693
- "div",
5694
- {
5695
- "data-slot": "skeleton",
5696
- className: cn("animate-pulse rounded-md bg-muted", className),
5697
- ...props
5698
- }
5699
- );
5700
- }
5701
-
5702
6022
  // src/components/components/Skeleton/index.tsx
5703
- var import_jsx_runtime105 = require("react/jsx-runtime");
6023
+ var import_jsx_runtime106 = require("react/jsx-runtime");
5704
6024
  var shapeDefaults = {
5705
6025
  line: { className: "h-4 w-full", style: {} },
5706
6026
  circle: { className: "rounded-full", style: { width: 40, height: 40 } },
@@ -5711,7 +6031,7 @@ function toSize(value) {
5711
6031
  }
5712
6032
  function Skeleton2({ shape = "line", width, height, className, style }) {
5713
6033
  const defaults = shapeDefaults[shape];
5714
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
6034
+ return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
5715
6035
  Skeleton,
5716
6036
  {
5717
6037
  className: cn(defaults.className, className),
@@ -5726,13 +6046,13 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
5726
6046
  }
5727
6047
 
5728
6048
  // src/components/components/Slider/index.tsx
5729
- var import_react21 = require("react");
6049
+ var import_react22 = require("react");
5730
6050
 
5731
6051
  // src/ui/slider.tsx
5732
6052
  var import_slider = require("@base-ui/react/slider");
5733
- var import_jsx_runtime106 = require("react/jsx-runtime");
6053
+ var import_jsx_runtime107 = require("react/jsx-runtime");
5734
6054
  function Slider({ className, ...props }) {
5735
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6055
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
5736
6056
  import_slider.Slider.Root,
5737
6057
  {
5738
6058
  "data-slot": "slider",
@@ -5745,7 +6065,7 @@ function Slider({ className, ...props }) {
5745
6065
  );
5746
6066
  }
5747
6067
  function SliderControl({ className, ...props }) {
5748
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6068
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
5749
6069
  import_slider.Slider.Control,
5750
6070
  {
5751
6071
  "data-slot": "slider-control",
@@ -5755,12 +6075,12 @@ function SliderControl({ className, ...props }) {
5755
6075
  );
5756
6076
  }
5757
6077
  function SliderTrack({ className, ...props }) {
5758
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6078
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
5759
6079
  import_slider.Slider.Track,
5760
6080
  {
5761
6081
  "data-slot": "slider-track",
5762
6082
  className: cn(
5763
- "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted",
6083
+ "relative h-1.5 w-full grow overflow-hidden rounded-full bg-(--slider-track)",
5764
6084
  className
5765
6085
  ),
5766
6086
  ...props
@@ -5768,22 +6088,22 @@ function SliderTrack({ className, ...props }) {
5768
6088
  );
5769
6089
  }
5770
6090
  function SliderIndicator({ className, ...props }) {
5771
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6091
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
5772
6092
  import_slider.Slider.Indicator,
5773
6093
  {
5774
6094
  "data-slot": "slider-indicator",
5775
- className: cn("absolute h-full bg-primary", className),
6095
+ className: cn("absolute h-full bg-(--slider-range)", className),
5776
6096
  ...props
5777
6097
  }
5778
6098
  );
5779
6099
  }
5780
6100
  function SliderThumb({ className, ...props }) {
5781
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6101
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
5782
6102
  import_slider.Slider.Thumb,
5783
6103
  {
5784
6104
  "data-slot": "slider-thumb",
5785
6105
  className: cn(
5786
- "block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-background shadow-sm transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50",
6106
+ "block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-(--slider-thumb) shadow-sm transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50",
5787
6107
  className
5788
6108
  ),
5789
6109
  ...props
@@ -5792,7 +6112,7 @@ function SliderThumb({ className, ...props }) {
5792
6112
  }
5793
6113
 
5794
6114
  // src/components/components/Slider/index.tsx
5795
- var import_jsx_runtime107 = require("react/jsx-runtime");
6115
+ var import_jsx_runtime108 = require("react/jsx-runtime");
5796
6116
  function Slider2({
5797
6117
  name,
5798
6118
  label,
@@ -5808,7 +6128,7 @@ function Slider2({
5808
6128
  }) {
5809
6129
  const form = useFormContext();
5810
6130
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5811
- (0, import_react21.useEffect)(() => {
6131
+ (0, import_react22.useEffect)(() => {
5812
6132
  if (inForm && form && name) {
5813
6133
  form.registerField(name, rules, value);
5814
6134
  return () => form.unregisterField(name);
@@ -5823,7 +6143,7 @@ function Slider2({
5823
6143
  }
5824
6144
  onChange?.(next);
5825
6145
  };
5826
- const slider = /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6146
+ const slider = /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
5827
6147
  Slider,
5828
6148
  {
5829
6149
  value: numberValue,
@@ -5835,14 +6155,14 @@ function Slider2({
5835
6155
  onValueChange: handleChange,
5836
6156
  className: inForm ? void 0 : className,
5837
6157
  style: inForm ? void 0 : style,
5838
- children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(SliderControl, { children: /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(SliderTrack, { children: [
5839
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(SliderIndicator, {}),
5840
- /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(SliderThumb, {})
5841
- ] }) })
6158
+ children: /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(SliderControl, { children: [
6159
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderIndicator, {}) }),
6160
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderThumb, {})
6161
+ ] })
5842
6162
  }
5843
6163
  );
5844
6164
  if (inForm && form && name) {
5845
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6165
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
5846
6166
  FieldShell,
5847
6167
  {
5848
6168
  layout: form.layout,
@@ -5859,12 +6179,12 @@ function Slider2({
5859
6179
 
5860
6180
  // src/components/components/Sonner/index.tsx
5861
6181
  var import_runtime17 = require("@pactor-app/runtime");
5862
- var import_react22 = require("react");
6182
+ var import_react23 = require("react");
5863
6183
 
5864
6184
  // src/ui/toast.tsx
5865
6185
  var import_toast = require("@base-ui/react/toast");
5866
6186
  var import_lucide_react24 = require("lucide-react");
5867
- var import_jsx_runtime108 = require("react/jsx-runtime");
6187
+ var import_jsx_runtime109 = require("react/jsx-runtime");
5868
6188
  var toastManager = import_toast.Toast.createToastManager();
5869
6189
  function toast(message, options = {}) {
5870
6190
  return toastManager.add({
@@ -5880,7 +6200,7 @@ var toastVariantClass = {
5880
6200
  };
5881
6201
  function ToasterViewport({ className }) {
5882
6202
  const { toasts } = import_toast.Toast.useToastManager();
5883
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6203
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
5884
6204
  import_toast.Toast.Viewport,
5885
6205
  {
5886
6206
  "data-slot": "toast-viewport",
@@ -5888,26 +6208,26 @@ function ToasterViewport({ className }) {
5888
6208
  "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
5889
6209
  className
5890
6210
  ),
5891
- children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6211
+ children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
5892
6212
  import_toast.Toast.Root,
5893
6213
  {
5894
6214
  toast: item,
5895
6215
  "data-slot": "toast",
5896
6216
  "data-type": item.type ?? "info",
5897
6217
  className: cn(
5898
- "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
6218
+ "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md shadow-(color:--shadow-color) transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
5899
6219
  toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
5900
6220
  ),
5901
- children: /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
5902
- /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("div", { className: "grid gap-0.5", children: [
5903
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6221
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
6222
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: "grid gap-0.5", children: [
6223
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
5904
6224
  import_toast.Toast.Title,
5905
6225
  {
5906
6226
  "data-slot": "toast-title",
5907
6227
  className: "font-medium"
5908
6228
  }
5909
6229
  ),
5910
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6230
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
5911
6231
  import_toast.Toast.Description,
5912
6232
  {
5913
6233
  "data-slot": "toast-description",
@@ -5915,13 +6235,13 @@ function ToasterViewport({ className }) {
5915
6235
  }
5916
6236
  )
5917
6237
  ] }),
5918
- /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6238
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
5919
6239
  import_toast.Toast.Close,
5920
6240
  {
5921
6241
  "data-slot": "toast-close",
5922
6242
  "aria-label": "Close",
5923
6243
  className: "cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none [&_svg]:size-3.5",
5924
- children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react24.XIcon, {})
6244
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_lucide_react24.XIcon, {})
5925
6245
  }
5926
6246
  )
5927
6247
  ] })
@@ -5932,14 +6252,14 @@ function ToasterViewport({ className }) {
5932
6252
  ) });
5933
6253
  }
5934
6254
  function Toaster({ className }) {
5935
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(ToasterViewport, { className }) });
6255
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(ToasterViewport, { className }) });
5936
6256
  }
5937
6257
 
5938
6258
  // src/components/components/Sonner/index.tsx
5939
- var import_jsx_runtime109 = require("react/jsx-runtime");
6259
+ var import_jsx_runtime110 = require("react/jsx-runtime");
5940
6260
  function Sonner({ className, style }) {
5941
6261
  const { context } = (0, import_runtime17.useRenderer)();
5942
- (0, import_react22.useEffect)(() => {
6262
+ (0, import_react23.useEffect)(() => {
5943
6263
  const { actions } = context;
5944
6264
  if (actions.has("toast")) {
5945
6265
  return;
@@ -5953,14 +6273,14 @@ function Sonner({ className, style }) {
5953
6273
  return { ok: true };
5954
6274
  });
5955
6275
  }, [context]);
5956
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Toaster, {}) });
6276
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Toaster, {}) });
5957
6277
  }
5958
6278
 
5959
6279
  // src/ui/spinner.tsx
5960
6280
  var import_lucide_react25 = require("lucide-react");
5961
- var import_jsx_runtime110 = require("react/jsx-runtime");
6281
+ var import_jsx_runtime111 = require("react/jsx-runtime");
5962
6282
  function Spinner({ className, ...props }) {
5963
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6283
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
5964
6284
  import_lucide_react25.Loader2Icon,
5965
6285
  {
5966
6286
  role: "status",
@@ -5973,50 +6293,50 @@ function Spinner({ className, ...props }) {
5973
6293
  }
5974
6294
 
5975
6295
  // src/components/components/Spinner/index.tsx
5976
- var import_jsx_runtime111 = require("react/jsx-runtime");
6296
+ var import_jsx_runtime112 = require("react/jsx-runtime");
5977
6297
  var sizeClass = {
5978
6298
  sm: "size-3",
5979
6299
  default: "size-4",
5980
6300
  lg: "size-6"
5981
6301
  };
5982
6302
  function Spinner2({ size = "default", className, style }) {
5983
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
6303
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
5984
6304
  }
5985
6305
 
5986
6306
  // src/components/components/Statistic/index.tsx
5987
- var import_jsx_runtime112 = require("react/jsx-runtime");
6307
+ var import_jsx_runtime113 = require("react/jsx-runtime");
5988
6308
  function Statistic({ title, value, precision, suffix, className, style }) {
5989
6309
  const display = typeof value === "number" && precision !== void 0 ? value.toFixed(precision) : value;
5990
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
5991
- title ? /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
5992
- /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
6310
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
6311
+ title ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
6312
+ /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
5993
6313
  display,
5994
- suffix ? /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
6314
+ suffix ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
5995
6315
  ] })
5996
6316
  ] });
5997
6317
  }
5998
6318
 
5999
6319
  // src/components/components/Switch/index.tsx
6000
- var import_react23 = require("react");
6320
+ var import_react24 = require("react");
6001
6321
 
6002
6322
  // src/ui/switch.tsx
6003
6323
  var import_switch = require("@base-ui/react/switch");
6004
- var import_jsx_runtime113 = require("react/jsx-runtime");
6324
+ var import_jsx_runtime114 = require("react/jsx-runtime");
6005
6325
  function Switch({ className, ...props }) {
6006
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
6326
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
6007
6327
  import_switch.Switch.Root,
6008
6328
  {
6009
6329
  "data-slot": "switch",
6010
6330
  className: cn(
6011
- "inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-primary data-unchecked:bg-input",
6331
+ "inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-(--switch-track-checked) data-unchecked:bg-(--switch-track)",
6012
6332
  className
6013
6333
  ),
6014
6334
  ...props,
6015
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
6335
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
6016
6336
  import_switch.Switch.Thumb,
6017
6337
  {
6018
6338
  "data-slot": "switch-thumb",
6019
- className: "pointer-events-none block size-4 rounded-full bg-background transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0"
6339
+ className: "pointer-events-none block size-4 rounded-full bg-(--switch-thumb) transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0"
6020
6340
  }
6021
6341
  )
6022
6342
  }
@@ -6024,7 +6344,7 @@ function Switch({ className, ...props }) {
6024
6344
  }
6025
6345
 
6026
6346
  // src/components/components/Switch/index.tsx
6027
- var import_jsx_runtime114 = require("react/jsx-runtime");
6347
+ var import_jsx_runtime115 = require("react/jsx-runtime");
6028
6348
  function Switch2({
6029
6349
  name,
6030
6350
  label,
@@ -6036,9 +6356,9 @@ function Switch2({
6036
6356
  style
6037
6357
  }) {
6038
6358
  const form = useFormContext();
6039
- const controlId = (0, import_react23.useId)();
6359
+ const controlId = (0, import_react24.useId)();
6040
6360
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6041
- (0, import_react23.useEffect)(() => {
6361
+ (0, import_react24.useEffect)(() => {
6042
6362
  if (inForm && form && name) {
6043
6363
  form.registerField(name, rules, value);
6044
6364
  return () => form.unregisterField(name);
@@ -6053,13 +6373,13 @@ function Switch2({
6053
6373
  }
6054
6374
  onChange?.(next);
6055
6375
  };
6056
- const control = /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
6376
+ const control = /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
6057
6377
  "span",
6058
6378
  {
6059
6379
  className: cn("inline-flex items-center gap-2", !inForm && className),
6060
6380
  style: inForm ? void 0 : style,
6061
6381
  children: [
6062
- /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
6382
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6063
6383
  Switch,
6064
6384
  {
6065
6385
  id: controlId,
@@ -6069,12 +6389,12 @@ function Switch2({
6069
6389
  onCheckedChange: handleChange
6070
6390
  }
6071
6391
  ),
6072
- label ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
6392
+ label ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
6073
6393
  ]
6074
6394
  }
6075
6395
  );
6076
6396
  if (inForm && form && name) {
6077
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
6397
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
6078
6398
  "div",
6079
6399
  {
6080
6400
  "data-slot": "form-item",
@@ -6082,7 +6402,7 @@ function Switch2({
6082
6402
  style,
6083
6403
  children: [
6084
6404
  control,
6085
- form.errors[name] ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
6405
+ form.errors[name] ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
6086
6406
  ]
6087
6407
  }
6088
6408
  );
@@ -6092,8 +6412,8 @@ function Switch2({
6092
6412
 
6093
6413
  // src/components/components/Table/index.tsx
6094
6414
  var import_runtime18 = require("@pactor-app/runtime");
6095
- var import_react24 = require("react");
6096
- var import_jsx_runtime115 = require("react/jsx-runtime");
6415
+ var import_react25 = require("react");
6416
+ var import_jsx_runtime116 = require("react/jsx-runtime");
6097
6417
  function renderCellValue2(value) {
6098
6418
  if (value === void 0 || value === null) {
6099
6419
  return "";
@@ -6115,7 +6435,7 @@ function Table3({
6115
6435
  }) {
6116
6436
  const { renderChildren } = (0, import_runtime18.useRenderer)();
6117
6437
  const { t } = (0, import_runtime18.useI18n)();
6118
- const [current, setCurrent] = (0, import_react24.useState)(1);
6438
+ const [current, setCurrent] = (0, import_react25.useState)(1);
6119
6439
  const pageSize = pagination === false ? void 0 : pagination?.pageSize;
6120
6440
  const total = dataSource.length;
6121
6441
  const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
@@ -6124,17 +6444,17 @@ function Table3({
6124
6444
  setCurrent(page);
6125
6445
  onChange?.({ current: page, pageSize, total });
6126
6446
  };
6127
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
6128
- loading ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6447
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
6448
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6129
6449
  "div",
6130
6450
  {
6131
6451
  "data-slot": "table-loading",
6132
- className: "absolute inset-0 z-10 flex items-center justify-center bg-background/60 text-sm text-muted-foreground",
6452
+ className: "absolute inset-0 z-10 flex items-center justify-center bg-card/60 text-sm text-muted-foreground",
6133
6453
  children: t("pactor.table.loading")
6134
6454
  }
6135
6455
  ) : null,
6136
- /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(Table2, { children: [
6137
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6456
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Table2, { children: [
6457
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6138
6458
  TableHead,
6139
6459
  {
6140
6460
  style: column.width !== void 0 ? { width: column.width } : void 0,
@@ -6142,7 +6462,7 @@ function Table3({
6142
6462
  },
6143
6463
  column.dataIndex ?? String(index)
6144
6464
  )) }) }),
6145
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6465
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6146
6466
  "div",
6147
6467
  {
6148
6468
  "data-slot": "table-empty",
@@ -6151,10 +6471,10 @@ function Table3({
6151
6471
  }
6152
6472
  ) }) }) : pageRows.map((row, rowIndex) => {
6153
6473
  const key = row[rowKey];
6154
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6474
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6155
6475
  TableRow,
6156
6476
  {
6157
- children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
6477
+ children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
6158
6478
  column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
6159
6479
  ) }, column.dataIndex ?? String(columnIndex)))
6160
6480
  },
@@ -6162,8 +6482,8 @@ function Table3({
6162
6482
  );
6163
6483
  }) })
6164
6484
  ] }),
6165
- pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
6166
- (page) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6485
+ pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
6486
+ (page) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6167
6487
  Button,
6168
6488
  {
6169
6489
  type: "button",
@@ -6184,12 +6504,12 @@ var import_runtime19 = require("@pactor-app/runtime");
6184
6504
 
6185
6505
  // src/ui/tabs.tsx
6186
6506
  var import_tabs = require("@base-ui/react/tabs");
6187
- var import_jsx_runtime116 = require("react/jsx-runtime");
6507
+ var import_jsx_runtime117 = require("react/jsx-runtime");
6188
6508
  function Tabs({
6189
6509
  className,
6190
6510
  ...props
6191
6511
  }) {
6192
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6512
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6193
6513
  import_tabs.Tabs.Root,
6194
6514
  {
6195
6515
  "data-slot": "tabs",
@@ -6202,7 +6522,7 @@ function TabsList({
6202
6522
  className,
6203
6523
  ...props
6204
6524
  }) {
6205
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6525
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6206
6526
  import_tabs.Tabs.List,
6207
6527
  {
6208
6528
  "data-slot": "tabs-list",
@@ -6218,12 +6538,12 @@ function TabsTrigger({
6218
6538
  className,
6219
6539
  ...props
6220
6540
  }) {
6221
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6541
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6222
6542
  import_tabs.Tabs.Tab,
6223
6543
  {
6224
6544
  "data-slot": "tabs-trigger",
6225
6545
  className: cn(
6226
- "inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-background data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6546
+ "inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-card data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6227
6547
  className
6228
6548
  ),
6229
6549
  ...props
@@ -6234,7 +6554,7 @@ function TabsContent({
6234
6554
  className,
6235
6555
  ...props
6236
6556
  }) {
6237
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6557
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6238
6558
  import_tabs.Tabs.Panel,
6239
6559
  {
6240
6560
  "data-slot": "tabs-content",
@@ -6245,10 +6565,10 @@ function TabsContent({
6245
6565
  }
6246
6566
 
6247
6567
  // src/components/components/Tabs/index.tsx
6248
- var import_jsx_runtime117 = require("react/jsx-runtime");
6568
+ var import_jsx_runtime118 = require("react/jsx-runtime");
6249
6569
  function Tabs2({ items = [], activeKey, onChange, className, style }) {
6250
6570
  const { renderChildren } = (0, import_runtime19.useRenderer)();
6251
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
6571
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
6252
6572
  Tabs,
6253
6573
  {
6254
6574
  value: activeKey,
@@ -6257,20 +6577,20 @@ function Tabs2({ items = [], activeKey, onChange, className, style }) {
6257
6577
  className,
6258
6578
  style,
6259
6579
  children: [
6260
- /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TabsList, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
6261
- items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
6580
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsList, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
6581
+ items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
6262
6582
  ]
6263
6583
  }
6264
6584
  );
6265
6585
  }
6266
6586
 
6267
6587
  // src/components/components/Text/index.tsx
6268
- var import_jsx_runtime118 = require("react/jsx-runtime");
6588
+ var import_jsx_runtime119 = require("react/jsx-runtime");
6269
6589
  var typeClassMap = {
6270
6590
  default: "",
6271
6591
  secondary: "text-muted-foreground",
6272
- success: "text-green-600 dark:text-green-400",
6273
- warning: "text-amber-600 dark:text-amber-400",
6592
+ success: "text-success",
6593
+ warning: "text-warning",
6274
6594
  danger: "text-destructive"
6275
6595
  };
6276
6596
  function Text({
@@ -6284,7 +6604,7 @@ function Text({
6284
6604
  style,
6285
6605
  children
6286
6606
  }) {
6287
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
6607
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
6288
6608
  "span",
6289
6609
  {
6290
6610
  "data-slot": "text",
@@ -6304,8 +6624,8 @@ function Text({
6304
6624
  }
6305
6625
 
6306
6626
  // src/components/components/Textarea/index.tsx
6307
- var import_react25 = require("react");
6308
- var import_jsx_runtime119 = require("react/jsx-runtime");
6627
+ var import_react26 = require("react");
6628
+ var import_jsx_runtime120 = require("react/jsx-runtime");
6309
6629
  function Textarea2({
6310
6630
  name,
6311
6631
  label,
@@ -6319,9 +6639,9 @@ function Textarea2({
6319
6639
  style
6320
6640
  }) {
6321
6641
  const form = useFormContext();
6322
- const controlId = (0, import_react25.useId)();
6642
+ const controlId = (0, import_react26.useId)();
6323
6643
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6324
- (0, import_react25.useEffect)(() => {
6644
+ (0, import_react26.useEffect)(() => {
6325
6645
  if (inForm && form && name) {
6326
6646
  form.registerField(name, rules, value);
6327
6647
  return () => form.unregisterField(name);
@@ -6330,7 +6650,7 @@ function Textarea2({
6330
6650
  });
6331
6651
  if (inForm && form && name) {
6332
6652
  const fieldValue = form.values[name];
6333
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
6653
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
6334
6654
  FieldShell,
6335
6655
  {
6336
6656
  layout: form.layout,
@@ -6339,7 +6659,7 @@ function Textarea2({
6339
6659
  error: form.errors[name],
6340
6660
  className,
6341
6661
  style,
6342
- children: /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
6662
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
6343
6663
  Textarea,
6344
6664
  {
6345
6665
  id: controlId,
@@ -6356,7 +6676,7 @@ function Textarea2({
6356
6676
  }
6357
6677
  );
6358
6678
  }
6359
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
6679
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
6360
6680
  Textarea,
6361
6681
  {
6362
6682
  value: value ?? "",
@@ -6372,9 +6692,9 @@ function Textarea2({
6372
6692
 
6373
6693
  // src/ui/toggle.tsx
6374
6694
  var import_toggle = require("@base-ui/react/toggle");
6375
- var import_class_variance_authority6 = require("class-variance-authority");
6376
- var import_jsx_runtime120 = require("react/jsx-runtime");
6377
- var toggleVariants = (0, import_class_variance_authority6.cva)(
6695
+ var import_class_variance_authority7 = require("class-variance-authority");
6696
+ var import_jsx_runtime121 = require("react/jsx-runtime");
6697
+ var toggleVariants = (0, import_class_variance_authority7.cva)(
6378
6698
  "inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-pressed:bg-accent data-pressed:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
6379
6699
  {
6380
6700
  variants: {
@@ -6400,7 +6720,7 @@ function Toggle({
6400
6720
  size,
6401
6721
  ...props
6402
6722
  }) {
6403
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
6723
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
6404
6724
  import_toggle.Toggle,
6405
6725
  {
6406
6726
  "data-slot": "toggle",
@@ -6411,7 +6731,7 @@ function Toggle({
6411
6731
  }
6412
6732
 
6413
6733
  // src/components/components/Toggle/index.tsx
6414
- var import_jsx_runtime121 = require("react/jsx-runtime");
6734
+ var import_jsx_runtime122 = require("react/jsx-runtime");
6415
6735
  function Toggle2({
6416
6736
  text,
6417
6737
  pressed,
@@ -6422,7 +6742,7 @@ function Toggle2({
6422
6742
  className,
6423
6743
  style
6424
6744
  }) {
6425
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
6745
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
6426
6746
  Toggle,
6427
6747
  {
6428
6748
  pressed,
@@ -6440,9 +6760,9 @@ function Toggle2({
6440
6760
  // src/ui/toggle-group.tsx
6441
6761
  var import_toggle3 = require("@base-ui/react/toggle");
6442
6762
  var import_toggle_group = require("@base-ui/react/toggle-group");
6443
- var React4 = __toESM(require("react"), 1);
6444
- var import_jsx_runtime122 = require("react/jsx-runtime");
6445
- var ToggleGroupContext = React4.createContext({
6763
+ var React5 = __toESM(require("react"), 1);
6764
+ var import_jsx_runtime123 = require("react/jsx-runtime");
6765
+ var ToggleGroupContext = React5.createContext({
6446
6766
  size: "default",
6447
6767
  variant: "default"
6448
6768
  });
@@ -6453,7 +6773,7 @@ function ToggleGroup({
6453
6773
  children,
6454
6774
  ...props
6455
6775
  }) {
6456
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
6776
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
6457
6777
  import_toggle_group.ToggleGroup,
6458
6778
  {
6459
6779
  "data-slot": "toggle-group",
@@ -6464,7 +6784,7 @@ function ToggleGroup({
6464
6784
  className
6465
6785
  ),
6466
6786
  ...props,
6467
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
6787
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
6468
6788
  }
6469
6789
  );
6470
6790
  }
@@ -6475,8 +6795,8 @@ function ToggleGroupItem({
6475
6795
  size,
6476
6796
  ...props
6477
6797
  }) {
6478
- const context = React4.useContext(ToggleGroupContext);
6479
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
6798
+ const context = React5.useContext(ToggleGroupContext);
6799
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
6480
6800
  import_toggle3.Toggle,
6481
6801
  {
6482
6802
  "data-slot": "toggle-group-item",
@@ -6497,7 +6817,7 @@ function ToggleGroupItem({
6497
6817
  }
6498
6818
 
6499
6819
  // src/components/components/ToggleGroup/index.tsx
6500
- var import_jsx_runtime123 = require("react/jsx-runtime");
6820
+ var import_jsx_runtime124 = require("react/jsx-runtime");
6501
6821
  function ToggleGroup2({
6502
6822
  options = [],
6503
6823
  value,
@@ -6517,7 +6837,7 @@ function ToggleGroup2({
6517
6837
  onChange?.(added ?? void 0);
6518
6838
  }
6519
6839
  };
6520
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
6840
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
6521
6841
  ToggleGroup,
6522
6842
  {
6523
6843
  value: groupValue,
@@ -6526,7 +6846,7 @@ function ToggleGroup2({
6526
6846
  onValueChange: (next) => handleChange(next),
6527
6847
  className,
6528
6848
  style,
6529
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
6849
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
6530
6850
  ToggleGroupItem,
6531
6851
  {
6532
6852
  value: option.value,
@@ -6540,18 +6860,18 @@ function ToggleGroup2({
6540
6860
  }
6541
6861
 
6542
6862
  // src/components/components/Tooltip/index.tsx
6543
- var import_jsx_runtime124 = require("react/jsx-runtime");
6863
+ var import_jsx_runtime125 = require("react/jsx-runtime");
6544
6864
  function Tooltip3({ content, children, className, style }) {
6545
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Tooltip2, { children: [
6546
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
6547
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(TooltipContent, { className, style, children: content })
6865
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Tooltip2, { children: [
6866
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
6867
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(TooltipContent, { className, style, children: content })
6548
6868
  ] });
6549
6869
  }
6550
6870
 
6551
6871
  // src/ui/typography.tsx
6552
- var import_class_variance_authority7 = require("class-variance-authority");
6553
- var import_jsx_runtime125 = require("react/jsx-runtime");
6554
- var typographyVariants = (0, import_class_variance_authority7.cva)("", {
6872
+ var import_class_variance_authority8 = require("class-variance-authority");
6873
+ var import_jsx_runtime126 = require("react/jsx-runtime");
6874
+ var typographyVariants = (0, import_class_variance_authority8.cva)("", {
6555
6875
  variants: {
6556
6876
  variant: {
6557
6877
  h1: "scroll-m-20 text-4xl font-extrabold tracking-tight text-balance",
@@ -6586,7 +6906,7 @@ var variantTagMap = {
6586
6906
  };
6587
6907
  function Typography({ className, variant = "p", ...props }) {
6588
6908
  const Tag2 = variantTagMap[variant ?? "p"];
6589
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
6909
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
6590
6910
  Tag2,
6591
6911
  {
6592
6912
  "data-slot": "typography",
@@ -6598,14 +6918,14 @@ function Typography({ className, variant = "p", ...props }) {
6598
6918
  }
6599
6919
 
6600
6920
  // src/components/components/Typography/index.tsx
6601
- var import_jsx_runtime126 = require("react/jsx-runtime");
6921
+ var import_jsx_runtime127 = require("react/jsx-runtime");
6602
6922
  function Typography2({
6603
6923
  variant = "p",
6604
6924
  text,
6605
6925
  className,
6606
6926
  style
6607
6927
  }) {
6608
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Typography, { variant, className, style, children: text });
6928
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typography, { variant, className, style, children: text });
6609
6929
  }
6610
6930
 
6611
6931
  // src/components/register.ts
@@ -6714,6 +7034,7 @@ function createComponentRegistry() {
6714
7034
  Card,
6715
7035
  Carousel,
6716
7036
  Chart,
7037
+ ChatInput,
6717
7038
  Checkbox,
6718
7039
  Collapsible,
6719
7040
  Combobox,