@pactor-app/ui 1.3.0 → 1.7.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.
@@ -51,6 +51,7 @@ __export(components_exports, {
51
51
  Content: () => Content,
52
52
  ContextMenu: () => ContextMenu2,
53
53
  DataTable: () => DataTable,
54
+ DatePicker: () => DatePicker,
54
55
  Dialog: () => Dialog2,
55
56
  Drawer: () => Drawer2,
56
57
  DropdownMenu: () => DropdownMenu2,
@@ -903,11 +904,11 @@ function Calendar({
903
904
  defaultClassNames.day_button
904
905
  ),
905
906
  selected: cn(
906
- "[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background)",
907
+ "[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background) [&>button]:hover:text-(--calendar-selected-foreground)",
907
908
  defaultClassNames.selected
908
909
  ),
909
910
  today: cn(
910
- "[&>button]:bg-(--calendar-today-background) [&>button]:text-(--calendar-today-foreground)",
911
+ "[&>button]:bg-(--calendar-today-background) [&>button]:text-(--calendar-today-foreground) [&>button]:hover:bg-(--calendar-today-background) [&>button]:hover:text-(--calendar-today-foreground) [&>button]:border [&>button]:border-(--calendar-today-border)",
911
912
  defaultClassNames.today
912
913
  ),
913
914
  outside: cn(
@@ -2550,34 +2551,323 @@ function DataTable({
2550
2551
  ] });
2551
2552
  }
2552
2553
 
2553
- // src/components/components/Dialog/index.tsx
2554
+ // src/components/components/DatePicker/index.tsx
2554
2555
  var import_runtime7 = require("@pactor-app/runtime");
2556
+ var import_date_fns2 = require("date-fns");
2557
+ var import_locale = require("date-fns/locale");
2558
+ var import_lucide_react13 = require("lucide-react");
2555
2559
  var import_react11 = require("react");
2560
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2561
+ function toDateFnsLocale(locale) {
2562
+ switch (locale) {
2563
+ case "zh-CN":
2564
+ return import_locale.zhCN;
2565
+ case "en-US":
2566
+ return import_locale.enUS;
2567
+ default:
2568
+ return import_locale.enUS;
2569
+ }
2570
+ }
2571
+ function parseDate(value) {
2572
+ if (typeof value !== "string" || value === "") return void 0;
2573
+ const date = (0, import_date_fns2.parseISO)(value);
2574
+ return (0, import_date_fns2.isValid)(date) ? date : void 0;
2575
+ }
2576
+ function parseRange(value) {
2577
+ if (typeof value !== "object" || value === null) return void 0;
2578
+ const { start, end } = value;
2579
+ const from = parseDate(start);
2580
+ const to = parseDate(end);
2581
+ return from && to ? { from, to } : void 0;
2582
+ }
2583
+ var RANGE_ENDPOINT_CLASSES = "[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background) [&>button]:hover:text-(--calendar-selected-foreground)";
2584
+ var IN_RANGE_CLASSES = "[&>button]:bg-(--calendar-range-background) [&>button]:text-(--calendar-range-foreground) [&>button]:rounded-none";
2585
+ function DatePicker(props) {
2586
+ const {
2587
+ name,
2588
+ label,
2589
+ rules,
2590
+ placeholder,
2591
+ disabled,
2592
+ presets,
2593
+ className,
2594
+ style
2595
+ } = props;
2596
+ const mode = props.mode ?? "single";
2597
+ const isRange = mode === "range";
2598
+ const value = props.value;
2599
+ const onChange = props.onChange;
2600
+ const form = useFormContext();
2601
+ const { locale, t } = (0, import_runtime7.useI18n)();
2602
+ const dfLocale = toDateFnsLocale(locale);
2603
+ const controlId = (0, import_react11.useId)();
2604
+ const inForm = form?.inForm === true && typeof name === "string" && name !== "";
2605
+ const [open, setOpen] = (0, import_react11.useState)(false);
2606
+ (0, import_react11.useEffect)(() => {
2607
+ if (inForm && form && name) {
2608
+ form.registerField(name, rules, value);
2609
+ return () => form.unregisterField(name);
2610
+ }
2611
+ return void 0;
2612
+ });
2613
+ const [innerValue, setInnerValue] = (0, import_react11.useState)(value);
2614
+ (0, import_react11.useEffect)(() => {
2615
+ if (!inForm) setInnerValue(value);
2616
+ }, [inForm, value]);
2617
+ const [pendingStart, setPendingStart] = (0, import_react11.useState)();
2618
+ const [startMonth, setStartMonth] = (0, import_react11.useState)(
2619
+ () => (0, import_date_fns2.startOfMonth)(/* @__PURE__ */ new Date())
2620
+ );
2621
+ const [endMonth, setEndMonth] = (0, import_react11.useState)(
2622
+ () => (0, import_date_fns2.startOfMonth)((0, import_date_fns2.addMonths)(/* @__PURE__ */ new Date(), 1))
2623
+ );
2624
+ const current = inForm && form && name ? form.values[name] : innerValue;
2625
+ const setPanelMonths = (start, end) => {
2626
+ const s = (0, import_date_fns2.startOfMonth)(start);
2627
+ const e = (0, import_date_fns2.startOfMonth)(end);
2628
+ setStartMonth(s);
2629
+ setEndMonth((0, import_date_fns2.isBefore)(e, (0, import_date_fns2.addMonths)(s, 1)) ? (0, import_date_fns2.addMonths)(s, 1) : e);
2630
+ };
2631
+ const handleStartMonthChange = (month) => {
2632
+ const s = (0, import_date_fns2.startOfMonth)(month);
2633
+ setStartMonth(s);
2634
+ setEndMonth((prev) => (0, import_date_fns2.isBefore)(s, prev) ? prev : (0, import_date_fns2.addMonths)(s, 1));
2635
+ };
2636
+ const handleEndMonthChange = (month) => {
2637
+ const e = (0, import_date_fns2.startOfMonth)(month);
2638
+ setEndMonth(e);
2639
+ setStartMonth((prev) => (0, import_date_fns2.isBefore)(prev, e) ? prev : (0, import_date_fns2.subMonths)(e, 1));
2640
+ };
2641
+ (0, import_react11.useEffect)(() => {
2642
+ if (!isRange) return;
2643
+ const parsed = parseRange(current);
2644
+ setPendingStart(void 0);
2645
+ setPanelMonths(
2646
+ parsed?.from ?? /* @__PURE__ */ new Date(),
2647
+ parsed?.to ?? (0, import_date_fns2.addMonths)(/* @__PURE__ */ new Date(), 1)
2648
+ );
2649
+ }, [isRange, current]);
2650
+ const commit = (next) => {
2651
+ if (inForm && form && name) {
2652
+ form.setValue(name, next);
2653
+ } else {
2654
+ setInnerValue(next);
2655
+ }
2656
+ onChange?.(next);
2657
+ };
2658
+ const commitRange = (from, to) => {
2659
+ commit({ start: (0, import_date_fns2.format)(from, "yyyy-MM-dd"), end: (0, import_date_fns2.format)(to, "yyyy-MM-dd") });
2660
+ };
2661
+ const handleSingleSelect = (date) => {
2662
+ commit(date ? (0, import_date_fns2.format)(date, "yyyy-MM-dd") : void 0);
2663
+ };
2664
+ const parsedRange = isRange ? parseRange(current) : void 0;
2665
+ const rangeStart = pendingStart ?? parsedRange?.from;
2666
+ const rangeEnd = pendingStart !== void 0 ? void 0 : parsedRange?.to;
2667
+ const handleRangeDaySelect = (date) => {
2668
+ if (!date) return;
2669
+ const day = (0, import_date_fns2.startOfDay)(date);
2670
+ if (pendingStart) {
2671
+ if ((0, import_date_fns2.isBefore)(day, pendingStart)) {
2672
+ setPendingStart(day);
2673
+ } else {
2674
+ commitRange(pendingStart, day);
2675
+ }
2676
+ } else {
2677
+ setPendingStart(day);
2678
+ }
2679
+ };
2680
+ const presetList = presets === false ? [] : presets ?? (isRange ? [{ key: "today" }, { key: "thisWeek" }, { key: "thisMonth" }] : []);
2681
+ const resolvePreset = (preset) => {
2682
+ const now = /* @__PURE__ */ new Date();
2683
+ if ("key" in preset) {
2684
+ const key = preset.key;
2685
+ const label2 = preset.label ?? t(`pactor.datePicker.${key}`);
2686
+ if (key === "today") return { label: label2, from: now, to: now };
2687
+ if (key === "thisWeek") {
2688
+ return {
2689
+ label: label2,
2690
+ from: (0, import_date_fns2.startOfWeek)(now, { locale: dfLocale }),
2691
+ to: (0, import_date_fns2.endOfWeek)(now, { locale: dfLocale })
2692
+ };
2693
+ }
2694
+ return { label: label2, from: (0, import_date_fns2.startOfMonth)(now), to: (0, import_date_fns2.endOfMonth)(now) };
2695
+ }
2696
+ if ("days" in preset) {
2697
+ return { label: preset.label, from: (0, import_date_fns2.subDays)(now, preset.days - 1), to: now };
2698
+ }
2699
+ return {
2700
+ label: preset.label,
2701
+ from: parseDate(preset.range.start) ?? now,
2702
+ to: parseDate(preset.range.end) ?? now
2703
+ };
2704
+ };
2705
+ const handlePresetClick = (preset, from, to) => {
2706
+ if ("key" in preset && preset.key === "today") {
2707
+ const today = (0, import_date_fns2.startOfDay)(/* @__PURE__ */ new Date());
2708
+ if (isRange) {
2709
+ setPendingStart(today);
2710
+ setPanelMonths(today, (0, import_date_fns2.addMonths)(today, 1));
2711
+ } else {
2712
+ commit((0, import_date_fns2.format)(today, "yyyy-MM-dd"));
2713
+ }
2714
+ return;
2715
+ }
2716
+ commitRange(from, to);
2717
+ };
2718
+ const singleDate = isRange ? void 0 : parseDate(current);
2719
+ const hasInnerRange = isRange && rangeStart !== void 0 && rangeEnd !== void 0 && (0, import_date_fns2.isBefore)((0, import_date_fns2.startOfDay)(rangeStart), (0, import_date_fns2.startOfDay)(rangeEnd));
2720
+ const rangeModifiers = isRange ? {
2721
+ ...rangeStart ? { rangeStart } : {},
2722
+ ...rangeEnd ? { rangeEnd } : {},
2723
+ ...hasInnerRange ? { inRange: { after: rangeStart, before: rangeEnd } } : {}
2724
+ } : void 0;
2725
+ const rangeModifierClassNames = rangeModifiers ? {
2726
+ ...rangeStart ? { rangeStart: RANGE_ENDPOINT_CLASSES } : {},
2727
+ ...rangeEnd ? { rangeEnd: RANGE_ENDPOINT_CLASSES } : {},
2728
+ ...hasInnerRange ? { inRange: IN_RANGE_CLASSES } : {}
2729
+ } : void 0;
2730
+ const displayText = isRange ? typeof current === "object" && current !== null ? `${current.start} ~ ${current.end}` : "" : typeof current === "string" ? current : "";
2731
+ const placeholderText = placeholder ?? t(isRange ? "pactor.datePicker.placeholderRange" : "pactor.datePicker.placeholder");
2732
+ const calendar = isRange ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex", children: [
2733
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2734
+ "div",
2735
+ {
2736
+ "data-slot": "datepicker-start-panel",
2737
+ className: "border-r border-border",
2738
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2739
+ Calendar,
2740
+ {
2741
+ mode: "single",
2742
+ month: startMonth,
2743
+ onMonthChange: handleStartMonthChange,
2744
+ onSelect: handleRangeDaySelect,
2745
+ modifiers: rangeModifiers,
2746
+ modifiersClassNames: rangeModifierClassNames,
2747
+ locale: dfLocale
2748
+ }
2749
+ )
2750
+ }
2751
+ ),
2752
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { "data-slot": "datepicker-end-panel", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2753
+ Calendar,
2754
+ {
2755
+ mode: "single",
2756
+ month: endMonth,
2757
+ onMonthChange: handleEndMonthChange,
2758
+ onSelect: handleRangeDaySelect,
2759
+ modifiers: rangeModifiers,
2760
+ modifiersClassNames: rangeModifierClassNames,
2761
+ locale: dfLocale
2762
+ }
2763
+ ) })
2764
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2765
+ Calendar,
2766
+ {
2767
+ mode: "single",
2768
+ selected: singleDate,
2769
+ onSelect: handleSingleSelect,
2770
+ locale: dfLocale
2771
+ }
2772
+ );
2773
+ const control = /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
2774
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2775
+ PopoverTrigger,
2776
+ {
2777
+ id: controlId,
2778
+ type: "button",
2779
+ disabled,
2780
+ "data-slot": "datepicker-trigger",
2781
+ className: cn(
2782
+ "flex h-9 w-full min-w-0 cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors outline-none hover:bg-accent focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",
2783
+ displayText === "" && "text-muted-foreground",
2784
+ !inForm && className
2785
+ ),
2786
+ style: inForm ? void 0 : style,
2787
+ children: [
2788
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: displayText === "" ? placeholderText : displayText }),
2789
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.Calendar, { className: "size-4 shrink-0 opacity-50" })
2790
+ ]
2791
+ }
2792
+ ),
2793
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(PopoverContent, { className: "w-auto p-0", children: presetList.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex", children: [
2794
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2795
+ "div",
2796
+ {
2797
+ "data-slot": "datepicker-presets",
2798
+ className: "flex flex-col gap-1 border-r border-border p-3",
2799
+ children: presetList.map((preset, index) => {
2800
+ const resolved = resolvePreset(preset);
2801
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2802
+ "button",
2803
+ {
2804
+ type: "button",
2805
+ className: "cursor-pointer rounded-md px-3 py-1.5 text-left text-sm whitespace-nowrap hover:bg-accent hover:text-accent-foreground",
2806
+ onClick: () => handlePresetClick(preset, resolved.from, resolved.to),
2807
+ children: resolved.label
2808
+ },
2809
+ `${resolved.label}-${index}`
2810
+ );
2811
+ })
2812
+ }
2813
+ ),
2814
+ calendar
2815
+ ] }) : calendar })
2816
+ ] });
2817
+ if (inForm && form && name) {
2818
+ const error = form.errors[name];
2819
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2820
+ "div",
2821
+ {
2822
+ "data-slot": "form-item",
2823
+ className: cn(formItemClass(form.layout), className),
2824
+ style,
2825
+ children: [
2826
+ label ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2827
+ "label",
2828
+ {
2829
+ htmlFor: controlId,
2830
+ className: "shrink-0 text-sm leading-none font-medium whitespace-nowrap",
2831
+ children: label
2832
+ }
2833
+ ) : null,
2834
+ control,
2835
+ error ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
2836
+ ]
2837
+ }
2838
+ );
2839
+ }
2840
+ return control;
2841
+ }
2842
+
2843
+ // src/components/components/Dialog/index.tsx
2844
+ var import_runtime8 = require("@pactor-app/runtime");
2845
+ var import_react12 = require("react");
2556
2846
 
2557
2847
  // src/ui/dialog.tsx
2558
2848
  var import_dialog = require("@base-ui/react/dialog");
2559
- var import_lucide_react13 = require("lucide-react");
2560
- var import_jsx_runtime46 = require("react/jsx-runtime");
2849
+ var import_lucide_react14 = require("lucide-react");
2850
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2561
2851
  function Dialog({
2562
2852
  ...props
2563
2853
  }) {
2564
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_dialog.Dialog.Root, { "data-slot": "dialog", ...props });
2854
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_dialog.Dialog.Root, { "data-slot": "dialog", ...props });
2565
2855
  }
2566
2856
  function DialogTrigger({
2567
2857
  ...props
2568
2858
  }) {
2569
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
2859
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
2570
2860
  }
2571
2861
  function DialogPortal({
2572
2862
  ...props
2573
2863
  }) {
2574
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_dialog.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
2864
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_dialog.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
2575
2865
  }
2576
2866
  function DialogOverlay({
2577
2867
  className,
2578
2868
  ...props
2579
2869
  }) {
2580
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2870
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2581
2871
  import_dialog.Dialog.Backdrop,
2582
2872
  {
2583
2873
  "data-slot": "dialog-overlay",
@@ -2595,9 +2885,9 @@ function DialogContent({
2595
2885
  showCloseButton = true,
2596
2886
  ...props
2597
2887
  }) {
2598
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
2599
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DialogOverlay, {}),
2600
- /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2888
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
2889
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(DialogOverlay, {}),
2890
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
2601
2891
  import_dialog.Dialog.Popup,
2602
2892
  {
2603
2893
  "data-slot": "dialog-content",
@@ -2608,11 +2898,11 @@ function DialogContent({
2608
2898
  ...props,
2609
2899
  children: [
2610
2900
  children,
2611
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2901
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
2612
2902
  import_dialog.Dialog.Close,
2613
2903
  {
2614
2904
  "data-slot": "dialog-close",
2615
- render: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2905
+ render: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2616
2906
  "button",
2617
2907
  {
2618
2908
  type: "button",
@@ -2620,8 +2910,8 @@ function DialogContent({
2620
2910
  }
2621
2911
  ),
2622
2912
  children: [
2623
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react13.XIcon, {}),
2624
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "sr-only", children: "Close" })
2913
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react14.XIcon, {}),
2914
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Close" })
2625
2915
  ]
2626
2916
  }
2627
2917
  )
@@ -2631,7 +2921,7 @@ function DialogContent({
2631
2921
  ] });
2632
2922
  }
2633
2923
  function DialogHeader({ className, ...props }) {
2634
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2924
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2635
2925
  "div",
2636
2926
  {
2637
2927
  "data-slot": "dialog-header",
@@ -2644,7 +2934,7 @@ function DialogTitle({
2644
2934
  className,
2645
2935
  ...props
2646
2936
  }) {
2647
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2937
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2648
2938
  import_dialog.Dialog.Title,
2649
2939
  {
2650
2940
  "data-slot": "dialog-title",
@@ -2657,7 +2947,7 @@ function DialogDescription({
2657
2947
  className,
2658
2948
  ...props
2659
2949
  }) {
2660
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2950
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2661
2951
  import_dialog.Dialog.Description,
2662
2952
  {
2663
2953
  "data-slot": "dialog-description",
@@ -2668,7 +2958,7 @@ function DialogDescription({
2668
2958
  }
2669
2959
 
2670
2960
  // src/components/components/Dialog/index.tsx
2671
- var import_jsx_runtime47 = require("react/jsx-runtime");
2961
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2672
2962
  function Dialog2({
2673
2963
  title,
2674
2964
  description,
@@ -2679,11 +2969,11 @@ function Dialog2({
2679
2969
  className,
2680
2970
  style
2681
2971
  }) {
2682
- const { renderChildren } = (0, import_runtime7.useRenderer)();
2683
- const [innerOpen, setInnerOpen] = (0, import_react11.useState)(false);
2972
+ const { renderChildren } = (0, import_runtime8.useRenderer)();
2973
+ const [innerOpen, setInnerOpen] = (0, import_react12.useState)(false);
2684
2974
  const controlled = open !== void 0;
2685
2975
  const visible = controlled ? open : innerOpen;
2686
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
2976
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
2687
2977
  Dialog,
2688
2978
  {
2689
2979
  open: visible,
@@ -2696,7 +2986,7 @@ function Dialog2({
2696
2986
  }
2697
2987
  },
2698
2988
  children: [
2699
- trigger ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2989
+ trigger ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
2700
2990
  DialogTrigger,
2701
2991
  {
2702
2992
  nativeButton: false,
@@ -2704,10 +2994,10 @@ function Dialog2({
2704
2994
  children: renderChildren([trigger])
2705
2995
  }
2706
2996
  ) : null,
2707
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(DialogContent, { className, style, children: [
2708
- title || description ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(DialogHeader, { children: [
2709
- title ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(DialogTitle, { children: title }) : null,
2710
- description ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(DialogDescription, { children: description }) : null
2997
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DialogContent, { className, style, children: [
2998
+ title || description ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DialogHeader, { children: [
2999
+ title ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DialogTitle, { children: title }) : null,
3000
+ description ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DialogDescription, { children: description }) : null
2711
3001
  ] }) : null,
2712
3002
  children
2713
3003
  ] })
@@ -2718,22 +3008,22 @@ function Dialog2({
2718
3008
 
2719
3009
  // src/ui/drawer.tsx
2720
3010
  var import_vaul = require("vaul");
2721
- var import_jsx_runtime48 = require("react/jsx-runtime");
3011
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2722
3012
  function Drawer({
2723
3013
  ...props
2724
3014
  }) {
2725
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
3015
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
2726
3016
  }
2727
3017
  function DrawerPortal({
2728
3018
  ...props
2729
3019
  }) {
2730
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
3020
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
2731
3021
  }
2732
3022
  function DrawerOverlay({
2733
3023
  className,
2734
3024
  ...props
2735
3025
  }) {
2736
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3026
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2737
3027
  import_vaul.Drawer.Overlay,
2738
3028
  {
2739
3029
  "data-slot": "drawer-overlay",
@@ -2747,9 +3037,9 @@ function DrawerContent({
2747
3037
  children,
2748
3038
  ...props
2749
3039
  }) {
2750
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
2751
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DrawerOverlay, {}),
2752
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
3040
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
3041
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerOverlay, {}),
3042
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
2753
3043
  import_vaul.Drawer.Content,
2754
3044
  {
2755
3045
  "data-slot": "drawer-content",
@@ -2763,7 +3053,7 @@ function DrawerContent({
2763
3053
  ),
2764
3054
  ...props,
2765
3055
  children: [
2766
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
3056
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
2767
3057
  children
2768
3058
  ]
2769
3059
  }
@@ -2771,7 +3061,7 @@ function DrawerContent({
2771
3061
  ] });
2772
3062
  }
2773
3063
  function DrawerHeader({ className, ...props }) {
2774
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3064
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2775
3065
  "div",
2776
3066
  {
2777
3067
  "data-slot": "drawer-header",
@@ -2784,7 +3074,7 @@ function DrawerTitle({
2784
3074
  className,
2785
3075
  ...props
2786
3076
  }) {
2787
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3077
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
2788
3078
  import_vaul.Drawer.Title,
2789
3079
  {
2790
3080
  "data-slot": "drawer-title",
@@ -2795,7 +3085,7 @@ function DrawerTitle({
2795
3085
  }
2796
3086
 
2797
3087
  // src/components/components/Drawer/index.tsx
2798
- var import_jsx_runtime49 = require("react/jsx-runtime");
3088
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2799
3089
  function Drawer2({
2800
3090
  title,
2801
3091
  open,
@@ -2805,7 +3095,7 @@ function Drawer2({
2805
3095
  className,
2806
3096
  style
2807
3097
  }) {
2808
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3098
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
2809
3099
  Drawer,
2810
3100
  {
2811
3101
  direction: placement,
@@ -2815,9 +3105,9 @@ function Drawer2({
2815
3105
  onClose?.();
2816
3106
  }
2817
3107
  },
2818
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DrawerContent, { className, style, children: [
2819
- title ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTitle, { children: title }) }) : null,
2820
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 overflow-auto p-4", children })
3108
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(DrawerContent, { className, style, children: [
3109
+ title ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(DrawerTitle, { children: title }) }) : null,
3110
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex-1 overflow-auto p-4", children })
2821
3111
  ] })
2822
3112
  }
2823
3113
  );
@@ -2825,17 +3115,17 @@ function Drawer2({
2825
3115
 
2826
3116
  // src/ui/dropdown-menu.tsx
2827
3117
  var import_menu = require("@base-ui/react/menu");
2828
- var import_lucide_react14 = require("lucide-react");
2829
- var import_jsx_runtime50 = require("react/jsx-runtime");
3118
+ var import_lucide_react15 = require("lucide-react");
3119
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2830
3120
  function DropdownMenu({
2831
3121
  ...props
2832
3122
  }) {
2833
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
3123
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
2834
3124
  }
2835
3125
  function DropdownMenuTrigger({
2836
3126
  ...props
2837
3127
  }) {
2838
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
3128
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
2839
3129
  }
2840
3130
  function DropdownMenuContent({
2841
3131
  className,
@@ -2844,14 +3134,14 @@ function DropdownMenuContent({
2844
3134
  sideOffset = 4,
2845
3135
  ...props
2846
3136
  }) {
2847
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3137
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2848
3138
  import_menu.Menu.Positioner,
2849
3139
  {
2850
3140
  align,
2851
3141
  side,
2852
3142
  sideOffset,
2853
3143
  className: "isolate z-50",
2854
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3144
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2855
3145
  import_menu.Menu.Popup,
2856
3146
  {
2857
3147
  "data-slot": "dropdown-menu-content",
@@ -2870,7 +3160,7 @@ function DropdownMenuItem({
2870
3160
  variant = "default",
2871
3161
  ...props
2872
3162
  }) {
2873
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3163
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2874
3164
  import_menu.Menu.Item,
2875
3165
  {
2876
3166
  "data-slot": "dropdown-menu-item",
@@ -2886,14 +3176,14 @@ function DropdownMenuItem({
2886
3176
  function DropdownMenuSub({
2887
3177
  ...props
2888
3178
  }) {
2889
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
3179
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
2890
3180
  }
2891
3181
  function DropdownMenuSubTrigger({
2892
3182
  className,
2893
3183
  children,
2894
3184
  ...props
2895
3185
  }) {
2896
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
3186
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
2897
3187
  import_menu.Menu.SubmenuTrigger,
2898
3188
  {
2899
3189
  "data-slot": "dropdown-menu-sub-trigger",
@@ -2904,7 +3194,7 @@ function DropdownMenuSubTrigger({
2904
3194
  ...props,
2905
3195
  children: [
2906
3196
  children,
2907
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react14.ChevronRightIcon, { className: "ml-auto" })
3197
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react15.ChevronRightIcon, { className: "ml-auto" })
2908
3198
  ]
2909
3199
  }
2910
3200
  );
@@ -2914,7 +3204,7 @@ function DropdownMenuSubContent({
2914
3204
  sideOffset = 2,
2915
3205
  ...props
2916
3206
  }) {
2917
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3207
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2918
3208
  import_menu.Menu.Popup,
2919
3209
  {
2920
3210
  "data-slot": "dropdown-menu-sub-content",
@@ -2928,7 +3218,7 @@ function DropdownMenuSubContent({
2928
3218
  }
2929
3219
 
2930
3220
  // src/components/components/DropdownMenu/index.tsx
2931
- var import_jsx_runtime51 = require("react/jsx-runtime");
3221
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2932
3222
  function DropdownMenu2({
2933
3223
  items = [],
2934
3224
  onSelect,
@@ -2936,8 +3226,8 @@ function DropdownMenu2({
2936
3226
  className,
2937
3227
  style
2938
3228
  }) {
2939
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(DropdownMenu, { children: [
2940
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3229
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(DropdownMenu, { children: [
3230
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2941
3231
  DropdownMenuTrigger,
2942
3232
  {
2943
3233
  nativeButton: false,
@@ -2945,14 +3235,14 @@ function DropdownMenu2({
2945
3235
  children
2946
3236
  }
2947
3237
  ),
2948
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DropdownMenuContent, { className, style, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
3238
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuContent, { className, style, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2949
3239
  DropdownMenuItem,
2950
3240
  {
2951
3241
  variant: item.danger ? "destructive" : "default",
2952
3242
  disabled: item.disabled,
2953
3243
  onClick: () => onSelect?.(item.value),
2954
3244
  children: [
2955
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3245
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
2956
3246
  item.label
2957
3247
  ]
2958
3248
  },
@@ -2962,9 +3252,9 @@ function DropdownMenu2({
2962
3252
  }
2963
3253
 
2964
3254
  // src/ui/empty.tsx
2965
- var import_jsx_runtime52 = require("react/jsx-runtime");
3255
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2966
3256
  function Empty({ className, ...props }) {
2967
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3257
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2968
3258
  "div",
2969
3259
  {
2970
3260
  "data-slot": "empty",
@@ -2977,7 +3267,7 @@ function Empty({ className, ...props }) {
2977
3267
  );
2978
3268
  }
2979
3269
  function EmptyHeader({ className, ...props }) {
2980
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3270
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2981
3271
  "div",
2982
3272
  {
2983
3273
  "data-slot": "empty-header",
@@ -2987,7 +3277,7 @@ function EmptyHeader({ className, ...props }) {
2987
3277
  );
2988
3278
  }
2989
3279
  function EmptyTitle({ className, ...props }) {
2990
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3280
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2991
3281
  "div",
2992
3282
  {
2993
3283
  "data-slot": "empty-title",
@@ -2997,7 +3287,7 @@ function EmptyTitle({ className, ...props }) {
2997
3287
  );
2998
3288
  }
2999
3289
  function EmptyDescription({ className, ...props }) {
3000
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3290
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3001
3291
  "p",
3002
3292
  {
3003
3293
  "data-slot": "empty-description",
@@ -3007,7 +3297,7 @@ function EmptyDescription({ className, ...props }) {
3007
3297
  );
3008
3298
  }
3009
3299
  function EmptyContent({ className, ...props }) {
3010
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3300
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3011
3301
  "div",
3012
3302
  {
3013
3303
  "data-slot": "empty-content",
@@ -3021,22 +3311,22 @@ function EmptyContent({ className, ...props }) {
3021
3311
  }
3022
3312
 
3023
3313
  // src/components/components/Empty/index.tsx
3024
- var import_jsx_runtime53 = require("react/jsx-runtime");
3314
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3025
3315
  function Empty2({ title, description, children, className, style }) {
3026
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Empty, { className, style, children: [
3027
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(EmptyHeader, { children: [
3028
- title ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(EmptyTitle, { children: title }) : null,
3029
- description ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(EmptyDescription, { children: description }) : null
3316
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Empty, { className, style, children: [
3317
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(EmptyHeader, { children: [
3318
+ title ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(EmptyTitle, { children: title }) : null,
3319
+ description ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(EmptyDescription, { children: description }) : null
3030
3320
  ] }),
3031
- children ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(EmptyContent, { children }) : null
3321
+ children ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(EmptyContent, { children }) : null
3032
3322
  ] });
3033
3323
  }
3034
3324
 
3035
3325
  // src/ui/field.tsx
3036
3326
  var import_field = require("@base-ui/react/field");
3037
- var import_jsx_runtime54 = require("react/jsx-runtime");
3327
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3038
3328
  function Field({ className, ...props }) {
3039
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3329
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3040
3330
  import_field.Field.Root,
3041
3331
  {
3042
3332
  "data-slot": "field",
@@ -3046,7 +3336,7 @@ function Field({ className, ...props }) {
3046
3336
  );
3047
3337
  }
3048
3338
  function FieldLabel({ className, ...props }) {
3049
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3339
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3050
3340
  import_field.Field.Label,
3051
3341
  {
3052
3342
  "data-slot": "field-label",
@@ -3056,7 +3346,7 @@ function FieldLabel({ className, ...props }) {
3056
3346
  );
3057
3347
  }
3058
3348
  function FieldDescription({ className, ...props }) {
3059
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3349
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3060
3350
  import_field.Field.Description,
3061
3351
  {
3062
3352
  "data-slot": "field-description",
@@ -3066,7 +3356,7 @@ function FieldDescription({ className, ...props }) {
3066
3356
  );
3067
3357
  }
3068
3358
  function FieldError({ className, ...props }) {
3069
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3359
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3070
3360
  import_field.Field.Error,
3071
3361
  {
3072
3362
  "data-slot": "field-error",
@@ -3077,18 +3367,18 @@ function FieldError({ className, ...props }) {
3077
3367
  }
3078
3368
 
3079
3369
  // src/components/components/Field/index.tsx
3080
- var import_jsx_runtime55 = require("react/jsx-runtime");
3370
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3081
3371
  function Field2({ label, description, error, children, className, style }) {
3082
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Field, { className, style, children: [
3083
- label ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(FieldLabel, { children: label }) : null,
3372
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Field, { className, style, children: [
3373
+ label ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FieldLabel, { children: label }) : null,
3084
3374
  children,
3085
- description ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(FieldDescription, { children: description }) : null,
3086
- error ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(FieldError, { match: true, children: error }) : null
3375
+ description ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FieldDescription, { children: description }) : null,
3376
+ error ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FieldError, { match: true, children: error }) : null
3087
3377
  ] });
3088
3378
  }
3089
3379
 
3090
3380
  // src/components/components/Flex/index.tsx
3091
- var import_jsx_runtime56 = require("react/jsx-runtime");
3381
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3092
3382
  var gapClass = {
3093
3383
  small: "gap-(--flex-gap-sm)",
3094
3384
  middle: "gap-(--flex-gap-md)",
@@ -3118,7 +3408,7 @@ function Flex({
3118
3408
  style,
3119
3409
  children
3120
3410
  }) {
3121
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3411
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3122
3412
  "div",
3123
3413
  {
3124
3414
  "data-slot": "flex",
@@ -3138,9 +3428,9 @@ function Flex({
3138
3428
  }
3139
3429
 
3140
3430
  // src/components/components/Footer/index.tsx
3141
- var import_jsx_runtime57 = require("react/jsx-runtime");
3431
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3142
3432
  function Footer({ className, style, children }) {
3143
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3433
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3144
3434
  "footer",
3145
3435
  {
3146
3436
  "data-slot": "layout-footer",
@@ -3155,9 +3445,9 @@ function Footer({ className, style, children }) {
3155
3445
  }
3156
3446
 
3157
3447
  // src/components/components/Form/index.tsx
3158
- var import_runtime8 = require("@pactor-app/runtime");
3159
- var import_react12 = require("react");
3160
- var import_jsx_runtime58 = require("react/jsx-runtime");
3448
+ var import_runtime9 = require("@pactor-app/runtime");
3449
+ var import_react13 = require("react");
3450
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3161
3451
  function isEmpty(value) {
3162
3452
  return value === void 0 || value === null || value === "";
3163
3453
  }
@@ -3171,23 +3461,23 @@ function Form({
3171
3461
  onSubmit,
3172
3462
  onValuesChange
3173
3463
  }) {
3174
- const { context } = (0, import_runtime8.useRenderer)();
3175
- const [values, setValues] = (0, import_react12.useState)(() => ({
3464
+ const { context } = (0, import_runtime9.useRenderer)();
3465
+ const [values, setValues] = (0, import_react13.useState)(() => ({
3176
3466
  ...initialValues
3177
3467
  }));
3178
- const [errors, setErrors] = (0, import_react12.useState)({});
3179
- const fieldRulesRef = (0, import_react12.useRef)(/* @__PURE__ */ new Map());
3180
- const mergedInitialFieldsRef = (0, import_react12.useRef)(/* @__PURE__ */ new Set());
3181
- const setValuesBatch = (0, import_react12.useCallback)((partial) => {
3468
+ const [errors, setErrors] = (0, import_react13.useState)({});
3469
+ const fieldRulesRef = (0, import_react13.useRef)(/* @__PURE__ */ new Map());
3470
+ const mergedInitialFieldsRef = (0, import_react13.useRef)(/* @__PURE__ */ new Set());
3471
+ const setValuesBatch = (0, import_react13.useCallback)((partial) => {
3182
3472
  setValues((prev) => ({ ...prev, ...partial }));
3183
3473
  }, []);
3184
- (0, import_react12.useEffect)(() => {
3474
+ (0, import_react13.useEffect)(() => {
3185
3475
  context.forms.register(name, { setValues: setValuesBatch });
3186
3476
  return () => {
3187
3477
  context.forms.unregister(name);
3188
3478
  };
3189
3479
  }, [context, name, setValuesBatch]);
3190
- const formContext = (0, import_react12.useMemo)(
3480
+ const formContext = (0, import_react13.useMemo)(
3191
3481
  () => ({
3192
3482
  inForm: true,
3193
3483
  layout,
@@ -3238,7 +3528,7 @@ function Form({
3238
3528
  context.state.set("form", values);
3239
3529
  onSubmit?.(values);
3240
3530
  };
3241
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FormContextProvider, { value: formContext, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3531
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(FormContextProvider, { value: formContext, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3242
3532
  "form",
3243
3533
  {
3244
3534
  "data-slot": "form",
@@ -3251,11 +3541,11 @@ function Form({
3251
3541
  }
3252
3542
 
3253
3543
  // src/components/components/Grid/index.tsx
3254
- var import_react13 = require("react");
3255
- var import_jsx_runtime59 = require("react/jsx-runtime");
3544
+ var import_react14 = require("react");
3545
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3256
3546
  function Grid({ columns = 1, gap, className, style, children }) {
3257
3547
  const cols = Math.max(1, columns);
3258
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3548
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3259
3549
  "div",
3260
3550
  {
3261
3551
  "data-slot": "grid",
@@ -3266,15 +3556,15 @@ function Grid({ columns = 1, gap, className, style, children }) {
3266
3556
  ...gap !== void 0 ? { gap } : {},
3267
3557
  ...style
3268
3558
  },
3269
- children: import_react13.Children.map(children, (child, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { "data-slot": "grid-item", children: child }, index))
3559
+ children: import_react14.Children.map(children, (child, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { "data-slot": "grid-item", children: child }, index))
3270
3560
  }
3271
3561
  );
3272
3562
  }
3273
3563
 
3274
3564
  // src/components/components/Header/index.tsx
3275
- var import_runtime9 = require("@pactor-app/runtime");
3276
- var import_lucide_react15 = require("lucide-react");
3277
- var import_jsx_runtime60 = require("react/jsx-runtime");
3565
+ var import_runtime10 = require("@pactor-app/runtime");
3566
+ var import_lucide_react16 = require("lucide-react");
3567
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3278
3568
  var menuItemClass = "flex items-center gap-1 rounded-md px-3 py-2 text-sm transition-colors text-muted-foreground hover:bg-accent/50 hover:text-foreground";
3279
3569
  function Header({
3280
3570
  logo,
@@ -3305,10 +3595,10 @@ function Header({
3305
3595
  className
3306
3596
  );
3307
3597
  if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales) {
3308
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("header", { "data-slot": "layout-header", className: rootClass, style, children });
3598
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("header", { "data-slot": "layout-header", className: rootClass, style, children });
3309
3599
  }
3310
- const brandNode = hasBrand && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { "data-slot": "header-brand", className: "flex items-center gap-2", children: [
3311
- logo !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3600
+ const brandNode = hasBrand && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { "data-slot": "header-brand", className: "flex items-center gap-2", children: [
3601
+ logo !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3312
3602
  "img",
3313
3603
  {
3314
3604
  "data-slot": "header-brand-logo",
@@ -3317,23 +3607,23 @@ function Header({
3317
3607
  className: "h-8 w-8 shrink-0 object-contain"
3318
3608
  }
3319
3609
  ),
3320
- title !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { "data-slot": "header-brand-title", className: "text-base font-semibold", children: title })
3610
+ title !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { "data-slot": "header-brand-title", className: "text-base font-semibold", children: title })
3321
3611
  ] });
3322
- const dropdownNode = dropdown !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderDropdownArea, { dropdown, onSelect: onDropdownSelect });
3612
+ const dropdownNode = dropdown !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderDropdownArea, { dropdown, onSelect: onDropdownSelect });
3323
3613
  const showLeft = brandLeft || dropdownLeft || hasMenu;
3324
3614
  const showRight = dropdownRight || brandRight || hasLocales || hasUser;
3325
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("header", { "data-slot": "layout-header", className: rootClass, style, children: [
3326
- showLeft && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { "data-slot": "header-left", className: "flex items-center gap-4", children: [
3615
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("header", { "data-slot": "layout-header", className: rootClass, style, children: [
3616
+ showLeft && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { "data-slot": "header-left", className: "flex items-center gap-4", children: [
3327
3617
  brandLeft && brandNode,
3328
3618
  dropdownLeft && dropdownNode,
3329
- hasMenu && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderMenuArea, { items: menu, onSelect: onMenuSelect })
3619
+ hasMenu && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderMenuArea, { items: menu, onSelect: onMenuSelect })
3330
3620
  ] }),
3331
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { "data-slot": "header-center", className: "flex flex-1 items-center gap-4", children }),
3332
- showRight && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { "data-slot": "header-right", className: "flex items-center gap-4", children: [
3621
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { "data-slot": "header-center", className: "flex flex-1 items-center gap-4", children }),
3622
+ showRight && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { "data-slot": "header-right", className: "flex items-center gap-4", children: [
3333
3623
  dropdownRight && dropdownNode,
3334
3624
  brandRight && brandNode,
3335
- hasLocales && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderLocalesArea, { locales, onSelect: onLocaleChange }),
3336
- hasUser && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderUserArea, { user, onSelect: onUserSelect })
3625
+ hasLocales && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderLocalesArea, { locales, onSelect: onLocaleChange }),
3626
+ hasUser && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderUserArea, { user, onSelect: onUserSelect })
3337
3627
  ] })
3338
3628
  ] });
3339
3629
  }
@@ -3341,25 +3631,25 @@ function HeaderDropdownArea({
3341
3631
  dropdown,
3342
3632
  onSelect
3343
3633
  }) {
3344
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenu, { children: [
3345
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
3634
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenu, { children: [
3635
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
3346
3636
  DropdownMenuTrigger,
3347
3637
  {
3348
3638
  "data-slot": "header-dropdown",
3349
3639
  className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3350
3640
  children: [
3351
3641
  dropdown.label,
3352
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3642
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react16.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3353
3643
  ]
3354
3644
  }
3355
3645
  ),
3356
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(DropdownMenuContent, { children: dropdown.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
3646
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuContent, { children: dropdown.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
3357
3647
  DropdownMenuItem,
3358
3648
  {
3359
3649
  disabled: item.disabled,
3360
3650
  onClick: () => onSelect?.(item.value),
3361
3651
  children: [
3362
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3652
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3363
3653
  item.label
3364
3654
  ]
3365
3655
  },
@@ -3371,23 +3661,23 @@ function HeaderMenuArea({
3371
3661
  items,
3372
3662
  onSelect
3373
3663
  }) {
3374
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("nav", { "data-slot": "header-menu", className: "flex items-center gap-1", children: items.map(
3375
- (item) => item.children !== void 0 && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenu, { children: [
3376
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
3664
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("nav", { "data-slot": "header-menu", className: "flex items-center gap-1", children: items.map(
3665
+ (item) => item.children !== void 0 && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenu, { children: [
3666
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
3377
3667
  DropdownMenuTrigger,
3378
3668
  {
3379
3669
  "data-slot": "header-menu-item",
3380
3670
  "data-key": item.key,
3381
3671
  className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3382
3672
  children: [
3383
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3673
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3384
3674
  item.label,
3385
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3675
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react16.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3386
3676
  ]
3387
3677
  }
3388
3678
  ),
3389
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(DropdownMenuContent, { children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderMenuEntry, { item: child, onSelect }, child.key)) })
3390
- ] }, item.key) : /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
3679
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuContent, { children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderMenuEntry, { item: child, onSelect }, child.key)) })
3680
+ ] }, item.key) : /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
3391
3681
  "button",
3392
3682
  {
3393
3683
  type: "button",
@@ -3396,7 +3686,7 @@ function HeaderMenuArea({
3396
3686
  className: menuItemClass,
3397
3687
  onClick: () => onSelect?.(item.key),
3398
3688
  children: [
3399
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3689
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3400
3690
  item.label
3401
3691
  ]
3402
3692
  },
@@ -3409,16 +3699,16 @@ function HeaderMenuEntry({
3409
3699
  onSelect
3410
3700
  }) {
3411
3701
  if (item.children !== void 0 && item.children.length > 0) {
3412
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSub, { children: [
3413
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, className: "cursor-pointer", children: [
3414
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3702
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenuSub, { children: [
3703
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, className: "cursor-pointer", children: [
3704
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3415
3705
  item.label
3416
3706
  ] }),
3417
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(DropdownMenuSubContent, { children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(HeaderMenuEntry, { item: child, onSelect }, child.key)) })
3707
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuSubContent, { children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(HeaderMenuEntry, { item: child, onSelect }, child.key)) })
3418
3708
  ] });
3419
3709
  }
3420
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuItem, { "data-key": item.key, onClick: () => onSelect?.(item.key), children: [
3421
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3710
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenuItem, { "data-key": item.key, onClick: () => onSelect?.(item.key), children: [
3711
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3422
3712
  item.label
3423
3713
  ] });
3424
3714
  }
@@ -3426,18 +3716,18 @@ function HeaderUserArea({
3426
3716
  user,
3427
3717
  onSelect
3428
3718
  }) {
3429
- const identity = /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
3430
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(Avatar, { className: "size-7", children: [
3431
- user.avatar !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(AvatarImage, { src: user.avatar, alt: user.name }),
3432
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(AvatarFallback, { children: user.name.charAt(0) })
3719
+ const identity = /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
3720
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Avatar, { className: "size-7", children: [
3721
+ user.avatar !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AvatarImage, { src: user.avatar, alt: user.name }),
3722
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(AvatarFallback, { children: user.name.charAt(0) })
3433
3723
  ] }),
3434
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-sm", children: user.name })
3724
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-sm", children: user.name })
3435
3725
  ] });
3436
3726
  if (user.items === void 0 || user.items.length === 0) {
3437
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { "data-slot": "header-user", className: "flex items-center gap-2", children: identity });
3727
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { "data-slot": "header-user", className: "flex items-center gap-2", children: identity });
3438
3728
  }
3439
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenu, { children: [
3440
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3729
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenu, { children: [
3730
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3441
3731
  DropdownMenuTrigger,
3442
3732
  {
3443
3733
  "data-slot": "header-user",
@@ -3445,8 +3735,8 @@ function HeaderUserArea({
3445
3735
  children: identity
3446
3736
  }
3447
3737
  ),
3448
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(DropdownMenuContent, { align: "end", children: user.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuItem, { onClick: () => onSelect?.(item.value), children: [
3449
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3738
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuContent, { align: "end", children: user.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenuItem, { onClick: () => onSelect?.(item.value), children: [
3739
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
3450
3740
  item.label
3451
3741
  ] }, item.value)) })
3452
3742
  ] });
@@ -3455,21 +3745,21 @@ function HeaderLocalesArea({
3455
3745
  locales,
3456
3746
  onSelect
3457
3747
  }) {
3458
- const { locale } = (0, import_runtime9.useI18n)();
3748
+ const { locale } = (0, import_runtime10.useI18n)();
3459
3749
  const current = locales.find((option) => option.value === locale);
3460
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenu, { children: [
3461
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
3750
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenu, { children: [
3751
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
3462
3752
  DropdownMenuTrigger,
3463
3753
  {
3464
3754
  "data-slot": "header-locales",
3465
3755
  className: cn(menuItemClass, "outline-hidden cursor-pointer"),
3466
3756
  children: [
3467
3757
  current?.label ?? locale,
3468
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3758
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react16.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
3469
3759
  ]
3470
3760
  }
3471
3761
  ),
3472
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(DropdownMenuContent, { align: "end", children: locales.map((option) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3762
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuContent, { align: "end", children: locales.map((option) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3473
3763
  DropdownMenuItem,
3474
3764
  {
3475
3765
  onClick: () => onSelect?.(option.value),
@@ -3481,20 +3771,20 @@ function HeaderLocalesArea({
3481
3771
  }
3482
3772
 
3483
3773
  // src/components/components/HoverCard/index.tsx
3484
- var import_runtime10 = require("@pactor-app/runtime");
3774
+ var import_runtime11 = require("@pactor-app/runtime");
3485
3775
 
3486
3776
  // src/ui/hover-card.tsx
3487
3777
  var import_preview_card = require("@base-ui/react/preview-card");
3488
- var import_jsx_runtime61 = require("react/jsx-runtime");
3778
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3489
3779
  function HoverCard({
3490
3780
  ...props
3491
3781
  }) {
3492
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
3782
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
3493
3783
  }
3494
3784
  function HoverCardTrigger({
3495
3785
  ...props
3496
3786
  }) {
3497
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
3787
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
3498
3788
  }
3499
3789
  function HoverCardContent({
3500
3790
  className,
@@ -3503,14 +3793,14 @@ function HoverCardContent({
3503
3793
  sideOffset = 4,
3504
3794
  ...props
3505
3795
  }) {
3506
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3796
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3507
3797
  import_preview_card.PreviewCard.Positioner,
3508
3798
  {
3509
3799
  align,
3510
3800
  side,
3511
3801
  sideOffset,
3512
3802
  className: "isolate z-50",
3513
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3803
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3514
3804
  import_preview_card.PreviewCard.Popup,
3515
3805
  {
3516
3806
  "data-slot": "hover-card-content",
@@ -3526,21 +3816,21 @@ function HoverCardContent({
3526
3816
  }
3527
3817
 
3528
3818
  // src/components/components/HoverCard/index.tsx
3529
- var import_jsx_runtime62 = require("react/jsx-runtime");
3819
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3530
3820
  function isDslNode2(value) {
3531
3821
  return typeof value === "object" && value !== null && typeof value.type === "string";
3532
3822
  }
3533
3823
  function HoverCard2({ content, children, className, style }) {
3534
- const { renderChildren } = (0, import_runtime10.useRenderer)();
3535
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(HoverCard, { children: [
3536
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HoverCardTrigger, { render: triggerWrapper("hover-card-trigger-wrap"), children }),
3537
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HoverCardContent, { className, style, children: isDslNode2(content) ? renderChildren([content]) : content })
3824
+ const { renderChildren } = (0, import_runtime11.useRenderer)();
3825
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(HoverCard, { children: [
3826
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(HoverCardTrigger, { render: triggerWrapper("hover-card-trigger-wrap"), children }),
3827
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(HoverCardContent, { className, style, children: isDslNode2(content) ? renderChildren([content]) : content })
3538
3828
  ] });
3539
3829
  }
3540
3830
 
3541
3831
  // src/components/components/Input/index.tsx
3542
- var import_react14 = require("react");
3543
- var import_jsx_runtime63 = require("react/jsx-runtime");
3832
+ var import_react15 = require("react");
3833
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3544
3834
  function Input2({
3545
3835
  name,
3546
3836
  label,
@@ -3554,9 +3844,9 @@ function Input2({
3554
3844
  style
3555
3845
  }) {
3556
3846
  const form = useFormContext();
3557
- const controlId = (0, import_react14.useId)();
3847
+ const controlId = (0, import_react15.useId)();
3558
3848
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
3559
- (0, import_react14.useEffect)(() => {
3849
+ (0, import_react15.useEffect)(() => {
3560
3850
  if (inForm && form && name) {
3561
3851
  form.registerField(name, rules, value);
3562
3852
  return () => form.unregisterField(name);
@@ -3566,14 +3856,14 @@ function Input2({
3566
3856
  if (inForm && form && name) {
3567
3857
  const fieldValue = form.values[name];
3568
3858
  const error = form.errors[name];
3569
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
3859
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3570
3860
  "div",
3571
3861
  {
3572
3862
  "data-slot": "form-item",
3573
3863
  className: cn(formItemClass(form.layout), className),
3574
3864
  style,
3575
3865
  children: [
3576
- label ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3866
+ label ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3577
3867
  "label",
3578
3868
  {
3579
3869
  htmlFor: controlId,
@@ -3581,7 +3871,7 @@ function Input2({
3581
3871
  children: label
3582
3872
  }
3583
3873
  ) : null,
3584
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3874
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3585
3875
  Input,
3586
3876
  {
3587
3877
  id: controlId,
@@ -3595,12 +3885,12 @@ function Input2({
3595
3885
  }
3596
3886
  }
3597
3887
  ),
3598
- error ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
3888
+ error ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
3599
3889
  ]
3600
3890
  }
3601
3891
  );
3602
3892
  }
3603
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3893
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3604
3894
  Input,
3605
3895
  {
3606
3896
  type,
@@ -3615,9 +3905,9 @@ function Input2({
3615
3905
  }
3616
3906
 
3617
3907
  // src/ui/input-group.tsx
3618
- var import_jsx_runtime64 = require("react/jsx-runtime");
3908
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3619
3909
  function InputGroup({ className, ...props }) {
3620
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3910
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3621
3911
  "div",
3622
3912
  {
3623
3913
  "data-slot": "input-group",
@@ -3636,25 +3926,25 @@ function InputGroup({ className, ...props }) {
3636
3926
  }
3637
3927
 
3638
3928
  // src/components/components/InputGroup/index.tsx
3639
- var import_jsx_runtime65 = require("react/jsx-runtime");
3929
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3640
3930
  function InputGroup2({ className, style, children }) {
3641
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(InputGroup, { className, style, children });
3931
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(InputGroup, { className, style, children });
3642
3932
  }
3643
3933
 
3644
3934
  // src/components/components/InputOTP/index.tsx
3645
- var import_react15 = require("react");
3935
+ var import_react16 = require("react");
3646
3936
 
3647
3937
  // src/ui/input-otp.tsx
3648
3938
  var import_input_otp = require("input-otp");
3649
- var import_lucide_react16 = require("lucide-react");
3939
+ var import_lucide_react17 = require("lucide-react");
3650
3940
  var React3 = __toESM(require("react"), 1);
3651
- var import_jsx_runtime66 = require("react/jsx-runtime");
3941
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3652
3942
  function InputOTP({
3653
3943
  className,
3654
3944
  containerClassName,
3655
3945
  ...props
3656
3946
  }) {
3657
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3947
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3658
3948
  import_input_otp.OTPInput,
3659
3949
  {
3660
3950
  "data-slot": "input-otp",
@@ -3668,7 +3958,7 @@ function InputOTP({
3668
3958
  );
3669
3959
  }
3670
3960
  function InputOTPGroup({ className, ...props }) {
3671
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3961
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3672
3962
  "div",
3673
3963
  {
3674
3964
  "data-slot": "input-otp-group",
@@ -3684,7 +3974,7 @@ function InputOTPSlot({
3684
3974
  }) {
3685
3975
  const inputOTPContext = React3.useContext(import_input_otp.OTPInputContext);
3686
3976
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
3687
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3977
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
3688
3978
  "div",
3689
3979
  {
3690
3980
  "data-slot": "input-otp-slot",
@@ -3696,14 +3986,14 @@ function InputOTPSlot({
3696
3986
  ...props,
3697
3987
  children: [
3698
3988
  char,
3699
- hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
3989
+ hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
3700
3990
  ]
3701
3991
  }
3702
3992
  );
3703
3993
  }
3704
3994
 
3705
3995
  // src/components/components/InputOTP/index.tsx
3706
- var import_jsx_runtime67 = require("react/jsx-runtime");
3996
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3707
3997
  function InputOTP2({
3708
3998
  name,
3709
3999
  label,
@@ -3718,15 +4008,15 @@ function InputOTP2({
3718
4008
  }) {
3719
4009
  const form = useFormContext();
3720
4010
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
3721
- (0, import_react15.useEffect)(() => {
4011
+ (0, import_react16.useEffect)(() => {
3722
4012
  if (inForm && form && name) {
3723
4013
  form.registerField(name, rules, value);
3724
4014
  return () => form.unregisterField(name);
3725
4015
  }
3726
4016
  return void 0;
3727
4017
  });
3728
- const [innerValue, setInnerValue] = (0, import_react15.useState)(typeof value === "string" ? value : "");
3729
- (0, import_react15.useEffect)(() => {
4018
+ const [innerValue, setInnerValue] = (0, import_react16.useState)(typeof value === "string" ? value : "");
4019
+ (0, import_react16.useEffect)(() => {
3730
4020
  if (!inForm) setInnerValue(typeof value === "string" ? value : "");
3731
4021
  }, [inForm, value]);
3732
4022
  const current = inForm && form && name ? typeof form.values[name] === "string" ? form.values[name] : "" : innerValue;
@@ -3741,42 +4031,42 @@ function InputOTP2({
3741
4031
  onComplete?.(next);
3742
4032
  }
3743
4033
  };
3744
- const control = /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4034
+ const control = /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3745
4035
  InputOTP,
3746
4036
  {
3747
4037
  maxLength: length,
3748
4038
  value: current,
3749
4039
  onChange: handleChange,
3750
4040
  disabled,
3751
- children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(InputOTPGroup, { children: Array.from({ length }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(InputOTPSlot, { index }, index)) })
4041
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputOTPGroup, { children: Array.from({ length }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(InputOTPSlot, { index }, index)) })
3752
4042
  }
3753
4043
  );
3754
4044
  if (inForm && form && name) {
3755
4045
  const error = form.errors[name];
3756
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
4046
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
3757
4047
  "div",
3758
4048
  {
3759
4049
  "data-slot": "form-item",
3760
4050
  className: cn(formItemClass(form.layout), className),
3761
4051
  style,
3762
4052
  children: [
3763
- label ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("label", { className: "shrink-0 text-sm leading-none font-medium whitespace-nowrap", children: label }) : null,
4053
+ label ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("label", { className: "shrink-0 text-sm leading-none font-medium whitespace-nowrap", children: label }) : null,
3764
4054
  control,
3765
- error ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
4055
+ error ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
3766
4056
  ]
3767
4057
  }
3768
4058
  );
3769
4059
  }
3770
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { "data-slot": "input-otp-field", className: cn("inline-block", className), style, children: control });
4060
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { "data-slot": "input-otp-field", className: cn("inline-block", className), style, children: control });
3771
4061
  }
3772
4062
 
3773
4063
  // src/components/components/Item/index.tsx
3774
- var import_runtime11 = require("@pactor-app/runtime");
4064
+ var import_runtime12 = require("@pactor-app/runtime");
3775
4065
 
3776
4066
  // src/ui/item.tsx
3777
- var import_jsx_runtime68 = require("react/jsx-runtime");
4067
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3778
4068
  function Item({ className, ...props }) {
3779
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4069
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3780
4070
  "div",
3781
4071
  {
3782
4072
  "data-slot": "item",
@@ -3789,7 +4079,7 @@ function Item({ className, ...props }) {
3789
4079
  );
3790
4080
  }
3791
4081
  function ItemMedia({ className, ...props }) {
3792
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4082
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3793
4083
  "div",
3794
4084
  {
3795
4085
  "data-slot": "item-media",
@@ -3802,7 +4092,7 @@ function ItemMedia({ className, ...props }) {
3802
4092
  );
3803
4093
  }
3804
4094
  function ItemContent({ className, ...props }) {
3805
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4095
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3806
4096
  "div",
3807
4097
  {
3808
4098
  "data-slot": "item-content",
@@ -3812,7 +4102,7 @@ function ItemContent({ className, ...props }) {
3812
4102
  );
3813
4103
  }
3814
4104
  function ItemTitle({ className, ...props }) {
3815
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4105
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3816
4106
  "div",
3817
4107
  {
3818
4108
  "data-slot": "item-title",
@@ -3822,7 +4112,7 @@ function ItemTitle({ className, ...props }) {
3822
4112
  );
3823
4113
  }
3824
4114
  function ItemDescription({ className, ...props }) {
3825
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4115
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3826
4116
  "p",
3827
4117
  {
3828
4118
  "data-slot": "item-description",
@@ -3832,7 +4122,7 @@ function ItemDescription({ className, ...props }) {
3832
4122
  );
3833
4123
  }
3834
4124
  function ItemActions({ className, ...props }) {
3835
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4125
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
3836
4126
  "div",
3837
4127
  {
3838
4128
  "data-slot": "item-actions",
@@ -3843,7 +4133,7 @@ function ItemActions({ className, ...props }) {
3843
4133
  }
3844
4134
 
3845
4135
  // src/components/components/Item/index.tsx
3846
- var import_jsx_runtime69 = require("react/jsx-runtime");
4136
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3847
4137
  function Item2({
3848
4138
  title,
3849
4139
  description,
@@ -3852,22 +4142,22 @@ function Item2({
3852
4142
  className,
3853
4143
  style
3854
4144
  }) {
3855
- const { renderChildren } = (0, import_runtime11.useRenderer)();
4145
+ const { renderChildren } = (0, import_runtime12.useRenderer)();
3856
4146
  const mediaNodes = media === void 0 ? [] : Array.isArray(media) ? media : [media];
3857
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Item, { className, style, children: [
3858
- mediaNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ItemMedia, { children: renderChildren(mediaNodes) }) : null,
3859
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(ItemContent, { children: [
3860
- title ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ItemTitle, { children: title }) : null,
3861
- description ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ItemDescription, { children: description }) : null
4147
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Item, { className, style, children: [
4148
+ mediaNodes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ItemMedia, { children: renderChildren(mediaNodes) }) : null,
4149
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(ItemContent, { children: [
4150
+ title ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ItemTitle, { children: title }) : null,
4151
+ description ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ItemDescription, { children: description }) : null
3862
4152
  ] }),
3863
- actions && actions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ItemActions, { children: renderChildren(actions) }) : null
4153
+ actions && actions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ItemActions, { children: renderChildren(actions) }) : null
3864
4154
  ] });
3865
4155
  }
3866
4156
 
3867
4157
  // src/ui/kbd.tsx
3868
- var import_jsx_runtime70 = require("react/jsx-runtime");
4158
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3869
4159
  function Kbd({ className, ...props }) {
3870
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4160
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3871
4161
  "kbd",
3872
4162
  {
3873
4163
  "data-slot": "kbd",
@@ -3881,18 +4171,18 @@ function Kbd({ className, ...props }) {
3881
4171
  }
3882
4172
 
3883
4173
  // src/components/components/Kbd/index.tsx
3884
- var import_jsx_runtime71 = require("react/jsx-runtime");
4174
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3885
4175
  function Kbd2({ text, className, style }) {
3886
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Kbd, { className, style, children: text });
4176
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Kbd, { className, style, children: text });
3887
4177
  }
3888
4178
 
3889
4179
  // src/ui/label.tsx
3890
- var import_jsx_runtime72 = require("react/jsx-runtime");
4180
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3891
4181
  function Label({
3892
4182
  className,
3893
4183
  ...props
3894
4184
  }) {
3895
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
4185
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3896
4186
  "label",
3897
4187
  {
3898
4188
  "data-slot": "label",
@@ -3906,22 +4196,22 @@ function Label({
3906
4196
  }
3907
4197
 
3908
4198
  // src/components/components/Label/index.tsx
3909
- var import_jsx_runtime73 = require("react/jsx-runtime");
4199
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3910
4200
  function Label2({ text, htmlFor, className, style }) {
3911
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Label, { htmlFor, className, style, children: text });
4201
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Label, { htmlFor, className, style, children: text });
3912
4202
  }
3913
4203
 
3914
4204
  // src/components/components/Layout/index.tsx
3915
4205
  var import_core = require("@pactor-app/core");
3916
- var import_runtime12 = require("@pactor-app/runtime");
3917
- var import_jsx_runtime74 = require("react/jsx-runtime");
4206
+ var import_runtime13 = require("@pactor-app/runtime");
4207
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3918
4208
  function Layout({ direction, className, style, dslChildren }) {
3919
- const { renderChildren, context } = (0, import_runtime12.useRenderer)();
4209
+ const { renderChildren, context } = (0, import_runtime13.useRenderer)();
3920
4210
  const hasSider = Array.isArray(dslChildren) ? dslChildren.some(
3921
4211
  (child) => !(0, import_core.isDslSourceRef)(child) && resolveRootType(child, context) === "Sider"
3922
4212
  ) : false;
3923
4213
  const dir = direction ?? (hasSider ? "horizontal" : "vertical");
3924
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
4214
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
3925
4215
  "div",
3926
4216
  {
3927
4217
  "data-slot": "layout",
@@ -3945,9 +4235,9 @@ function resolveRootType(node, context) {
3945
4235
  }
3946
4236
 
3947
4237
  // src/components/components/Link/index.tsx
3948
- var import_jsx_runtime75 = require("react/jsx-runtime");
4238
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3949
4239
  function Link2({ href, text, target, className, style, children }) {
3950
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4240
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
3951
4241
  "a",
3952
4242
  {
3953
4243
  "data-slot": "link",
@@ -3961,14 +4251,17 @@ function Link2({ href, text, target, className, style, children }) {
3961
4251
  );
3962
4252
  }
3963
4253
 
4254
+ // src/components/components/Menu/index.tsx
4255
+ var import_react19 = require("react");
4256
+
3964
4257
  // src/ui/tooltip.tsx
3965
4258
  var import_tooltip = require("@base-ui/react/tooltip");
3966
- var import_jsx_runtime76 = require("react/jsx-runtime");
4259
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3967
4260
  function TooltipProvider({
3968
4261
  delay = 0,
3969
4262
  ...props
3970
4263
  }) {
3971
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
4264
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
3972
4265
  import_tooltip.Tooltip.Provider,
3973
4266
  {
3974
4267
  "data-slot": "tooltip-provider",
@@ -3980,12 +4273,12 @@ function TooltipProvider({
3980
4273
  function Tooltip2({
3981
4274
  ...props
3982
4275
  }) {
3983
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
4276
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
3984
4277
  }
3985
4278
  function TooltipTrigger({
3986
4279
  ...props
3987
4280
  }) {
3988
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
4281
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
3989
4282
  }
3990
4283
  function TooltipContent({
3991
4284
  className,
@@ -3995,14 +4288,14 @@ function TooltipContent({
3995
4288
  children,
3996
4289
  ...props
3997
4290
  }) {
3998
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
4291
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
3999
4292
  import_tooltip.Tooltip.Positioner,
4000
4293
  {
4001
4294
  align,
4002
4295
  side,
4003
4296
  sideOffset,
4004
4297
  className: "isolate z-50",
4005
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
4298
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
4006
4299
  import_tooltip.Tooltip.Popup,
4007
4300
  {
4008
4301
  "data-slot": "tooltip-content",
@@ -4013,7 +4306,7 @@ function TooltipContent({
4013
4306
  ...props,
4014
4307
  children: [
4015
4308
  children,
4016
- /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 rounded-[2px] bg-primary fill-primary data-[side=top]:-bottom-1 data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1" })
4309
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 rounded-[2px] bg-primary fill-primary data-[side=top]:-bottom-1 data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1" })
4017
4310
  ]
4018
4311
  }
4019
4312
  )
@@ -4022,34 +4315,34 @@ function TooltipContent({
4022
4315
  }
4023
4316
 
4024
4317
  // src/components/components/Sidebar/rail-tooltip.tsx
4025
- var import_jsx_runtime77 = require("react/jsx-runtime");
4318
+ var import_jsx_runtime78 = require("react/jsx-runtime");
4026
4319
  function RailTooltip({
4027
4320
  label,
4028
4321
  children
4029
4322
  }) {
4030
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(Tooltip2, { children: [
4031
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(TooltipTrigger, { render: children }),
4032
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(TooltipContent, { side: "right", sideOffset: 8, children: label })
4323
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(Tooltip2, { children: [
4324
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TooltipTrigger, { render: children }),
4325
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TooltipContent, { side: "right", sideOffset: 8, children: label })
4033
4326
  ] });
4034
4327
  }
4035
4328
 
4036
4329
  // src/components/components/Sidebar/index.tsx
4037
- var import_runtime13 = require("@pactor-app/runtime");
4038
- var import_react17 = require("react");
4330
+ var import_runtime14 = require("@pactor-app/runtime");
4331
+ var import_react18 = require("react");
4039
4332
 
4040
4333
  // src/ui/sidebar.tsx
4041
4334
  var React4 = __toESM(require("react"), 1);
4042
4335
  var import_class_variance_authority5 = require("class-variance-authority");
4043
- var import_lucide_react18 = require("lucide-react");
4336
+ var import_lucide_react19 = require("lucide-react");
4044
4337
 
4045
4338
  // src/hooks/use-mobile.ts
4046
- var import_react16 = require("react");
4339
+ var import_react17 = require("react");
4047
4340
  var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
4048
4341
  function useIsMobile() {
4049
- const [isMobile, setIsMobile] = (0, import_react16.useState)(
4342
+ const [isMobile, setIsMobile] = (0, import_react17.useState)(
4050
4343
  () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
4051
4344
  );
4052
- (0, import_react16.useEffect)(() => {
4345
+ (0, import_react17.useEffect)(() => {
4053
4346
  if (typeof window.matchMedia !== "function") {
4054
4347
  return;
4055
4348
  }
@@ -4066,14 +4359,14 @@ function useIsMobile() {
4066
4359
 
4067
4360
  // src/ui/separator.tsx
4068
4361
  var import_separator = require("@base-ui/react/separator");
4069
- var import_jsx_runtime78 = require("react/jsx-runtime");
4362
+ var import_jsx_runtime79 = require("react/jsx-runtime");
4070
4363
  function Separator({
4071
4364
  className,
4072
4365
  orientation = "horizontal",
4073
4366
  decorative: _decorative,
4074
4367
  ...props
4075
4368
  }) {
4076
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4369
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4077
4370
  import_separator.Separator,
4078
4371
  {
4079
4372
  "data-slot": "separator",
@@ -4089,24 +4382,24 @@ function Separator({
4089
4382
 
4090
4383
  // src/ui/sheet.tsx
4091
4384
  var import_dialog3 = require("@base-ui/react/dialog");
4092
- var import_lucide_react17 = require("lucide-react");
4385
+ var import_lucide_react18 = require("lucide-react");
4093
4386
  var import_class_variance_authority4 = require("class-variance-authority");
4094
- var import_jsx_runtime79 = require("react/jsx-runtime");
4387
+ var import_jsx_runtime80 = require("react/jsx-runtime");
4095
4388
  function Sheet({
4096
4389
  ...props
4097
4390
  }) {
4098
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
4391
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
4099
4392
  }
4100
4393
  function SheetPortal({
4101
4394
  ...props
4102
4395
  }) {
4103
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
4396
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
4104
4397
  }
4105
4398
  function SheetOverlay({
4106
4399
  className,
4107
4400
  ...props
4108
4401
  }) {
4109
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4402
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4110
4403
  import_dialog3.Dialog.Backdrop,
4111
4404
  {
4112
4405
  "data-slot": "sheet-overlay",
@@ -4140,9 +4433,9 @@ function SheetContent({
4140
4433
  side = "right",
4141
4434
  ...props
4142
4435
  }) {
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)(
4436
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
4437
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(SheetOverlay, {}),
4438
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
4146
4439
  import_dialog3.Dialog.Popup,
4147
4440
  {
4148
4441
  "data-slot": "sheet-content",
@@ -4150,11 +4443,11 @@ function SheetContent({
4150
4443
  ...props,
4151
4444
  children: [
4152
4445
  children,
4153
- /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
4446
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
4154
4447
  import_dialog3.Dialog.Close,
4155
4448
  {
4156
4449
  "data-slot": "sheet-close",
4157
- render: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4450
+ render: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4158
4451
  "button",
4159
4452
  {
4160
4453
  type: "button",
@@ -4162,8 +4455,8 @@ function SheetContent({
4162
4455
  }
4163
4456
  ),
4164
4457
  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" })
4458
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_lucide_react18.XIcon, {}),
4459
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "sr-only", children: "Close" })
4167
4460
  ]
4168
4461
  }
4169
4462
  )
@@ -4173,7 +4466,7 @@ function SheetContent({
4173
4466
  ] });
4174
4467
  }
4175
4468
  function SheetHeader({ className, ...props }) {
4176
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4469
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4177
4470
  "div",
4178
4471
  {
4179
4472
  "data-slot": "sheet-header",
@@ -4186,7 +4479,7 @@ function SheetTitle({
4186
4479
  className,
4187
4480
  ...props
4188
4481
  }) {
4189
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4482
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4190
4483
  import_dialog3.Dialog.Title,
4191
4484
  {
4192
4485
  "data-slot": "sheet-title",
@@ -4199,7 +4492,7 @@ function SheetDescription({
4199
4492
  className,
4200
4493
  ...props
4201
4494
  }) {
4202
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4495
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4203
4496
  import_dialog3.Dialog.Description,
4204
4497
  {
4205
4498
  "data-slot": "sheet-description",
@@ -4210,9 +4503,9 @@ function SheetDescription({
4210
4503
  }
4211
4504
 
4212
4505
  // src/ui/skeleton.tsx
4213
- var import_jsx_runtime80 = require("react/jsx-runtime");
4506
+ var import_jsx_runtime81 = require("react/jsx-runtime");
4214
4507
  function Skeleton({ className, ...props }) {
4215
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
4508
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4216
4509
  "div",
4217
4510
  {
4218
4511
  "data-slot": "skeleton",
@@ -4223,7 +4516,7 @@ function Skeleton({ className, ...props }) {
4223
4516
  }
4224
4517
 
4225
4518
  // src/ui/sidebar.tsx
4226
- var import_jsx_runtime81 = require("react/jsx-runtime");
4519
+ var import_jsx_runtime82 = require("react/jsx-runtime");
4227
4520
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
4228
4521
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4229
4522
  var SIDEBAR_WIDTH = "16rem";
@@ -4289,7 +4582,7 @@ function SidebarProvider({
4289
4582
  }),
4290
4583
  [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
4291
4584
  );
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)(
4585
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4293
4586
  "div",
4294
4587
  {
4295
4588
  "data-slot": "sidebar-wrapper",
@@ -4317,7 +4610,7 @@ function SidebarRoot({
4317
4610
  }) {
4318
4611
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
4319
4612
  if (collapsible === "none") {
4320
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4613
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4321
4614
  "div",
4322
4615
  {
4323
4616
  "data-slot": "sidebar",
@@ -4331,7 +4624,7 @@ function SidebarRoot({
4331
4624
  );
4332
4625
  }
4333
4626
  if (isMobile) {
4334
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
4627
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4335
4628
  SheetContent,
4336
4629
  {
4337
4630
  "data-sidebar": "sidebar",
@@ -4343,16 +4636,16 @@ function SidebarRoot({
4343
4636
  },
4344
4637
  side,
4345
4638
  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." })
4639
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SheetHeader, { className: "sr-only", children: [
4640
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetTitle, { children: "Sidebar" }),
4641
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
4349
4642
  ] }),
4350
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex h-full w-full flex-col", children })
4643
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex h-full w-full flex-col", children })
4351
4644
  ]
4352
4645
  }
4353
4646
  ) });
4354
4647
  }
4355
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
4648
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4356
4649
  "div",
4357
4650
  {
4358
4651
  className: "group peer hidden text-sidebar-foreground md:block",
@@ -4362,7 +4655,7 @@ function SidebarRoot({
4362
4655
  "data-side": side,
4363
4656
  "data-slot": "sidebar",
4364
4657
  children: [
4365
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4658
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4366
4659
  "div",
4367
4660
  {
4368
4661
  "data-slot": "sidebar-gap",
@@ -4374,7 +4667,7 @@ function SidebarRoot({
4374
4667
  )
4375
4668
  }
4376
4669
  ),
4377
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4670
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4378
4671
  "div",
4379
4672
  {
4380
4673
  "data-slot": "sidebar-container",
@@ -4385,7 +4678,7 @@ function SidebarRoot({
4385
4678
  className
4386
4679
  ),
4387
4680
  ...props,
4388
- children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4681
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4389
4682
  "div",
4390
4683
  {
4391
4684
  "data-sidebar": "sidebar",
@@ -4401,7 +4694,7 @@ function SidebarRoot({
4401
4694
  );
4402
4695
  }
4403
4696
  function SidebarInset({ className, ...props }) {
4404
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4697
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4405
4698
  "main",
4406
4699
  {
4407
4700
  "data-slot": "sidebar-inset",
@@ -4415,7 +4708,7 @@ function SidebarInset({ className, ...props }) {
4415
4708
  );
4416
4709
  }
4417
4710
  function SidebarHeader({ className, ...props }) {
4418
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4711
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4419
4712
  "div",
4420
4713
  {
4421
4714
  "data-slot": "sidebar-header",
@@ -4426,7 +4719,7 @@ function SidebarHeader({ className, ...props }) {
4426
4719
  );
4427
4720
  }
4428
4721
  function SidebarFooter({ className, ...props }) {
4429
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4722
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4430
4723
  "div",
4431
4724
  {
4432
4725
  "data-slot": "sidebar-footer",
@@ -4437,7 +4730,7 @@ function SidebarFooter({ className, ...props }) {
4437
4730
  );
4438
4731
  }
4439
4732
  function SidebarContent({ className, ...props }) {
4440
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4733
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4441
4734
  "div",
4442
4735
  {
4443
4736
  "data-slot": "sidebar-content",
@@ -4464,7 +4757,7 @@ function renderAsChild(children, dataSlot, className, rest) {
4464
4757
  });
4465
4758
  }
4466
4759
  function SidebarMenu({ className, ...props }) {
4467
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4760
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4468
4761
  "ul",
4469
4762
  {
4470
4763
  "data-slot": "sidebar-menu",
@@ -4475,7 +4768,7 @@ function SidebarMenu({ className, ...props }) {
4475
4768
  );
4476
4769
  }
4477
4770
  function SidebarMenuItem({ className, ...props }) {
4478
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4771
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4479
4772
  "li",
4480
4773
  {
4481
4774
  "data-slot": "sidebar-menu-item",
@@ -4522,7 +4815,7 @@ function SidebarMenuButton({
4522
4815
  "data-size": size,
4523
4816
  "data-active": isActive,
4524
4817
  ...props
4525
- }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
4818
+ }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4526
4819
  "button",
4527
4820
  {
4528
4821
  "data-slot": "sidebar-menu-button",
@@ -4542,9 +4835,9 @@ function SidebarMenuButton({
4542
4835
  children: tooltip
4543
4836
  };
4544
4837
  }
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)(
4838
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Tooltip2, { children: [
4839
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TooltipTrigger, { render: button }),
4840
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4548
4841
  TooltipContent,
4549
4842
  {
4550
4843
  side: "right",
@@ -4557,7 +4850,7 @@ function SidebarMenuButton({
4557
4850
  }
4558
4851
 
4559
4852
  // src/components/components/Sidebar/index.tsx
4560
- var import_jsx_runtime82 = require("react/jsx-runtime");
4853
+ var import_jsx_runtime83 = require("react/jsx-runtime");
4561
4854
  function useSidebarDrawer() {
4562
4855
  try {
4563
4856
  const ctx = useSidebar();
@@ -4571,7 +4864,7 @@ function useSidebarDrawer() {
4571
4864
  }
4572
4865
  function useOptionalRenderer() {
4573
4866
  try {
4574
- return (0, import_runtime13.useRenderer)();
4867
+ return (0, import_runtime14.useRenderer)();
4575
4868
  } catch {
4576
4869
  return null;
4577
4870
  }
@@ -4579,9 +4872,9 @@ function useOptionalRenderer() {
4579
4872
  function SidebarContentSlot({ content }) {
4580
4873
  const renderer = useOptionalRenderer();
4581
4874
  if (renderer !== null && typeof content === "object" && content !== null && !("$$typeof" in content) && "type" in content) {
4582
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: renderer.renderChildren([content]) });
4875
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_jsx_runtime83.Fragment, { children: renderer.renderChildren([content]) });
4583
4876
  }
4584
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: content });
4877
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_jsx_runtime83.Fragment, { children: content });
4585
4878
  }
4586
4879
  function isBrandObject(brand) {
4587
4880
  return typeof brand === "object" && brand !== null && !("$$typeof" in brand) && "title" in brand;
@@ -4591,8 +4884,8 @@ function BrandNode({ brand, collapsed }) {
4591
4884
  return null;
4592
4885
  }
4593
4886
  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)(
4887
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_jsx_runtime83.Fragment, { children: [
4888
+ brand.logo ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4596
4889
  "img",
4597
4890
  {
4598
4891
  "data-slot": "sidebar-brand-logo",
@@ -4601,27 +4894,27 @@ function BrandNode({ brand, collapsed }) {
4601
4894
  className: "size-6 shrink-0"
4602
4895
  }
4603
4896
  ) : null,
4604
- collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "truncate text-sm font-semibold", children: brand.title })
4897
+ collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "truncate text-sm font-semibold", children: brand.title })
4605
4898
  ] });
4606
4899
  }
4607
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: brand });
4900
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_jsx_runtime83.Fragment, { children: brand });
4608
4901
  }
4609
4902
  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)) });
4903
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarMenu, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarNavEntry, { item, depth: 0 }, item.href ?? item.label ?? index)) });
4611
4904
  }
4612
4905
  function SidebarNavEntry({ item, depth }) {
4613
- const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
4906
+ const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
4614
4907
  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: [
4908
+ const button = item.href ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarMenuButton, { asChild: true, tooltip: item.label, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("a", { href: item.href, children: [
4616
4909
  iconNode,
4617
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
4618
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuButton, { tooltip: item.label, children: [
4910
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { children: labelNode })
4911
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(SidebarMenuButton, { tooltip: item.label, children: [
4619
4912
  iconNode,
4620
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
4913
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { children: labelNode })
4621
4914
  ] });
4622
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuItem, { children: [
4915
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(SidebarMenuItem, { children: [
4623
4916
  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)(
4917
+ item.children && item.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: cn("ml-4"), children: item.children.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4625
4918
  SidebarNavEntry,
4626
4919
  {
4627
4920
  item: child,
@@ -4644,13 +4937,13 @@ function Sidebar({
4644
4937
  style,
4645
4938
  children
4646
4939
  }) {
4647
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4940
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4648
4941
  SidebarProvider,
4649
4942
  {
4650
4943
  defaultOpen: true,
4651
4944
  className,
4652
4945
  style,
4653
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
4946
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4654
4947
  SidebarInner,
4655
4948
  {
4656
4949
  brand,
@@ -4678,32 +4971,32 @@ function SidebarInner({
4678
4971
  drawer = true,
4679
4972
  children
4680
4973
  }) {
4681
- const { t } = (0, import_runtime13.useI18n)();
4974
+ const { t } = (0, import_runtime14.useI18n)();
4682
4975
  const isMobile = useIsMobile();
4683
4976
  const { state, setOpenMobile, toggleSidebar } = useSidebar();
4684
4977
  const collapsed = state === "collapsed";
4685
- const prevCollapsed = (0, import_react17.useRef)(collapsed);
4686
- (0, import_react17.useEffect)(() => {
4978
+ const prevCollapsed = (0, import_react18.useRef)(collapsed);
4979
+ (0, import_react18.useEffect)(() => {
4687
4980
  if (prevCollapsed.current !== collapsed) {
4688
4981
  prevCollapsed.current = collapsed;
4689
4982
  onCollapse?.(collapsed);
4690
4983
  }
4691
4984
  }, [collapsed, onCollapse]);
4692
- (0, import_react17.useEffect)(() => {
4985
+ (0, import_react18.useEffect)(() => {
4693
4986
  if (locationKey !== void 0) {
4694
4987
  setOpenMobile(false);
4695
4988
  }
4696
4989
  }, [locationKey, setOpenMobile]);
4697
4990
  const collapsedEffective = collapsible === true && collapsed && !isMobile;
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)(
4991
+ const brandNode = /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(BrandNode, { brand, collapsed: collapsedEffective });
4992
+ const sidebarContent = content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarContentSlot, { content }) : items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarNavItems, { items }) : null;
4993
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_jsx_runtime83.Fragment, { children: [
4994
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
4702
4995
  SidebarRoot,
4703
4996
  {
4704
4997
  collapsible: collapsible ? "icon" : "offcanvas",
4705
4998
  children: [
4706
- (brand !== void 0 || collapsible) && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
4999
+ (brand !== void 0 || collapsible) && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
4707
5000
  "div",
4708
5001
  {
4709
5002
  "data-slot": "sidebar-brand",
@@ -4712,8 +5005,8 @@ function SidebarInner({
4712
5005
  collapsedEffective && "justify-center px-0"
4713
5006
  ),
4714
5007
  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)(
5008
+ collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
5009
+ collapsible && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4717
5010
  "button",
4718
5011
  {
4719
5012
  type: "button",
@@ -4722,25 +5015,25 @@ function SidebarInner({
4722
5015
  "aria-expanded": !collapsedEffective,
4723
5016
  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
5017
  onClick: toggleSidebar,
4725
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: collapsedEffective ? "chevron-right" : "chevron-left", size: 16 })
5018
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: collapsedEffective ? "chevron-right" : "chevron-left", size: 16 })
4726
5019
  }
4727
5020
  )
4728
5021
  ]
4729
5022
  }
4730
5023
  ) }),
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 })
5024
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarContent, { children: sidebarContent }),
5025
+ sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SidebarFooter, { children: sidebarFooter })
4733
5026
  ]
4734
5027
  }
4735
5028
  ),
4736
- /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarInset, { children: [
4737
- drawer && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
5029
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(SidebarInset, { children: [
5030
+ drawer && /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
4738
5031
  "div",
4739
5032
  {
4740
5033
  "data-slot": "sidebar-topbar",
4741
5034
  className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
4742
5035
  children: [
4743
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5036
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
4744
5037
  "button",
4745
5038
  {
4746
5039
  type: "button",
@@ -4748,7 +5041,7 @@ function SidebarInner({
4748
5041
  "aria-label": t("pactor.layout.openNavigation"),
4749
5042
  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
5043
  onClick: toggleSidebar,
4751
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "menu", size: 18 })
5044
+ children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: "menu", size: 18 })
4752
5045
  }
4753
5046
  ),
4754
5047
  brandNode
@@ -4761,19 +5054,52 @@ function SidebarInner({
4761
5054
  }
4762
5055
 
4763
5056
  // src/components/components/Menu/index.tsx
4764
- var import_jsx_runtime83 = require("react/jsx-runtime");
5057
+ var import_jsx_runtime84 = require("react/jsx-runtime");
5058
+ function collectAncestors(items, target, into, trail = []) {
5059
+ for (const item of items) {
5060
+ if (item.key === target) {
5061
+ for (const key of trail) into.add(key);
5062
+ return true;
5063
+ }
5064
+ if (item.children?.length && collectAncestors(item.children, target, into, [...trail, item.key])) {
5065
+ return true;
5066
+ }
5067
+ }
5068
+ return false;
5069
+ }
4765
5070
  function Menu2({
4766
5071
  items = [],
4767
5072
  mode = "inline",
4768
5073
  selectedKey,
5074
+ collapsible = false,
5075
+ defaultExpandedKeys,
4769
5076
  onSelect,
4770
5077
  className,
4771
5078
  style
4772
5079
  }) {
4773
5080
  const drawer = useSidebarDrawer();
4774
5081
  const collapsed = mode === "inline" && drawer?.collapsed === true;
5082
+ const collapsibleOn = collapsible && mode === "inline" && !collapsed;
5083
+ const [expandedKeys, setExpandedKeys] = (0, import_react19.useState)(() => {
5084
+ const initial = new Set(defaultExpandedKeys ?? []);
5085
+ if (selectedKey !== void 0) {
5086
+ collectAncestors(items, selectedKey, initial);
5087
+ }
5088
+ return initial;
5089
+ });
5090
+ const toggleExpanded = (key) => {
5091
+ setExpandedKeys((prev) => {
5092
+ const next = new Set(prev);
5093
+ if (next.has(key)) {
5094
+ next.delete(key);
5095
+ } else {
5096
+ next.add(key);
5097
+ }
5098
+ return next;
5099
+ });
5100
+ };
4775
5101
  let previousGroup;
4776
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5102
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4777
5103
  "nav",
4778
5104
  {
4779
5105
  "data-slot": "menu",
@@ -4790,8 +5116,8 @@ function Menu2({
4790
5116
  groupLabel = item.group;
4791
5117
  }
4792
5118
  previousGroup = item.group;
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)(
5119
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { "data-slot": "menu-group-entry", children: [
5120
+ groupLabel !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4795
5121
  "div",
4796
5122
  {
4797
5123
  "data-slot": "menu-group",
@@ -4799,7 +5125,7 @@ function Menu2({
4799
5125
  children: groupLabel
4800
5126
  }
4801
5127
  ),
4802
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5128
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4803
5129
  MenuEntry,
4804
5130
  {
4805
5131
  item,
@@ -4807,7 +5133,10 @@ function Menu2({
4807
5133
  depth: 0,
4808
5134
  selectedKey,
4809
5135
  onSelect,
4810
- collapsed
5136
+ collapsed,
5137
+ collapsible: collapsibleOn,
5138
+ expandedKeys,
5139
+ onToggle: toggleExpanded
4811
5140
  }
4812
5141
  )
4813
5142
  ] }, item.key);
@@ -4821,15 +5150,34 @@ function MenuEntry({
4821
5150
  depth,
4822
5151
  selectedKey,
4823
5152
  onSelect,
4824
- collapsed = false
5153
+ collapsed = false,
5154
+ collapsible = false,
5155
+ expandedKeys,
5156
+ onToggle
4825
5157
  }) {
4826
5158
  const selected = item.key === selectedKey;
4827
- const button = /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
5159
+ const hasChildren = (item.children?.length ?? 0) > 0;
5160
+ const isDirectory = collapsible && hasChildren;
5161
+ const expanded = isDirectory && expandedKeys?.has(item.key) === true;
5162
+ const railDirectory = collapsed && hasChildren;
5163
+ const [flyoutOpen, setFlyoutOpen] = (0, import_react19.useState)(false);
5164
+ const flyoutTimer = (0, import_react19.useRef)(void 0);
5165
+ const flyoutOpenNow = () => {
5166
+ window.clearTimeout(flyoutTimer.current);
5167
+ setFlyoutOpen(true);
5168
+ };
5169
+ const flyoutCloseLater = () => {
5170
+ window.clearTimeout(flyoutTimer.current);
5171
+ flyoutTimer.current = window.setTimeout(() => setFlyoutOpen(false), 200);
5172
+ };
5173
+ (0, import_react19.useEffect)(() => () => window.clearTimeout(flyoutTimer.current), []);
5174
+ const button = /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
4828
5175
  "button",
4829
5176
  {
4830
5177
  type: "button",
4831
5178
  "data-slot": "menu-item",
4832
5179
  "aria-current": selected ? "page" : void 0,
5180
+ "aria-expanded": isDirectory ? expanded : railDirectory ? flyoutOpen : void 0,
4833
5181
  disabled: item.disabled,
4834
5182
  className: cn(
4835
5183
  "flex w-full items-center gap-2 rounded-md text-sm transition-colors",
@@ -4839,29 +5187,80 @@ function MenuEntry({
4839
5187
  item.disabled && "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-muted-foreground"
4840
5188
  ),
4841
5189
  style: mode === "inline" && depth > 0 && !collapsed ? { paddingLeft: 12 + depth * 16 } : void 0,
5190
+ onMouseEnter: railDirectory ? flyoutOpenNow : void 0,
5191
+ onMouseLeave: railDirectory ? flyoutCloseLater : void 0,
4842
5192
  onClick: () => {
4843
- if (!item.disabled) {
5193
+ if (item.disabled) return;
5194
+ if (railDirectory) return;
5195
+ if (isDirectory) {
5196
+ onToggle?.(item.key);
5197
+ } else {
4844
5198
  onSelect?.(item.key);
4845
5199
  }
4846
5200
  },
4847
5201
  children: [
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)(
5202
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5203
+ collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: item.label }),
5204
+ item.dot && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { "data-slot": "menu-item-dot", className: "size-1.5 shrink-0 rounded-full bg-destructive" }) : null,
5205
+ item.badge !== void 0 && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4852
5206
  "span",
4853
5207
  {
4854
5208
  "data-slot": "menu-item-badge",
4855
5209
  className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",
4856
5210
  children: item.badge
4857
5211
  }
5212
+ ) : null,
5213
+ isDirectory ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5214
+ "span",
5215
+ {
5216
+ "data-slot": "menu-item-chevron",
5217
+ className: cn(
5218
+ "shrink-0 transition-transform",
5219
+ expanded && "rotate-180"
5220
+ ),
5221
+ children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Icon, { name: "chevron-down", size: "sm" })
5222
+ }
4858
5223
  ) : null
4859
5224
  ]
4860
5225
  }
4861
5226
  );
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)(
5227
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { "data-slot": "menu-entry", "data-key": item.key, children: [
5228
+ railDirectory ? /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Popover, { open: flyoutOpen, onOpenChange: setFlyoutOpen, children: [
5229
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(PopoverTrigger, { render: button }),
5230
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5231
+ PopoverContent,
5232
+ {
5233
+ "data-slot": "menu-flyout",
5234
+ side: "right",
5235
+ align: "start",
5236
+ sideOffset: 8,
5237
+ className: "max-h-[70vh] w-48 overflow-auto p-1",
5238
+ initialFocus: false,
5239
+ onMouseEnter: flyoutOpenNow,
5240
+ onMouseLeave: flyoutCloseLater,
5241
+ onClick: (event) => {
5242
+ if (event.target.closest("[data-slot=menu-item]")) {
5243
+ setFlyoutOpen(false);
5244
+ }
5245
+ },
5246
+ children: [
5247
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "px-3 pt-2 pb-1 text-xs font-semibold text-muted-foreground", children: item.label }),
5248
+ item.children?.map((child) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5249
+ MenuEntry,
5250
+ {
5251
+ item: child,
5252
+ mode: "inline",
5253
+ depth: 0,
5254
+ selectedKey,
5255
+ onSelect
5256
+ },
5257
+ child.key
5258
+ ))
5259
+ ]
5260
+ }
5261
+ )
5262
+ ] }) : collapsed ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(RailTooltip, { label: item.label, children: button }) : button,
5263
+ railDirectory || isDirectory && !expanded ? null : item.children?.map((child) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
4865
5264
  MenuEntry,
4866
5265
  {
4867
5266
  item: child,
@@ -4869,7 +5268,10 @@ function MenuEntry({
4869
5268
  depth: depth + 1,
4870
5269
  selectedKey,
4871
5270
  onSelect,
4872
- collapsed
5271
+ collapsed,
5272
+ collapsible,
5273
+ expandedKeys,
5274
+ onToggle
4873
5275
  },
4874
5276
  child.key
4875
5277
  ))
@@ -4879,12 +5281,12 @@ function MenuEntry({
4879
5281
  // src/ui/menubar.tsx
4880
5282
  var import_menu2 = require("@base-ui/react/menu");
4881
5283
  var import_menubar = require("@base-ui/react/menubar");
4882
- var import_jsx_runtime84 = require("react/jsx-runtime");
5284
+ var import_jsx_runtime85 = require("react/jsx-runtime");
4883
5285
  function Menubar({
4884
5286
  className,
4885
5287
  ...props
4886
5288
  }) {
4887
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5289
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4888
5290
  import_menubar.Menubar,
4889
5291
  {
4890
5292
  "data-slot": "menubar",
@@ -4899,13 +5301,13 @@ function Menubar({
4899
5301
  function MenubarMenu({
4900
5302
  ...props
4901
5303
  }) {
4902
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
5304
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
4903
5305
  }
4904
5306
  function MenubarTrigger({
4905
5307
  className,
4906
5308
  ...props
4907
5309
  }) {
4908
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5310
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4909
5311
  import_menu2.Menu.Trigger,
4910
5312
  {
4911
5313
  "data-slot": "menubar-trigger",
@@ -4924,14 +5326,14 @@ function MenubarContent({
4924
5326
  sideOffset = 8,
4925
5327
  ...props
4926
5328
  }) {
4927
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5329
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4928
5330
  import_menu2.Menu.Positioner,
4929
5331
  {
4930
5332
  align,
4931
5333
  side,
4932
5334
  sideOffset,
4933
5335
  className: "isolate z-50",
4934
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5336
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4935
5337
  import_menu2.Menu.Popup,
4936
5338
  {
4937
5339
  "data-slot": "menubar-content",
@@ -4950,7 +5352,7 @@ function MenubarItem({
4950
5352
  variant = "default",
4951
5353
  ...props
4952
5354
  }) {
4953
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5355
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4954
5356
  import_menu2.Menu.Item,
4955
5357
  {
4956
5358
  "data-slot": "menubar-item",
@@ -4965,17 +5367,17 @@ function MenubarItem({
4965
5367
  }
4966
5368
 
4967
5369
  // src/components/components/Menubar/index.tsx
4968
- var import_jsx_runtime85 = require("react/jsx-runtime");
5370
+ var import_jsx_runtime86 = require("react/jsx-runtime");
4969
5371
  function Menubar2({ menus = [], onSelect, className, style }) {
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)(
5372
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(MenubarMenu, { children: [
5373
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(MenubarTrigger, { children: menu.label }),
5374
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
4973
5375
  MenubarItem,
4974
5376
  {
4975
5377
  disabled: item.disabled,
4976
5378
  onClick: () => onSelect?.(item.value),
4977
5379
  children: [
4978
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5380
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
4979
5381
  item.label
4980
5382
  ]
4981
5383
  },
@@ -4986,15 +5388,15 @@ function Menubar2({ menus = [], onSelect, className, style }) {
4986
5388
 
4987
5389
  // src/ui/navigation-menu.tsx
4988
5390
  var import_navigation_menu = require("@base-ui/react/navigation-menu");
4989
- var import_lucide_react19 = require("lucide-react");
5391
+ var import_lucide_react20 = require("lucide-react");
4990
5392
  var import_class_variance_authority6 = require("class-variance-authority");
4991
- var import_jsx_runtime86 = require("react/jsx-runtime");
5393
+ var import_jsx_runtime87 = require("react/jsx-runtime");
4992
5394
  function NavigationMenu({
4993
5395
  className,
4994
5396
  children,
4995
5397
  ...props
4996
5398
  }) {
4997
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
5399
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
4998
5400
  import_navigation_menu.NavigationMenu.Root,
4999
5401
  {
5000
5402
  "data-slot": "navigation-menu",
@@ -5002,7 +5404,7 @@ function NavigationMenu({
5002
5404
  ...props,
5003
5405
  children: [
5004
5406
  children,
5005
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(NavigationMenuViewport, {})
5407
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuViewport, {})
5006
5408
  ]
5007
5409
  }
5008
5410
  );
@@ -5011,7 +5413,7 @@ function NavigationMenuList({
5011
5413
  className,
5012
5414
  ...props
5013
5415
  }) {
5014
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5416
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5015
5417
  import_navigation_menu.NavigationMenu.List,
5016
5418
  {
5017
5419
  "data-slot": "navigation-menu-list",
@@ -5024,7 +5426,7 @@ function NavigationMenuItem({
5024
5426
  className,
5025
5427
  ...props
5026
5428
  }) {
5027
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5429
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5028
5430
  import_navigation_menu.NavigationMenu.Item,
5029
5431
  {
5030
5432
  "data-slot": "navigation-menu-item",
@@ -5041,7 +5443,7 @@ function NavigationMenuTrigger({
5041
5443
  children,
5042
5444
  ...props
5043
5445
  }) {
5044
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
5446
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
5045
5447
  import_navigation_menu.NavigationMenu.Trigger,
5046
5448
  {
5047
5449
  "data-slot": "navigation-menu-trigger",
@@ -5049,8 +5451,8 @@ function NavigationMenuTrigger({
5049
5451
  ...props,
5050
5452
  children: [
5051
5453
  children,
5052
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5053
- import_lucide_react19.ChevronDownIcon,
5454
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5455
+ import_lucide_react20.ChevronDownIcon,
5054
5456
  {
5055
5457
  className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
5056
5458
  "aria-hidden": "true"
@@ -5064,7 +5466,7 @@ function NavigationMenuContent({
5064
5466
  className,
5065
5467
  ...props
5066
5468
  }) {
5067
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5469
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5068
5470
  import_navigation_menu.NavigationMenu.Content,
5069
5471
  {
5070
5472
  "data-slot": "navigation-menu-content",
@@ -5077,13 +5479,13 @@ function NavigationMenuContent({
5077
5479
  );
5078
5480
  }
5079
5481
  function NavigationMenuViewport({ className }) {
5080
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5482
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5081
5483
  import_navigation_menu.NavigationMenu.Positioner,
5082
5484
  {
5083
5485
  side: "bottom",
5084
5486
  align: "start",
5085
5487
  className: "isolate z-50",
5086
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5488
+ children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5087
5489
  import_navigation_menu.NavigationMenu.Popup,
5088
5490
  {
5089
5491
  "data-slot": "navigation-menu-popup",
@@ -5091,7 +5493,7 @@ function NavigationMenuViewport({ className }) {
5091
5493
  "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",
5092
5494
  className
5093
5495
  ),
5094
- children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
5496
+ children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
5095
5497
  }
5096
5498
  )
5097
5499
  }
@@ -5101,7 +5503,7 @@ function NavigationMenuLink({
5101
5503
  className,
5102
5504
  ...props
5103
5505
  }) {
5104
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5506
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
5105
5507
  import_navigation_menu.NavigationMenu.Link,
5106
5508
  {
5107
5509
  "data-slot": "navigation-menu-link",
@@ -5115,33 +5517,33 @@ function NavigationMenuLink({
5115
5517
  }
5116
5518
 
5117
5519
  // src/components/components/NavigationMenu/index.tsx
5118
- var import_jsx_runtime87 = require("react/jsx-runtime");
5520
+ var import_jsx_runtime88 = require("react/jsx-runtime");
5119
5521
  function NavigationMenu2({ items = [], className, style }) {
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)(
5522
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(NavigationMenu, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(import_jsx_runtime88.Fragment, { children: [
5523
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
5122
5524
  NavigationMenuTrigger,
5123
5525
  {
5124
5526
  className: item.icon !== void 0 ? "gap-2" : void 0,
5125
5527
  children: [
5126
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5528
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5127
5529
  item.label
5128
5530
  ]
5129
5531
  }
5130
5532
  ),
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)(
5533
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(NavigationMenuContent, { children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(NavigationMenuLink, { href: child.href, children: [
5534
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
5133
5535
  "span",
5134
5536
  {
5135
5537
  className: child.icon !== void 0 ? "flex items-center gap-2 font-medium" : "font-medium",
5136
5538
  children: [
5137
- child.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: child.icon, size: "sm" }) : null,
5539
+ child.icon ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Icon, { name: child.icon, size: "sm" }) : null,
5138
5540
  child.label
5139
5541
  ]
5140
5542
  }
5141
5543
  ),
5142
- child.description ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-muted-foreground", children: child.description }) : null
5544
+ child.description ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "text-muted-foreground", children: child.description }) : null
5143
5545
  ] }) }, child.href)) }) })
5144
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
5546
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
5145
5547
  NavigationMenuLink,
5146
5548
  {
5147
5549
  href: item.href,
@@ -5150,7 +5552,7 @@ function NavigationMenu2({ items = [], className, style }) {
5150
5552
  item.icon !== void 0 && "gap-2"
5151
5553
  ),
5152
5554
  children: [
5153
- item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5555
+ item.icon ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
5154
5556
  item.label
5155
5557
  ]
5156
5558
  }
@@ -5158,22 +5560,22 @@ function NavigationMenu2({ items = [], className, style }) {
5158
5560
  }
5159
5561
 
5160
5562
  // src/components/components/Page/index.tsx
5161
- var import_jsx_runtime88 = require("react/jsx-runtime");
5563
+ var import_jsx_runtime89 = require("react/jsx-runtime");
5162
5564
  function Page({ title, className, style, 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 })
5565
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
5566
+ title ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
5567
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
5166
5568
  ] });
5167
5569
  }
5168
5570
 
5169
5571
  // src/components/components/Pagination/index.tsx
5170
- var import_react18 = require("react");
5572
+ var import_react20 = require("react");
5171
5573
 
5172
5574
  // src/ui/pagination.tsx
5173
- var import_lucide_react20 = require("lucide-react");
5174
- var import_jsx_runtime89 = require("react/jsx-runtime");
5575
+ var import_lucide_react21 = require("lucide-react");
5576
+ var import_jsx_runtime90 = require("react/jsx-runtime");
5175
5577
  function Pagination({ className, ...props }) {
5176
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
5578
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5177
5579
  "nav",
5178
5580
  {
5179
5581
  role: "navigation",
@@ -5185,7 +5587,7 @@ function Pagination({ className, ...props }) {
5185
5587
  );
5186
5588
  }
5187
5589
  function PaginationContent({ className, ...props }) {
5188
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
5590
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5189
5591
  "ul",
5190
5592
  {
5191
5593
  "data-slot": "pagination-content",
@@ -5195,7 +5597,7 @@ function PaginationContent({ className, ...props }) {
5195
5597
  );
5196
5598
  }
5197
5599
  function PaginationItem({ ...props }) {
5198
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("li", { "data-slot": "pagination-item", ...props });
5600
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("li", { "data-slot": "pagination-item", ...props });
5199
5601
  }
5200
5602
  function PaginationLink({
5201
5603
  className,
@@ -5203,7 +5605,7 @@ function PaginationLink({
5203
5605
  disabled,
5204
5606
  ...props
5205
5607
  }) {
5206
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
5608
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5207
5609
  "a",
5208
5610
  {
5209
5611
  "aria-current": isActive ? "page" : void 0,
@@ -5227,15 +5629,15 @@ function PaginationPrevious({
5227
5629
  className,
5228
5630
  ...props
5229
5631
  }) {
5230
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
5632
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
5231
5633
  PaginationLink,
5232
5634
  {
5233
5635
  "aria-label": "Go to previous page",
5234
5636
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
5235
5637
  ...props,
5236
5638
  children: [
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" })
5639
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronLeftIcon, {}),
5640
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "hidden sm:block", children: "Previous" })
5239
5641
  ]
5240
5642
  }
5241
5643
  );
@@ -5244,21 +5646,21 @@ function PaginationNext({
5244
5646
  className,
5245
5647
  ...props
5246
5648
  }) {
5247
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
5649
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
5248
5650
  PaginationLink,
5249
5651
  {
5250
5652
  "aria-label": "Go to next page",
5251
5653
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
5252
5654
  ...props,
5253
5655
  children: [
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, {})
5656
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "hidden sm:block", children: "Next" }),
5657
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronRightIcon, {})
5256
5658
  ]
5257
5659
  }
5258
5660
  );
5259
5661
  }
5260
5662
  function PaginationEllipsis({ className, ...props }) {
5261
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
5663
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
5262
5664
  "span",
5263
5665
  {
5264
5666
  "aria-hidden": true,
@@ -5266,15 +5668,15 @@ function PaginationEllipsis({ className, ...props }) {
5266
5668
  className: cn("flex size-9 items-center justify-center", className),
5267
5669
  ...props,
5268
5670
  children: [
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" })
5671
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.MoreHorizontalIcon, { className: "size-4" }),
5672
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "sr-only", children: "More pages" })
5271
5673
  ]
5272
5674
  }
5273
5675
  );
5274
5676
  }
5275
5677
 
5276
5678
  // src/components/components/Pagination/index.tsx
5277
- var import_jsx_runtime90 = require("react/jsx-runtime");
5679
+ var import_jsx_runtime91 = require("react/jsx-runtime");
5278
5680
  function pageItems(current, count) {
5279
5681
  if (count <= 7) {
5280
5682
  return Array.from({ length: count }, (_, i) => i + 1);
@@ -5295,7 +5697,7 @@ function Pagination2({
5295
5697
  className,
5296
5698
  style
5297
5699
  }) {
5298
- const [innerPage, setInnerPage] = (0, import_react18.useState)(1);
5700
+ const [innerPage, setInnerPage] = (0, import_react20.useState)(1);
5299
5701
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
5300
5702
  const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
5301
5703
  const goTo = (next) => {
@@ -5308,8 +5710,8 @@ function Pagination2({
5308
5710
  }
5309
5711
  onChange?.(target);
5310
5712
  };
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)(
5713
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(PaginationContent, { children: [
5714
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
5313
5715
  PaginationPrevious,
5314
5716
  {
5315
5717
  href: "#",
@@ -5320,7 +5722,7 @@ function Pagination2({
5320
5722
  }
5321
5723
  }
5322
5724
  ) }),
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)(
5725
+ pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
5324
5726
  PaginationLink,
5325
5727
  {
5326
5728
  href: "#",
@@ -5332,7 +5734,7 @@ function Pagination2({
5332
5734
  children: item
5333
5735
  }
5334
5736
  ) }, item === "ellipsis" ? `ellipsis-${index}` : item)),
5335
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5737
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
5336
5738
  PaginationNext,
5337
5739
  {
5338
5740
  href: "#",
@@ -5347,15 +5749,15 @@ function Pagination2({
5347
5749
  }
5348
5750
 
5349
5751
  // src/components/components/Popover/index.tsx
5350
- var import_runtime14 = require("@pactor-app/runtime");
5351
- var import_jsx_runtime91 = require("react/jsx-runtime");
5752
+ var import_runtime15 = require("@pactor-app/runtime");
5753
+ var import_jsx_runtime92 = require("react/jsx-runtime");
5352
5754
  function isDslNode3(value) {
5353
5755
  return typeof value === "object" && value !== null && typeof value.type === "string";
5354
5756
  }
5355
5757
  function Popover2({ content, children, className, style }) {
5356
- const { renderChildren } = (0, import_runtime14.useRenderer)();
5357
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Popover, { children: [
5358
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
5758
+ const { renderChildren } = (0, import_runtime15.useRenderer)();
5759
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Popover, { children: [
5760
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5359
5761
  PopoverTrigger,
5360
5762
  {
5361
5763
  nativeButton: false,
@@ -5363,15 +5765,15 @@ function Popover2({ content, children, className, style }) {
5363
5765
  children
5364
5766
  }
5365
5767
  ),
5366
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
5768
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
5367
5769
  ] });
5368
5770
  }
5369
5771
 
5370
5772
  // src/ui/progress.tsx
5371
5773
  var import_progress = require("@base-ui/react/progress");
5372
- var import_jsx_runtime92 = require("react/jsx-runtime");
5774
+ var import_jsx_runtime93 = require("react/jsx-runtime");
5373
5775
  function Progress({ className, ...props }) {
5374
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5776
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5375
5777
  import_progress.Progress.Root,
5376
5778
  {
5377
5779
  "data-slot": "progress",
@@ -5381,7 +5783,7 @@ function Progress({ className, ...props }) {
5381
5783
  );
5382
5784
  }
5383
5785
  function ProgressTrack({ className, ...props }) {
5384
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5786
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5385
5787
  import_progress.Progress.Track,
5386
5788
  {
5387
5789
  "data-slot": "progress-track",
@@ -5394,7 +5796,7 @@ function ProgressIndicator({
5394
5796
  className,
5395
5797
  ...props
5396
5798
  }) {
5397
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5799
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5398
5800
  import_progress.Progress.Indicator,
5399
5801
  {
5400
5802
  "data-slot": "progress-indicator",
@@ -5408,21 +5810,21 @@ function ProgressIndicator({
5408
5810
  }
5409
5811
 
5410
5812
  // src/components/components/Progress/index.tsx
5411
- var import_jsx_runtime93 = require("react/jsx-runtime");
5813
+ var import_jsx_runtime94 = require("react/jsx-runtime");
5412
5814
  function Progress2({ value, className, style }) {
5413
5815
  const resolved = typeof value === "number" && Number.isFinite(value) ? Math.min(100, Math.max(0, value)) : null;
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, {}) }) });
5816
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Progress, { value: resolved, className, style, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(ProgressIndicator, {}) }) });
5415
5817
  }
5416
5818
 
5417
5819
  // src/components/components/RadioGroup/index.tsx
5418
- var import_react19 = require("react");
5820
+ var import_react21 = require("react");
5419
5821
 
5420
5822
  // src/ui/radio-group.tsx
5421
5823
  var import_radio = require("@base-ui/react/radio");
5422
5824
  var import_radio_group = require("@base-ui/react/radio-group");
5423
- var import_jsx_runtime94 = require("react/jsx-runtime");
5825
+ var import_jsx_runtime95 = require("react/jsx-runtime");
5424
5826
  function RadioGroup({ className, ...props }) {
5425
- return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
5827
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5426
5828
  import_radio_group.RadioGroup,
5427
5829
  {
5428
5830
  "data-slot": "radio-group",
@@ -5432,7 +5834,7 @@ function RadioGroup({ className, ...props }) {
5432
5834
  );
5433
5835
  }
5434
5836
  function RadioGroupItem({ className, ...props }) {
5435
- return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
5837
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5436
5838
  import_radio.Radio.Root,
5437
5839
  {
5438
5840
  "data-slot": "radio-group-item",
@@ -5441,12 +5843,12 @@ function RadioGroupItem({ className, ...props }) {
5441
5843
  className
5442
5844
  ),
5443
5845
  ...props,
5444
- children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
5846
+ children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5445
5847
  import_radio.Radio.Indicator,
5446
5848
  {
5447
5849
  "data-slot": "radio-group-indicator",
5448
5850
  className: "flex items-center justify-center",
5449
- children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
5851
+ children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
5450
5852
  }
5451
5853
  )
5452
5854
  }
@@ -5454,7 +5856,7 @@ function RadioGroupItem({ className, ...props }) {
5454
5856
  }
5455
5857
 
5456
5858
  // src/components/components/Form/form-item.tsx
5457
- var import_jsx_runtime95 = require("react/jsx-runtime");
5859
+ var import_jsx_runtime96 = require("react/jsx-runtime");
5458
5860
  function FieldShell({
5459
5861
  layout,
5460
5862
  label,
@@ -5464,14 +5866,14 @@ function FieldShell({
5464
5866
  style,
5465
5867
  children
5466
5868
  }) {
5467
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
5869
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
5468
5870
  "div",
5469
5871
  {
5470
5872
  "data-slot": "form-item",
5471
5873
  className: cn(formItemClass(layout), className),
5472
5874
  style,
5473
5875
  children: [
5474
- label ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5876
+ label ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5475
5877
  "label",
5476
5878
  {
5477
5879
  htmlFor,
@@ -5480,14 +5882,14 @@ function FieldShell({
5480
5882
  }
5481
5883
  ) : null,
5482
5884
  children,
5483
- error ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5885
+ error ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5484
5886
  ]
5485
5887
  }
5486
5888
  );
5487
5889
  }
5488
5890
 
5489
5891
  // src/components/components/RadioGroup/index.tsx
5490
- var import_jsx_runtime96 = require("react/jsx-runtime");
5892
+ var import_jsx_runtime97 = require("react/jsx-runtime");
5491
5893
  function RadioGroup2({
5492
5894
  name,
5493
5895
  label,
@@ -5500,9 +5902,9 @@ function RadioGroup2({
5500
5902
  style
5501
5903
  }) {
5502
5904
  const form = useFormContext();
5503
- const controlId = (0, import_react19.useId)();
5905
+ const controlId = (0, import_react21.useId)();
5504
5906
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5505
- (0, import_react19.useEffect)(() => {
5907
+ (0, import_react21.useEffect)(() => {
5506
5908
  if (inForm && form && name) {
5507
5909
  form.registerField(name, rules, value);
5508
5910
  return () => form.unregisterField(name);
@@ -5517,7 +5919,7 @@ function RadioGroup2({
5517
5919
  onChange?.(next);
5518
5920
  };
5519
5921
  const groupValue = current ?? "";
5520
- const group = /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5922
+ const group = /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5521
5923
  RadioGroup,
5522
5924
  {
5523
5925
  value: groupValue,
@@ -5528,8 +5930,8 @@ function RadioGroup2({
5528
5930
  style: inForm ? void 0 : style,
5529
5931
  children: options.map((option, index) => {
5530
5932
  const optionId = `${controlId}-${index}`;
5531
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
5532
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5933
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
5934
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5533
5935
  RadioGroupItem,
5534
5936
  {
5535
5937
  id: optionId,
@@ -5537,13 +5939,13 @@ function RadioGroup2({
5537
5939
  disabled: option.disabled
5538
5940
  }
5539
5941
  ),
5540
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
5942
+ /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
5541
5943
  ] }, String(option.value));
5542
5944
  })
5543
5945
  }
5544
5946
  );
5545
5947
  if (inForm && form && name) {
5546
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5948
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5547
5949
  FieldShell,
5548
5950
  {
5549
5951
  layout: form.layout,
@@ -5559,18 +5961,18 @@ function RadioGroup2({
5559
5961
  }
5560
5962
 
5561
5963
  // src/components/components/Resizable/index.tsx
5562
- var import_runtime15 = require("@pactor-app/runtime");
5563
- var import_react20 = require("react");
5964
+ var import_runtime16 = require("@pactor-app/runtime");
5965
+ var import_react22 = require("react");
5564
5966
 
5565
5967
  // src/ui/resizable.tsx
5566
- var import_lucide_react21 = require("lucide-react");
5968
+ var import_lucide_react22 = require("lucide-react");
5567
5969
  var import_react_resizable_panels = require("react-resizable-panels");
5568
- var import_jsx_runtime97 = require("react/jsx-runtime");
5970
+ var import_jsx_runtime98 = require("react/jsx-runtime");
5569
5971
  function PanelGroup({
5570
5972
  className,
5571
5973
  ...props
5572
5974
  }) {
5573
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5975
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5574
5976
  import_react_resizable_panels.Group,
5575
5977
  {
5576
5978
  "data-slot": "resizable-panel-group",
@@ -5583,14 +5985,14 @@ function PanelGroup({
5583
5985
  );
5584
5986
  }
5585
5987
  function Panel({ ...props }) {
5586
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
5988
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
5587
5989
  }
5588
5990
  function ResizableHandle({
5589
5991
  withHandle,
5590
5992
  className,
5591
5993
  ...props
5592
5994
  }) {
5593
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
5995
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
5594
5996
  import_react_resizable_panels.Separator,
5595
5997
  {
5596
5998
  "data-slot": "resizable-handle",
@@ -5599,23 +6001,23 @@ function ResizableHandle({
5599
6001
  className
5600
6002
  ),
5601
6003
  ...props,
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
6004
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime98.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_runtime98.jsx)(import_lucide_react22.GripVerticalIcon, { className: "size-2.5" }) }) : null
5603
6005
  }
5604
6006
  );
5605
6007
  }
5606
6008
 
5607
6009
  // src/components/components/Resizable/index.tsx
5608
- var import_jsx_runtime98 = require("react/jsx-runtime");
6010
+ var import_jsx_runtime99 = require("react/jsx-runtime");
5609
6011
  function Resizable({
5610
6012
  panels = [],
5611
6013
  direction = "horizontal",
5612
6014
  className,
5613
6015
  style
5614
6016
  }) {
5615
- const { renderChildren } = (0, import_runtime15.useRenderer)();
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)(
6017
+ const { renderChildren } = (0, import_runtime16.useRenderer)();
6018
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react22.Fragment, { children: [
6019
+ index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ResizableHandle, { withHandle: true }) : null,
6020
+ /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5619
6021
  Panel,
5620
6022
  {
5621
6023
  defaultSize: typeof panel.defaultSizePx === "number" ? `${panel.defaultSizePx}px` : typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
@@ -5629,20 +6031,20 @@ function Resizable({
5629
6031
 
5630
6032
  // src/ui/scroll-area.tsx
5631
6033
  var import_scroll_area = require("@base-ui/react/scroll-area");
5632
- var import_jsx_runtime99 = require("react/jsx-runtime");
6034
+ var import_jsx_runtime100 = require("react/jsx-runtime");
5633
6035
  function ScrollArea({
5634
6036
  className,
5635
6037
  children,
5636
6038
  ...props
5637
6039
  }) {
5638
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
6040
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
5639
6041
  import_scroll_area.ScrollArea.Root,
5640
6042
  {
5641
6043
  "data-slot": "scroll-area",
5642
6044
  className: cn("relative overflow-hidden", className),
5643
6045
  ...props,
5644
6046
  children: [
5645
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6047
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
5646
6048
  import_scroll_area.ScrollArea.Viewport,
5647
6049
  {
5648
6050
  "data-slot": "scroll-area-viewport",
@@ -5650,8 +6052,8 @@ function ScrollArea({
5650
6052
  children
5651
6053
  }
5652
6054
  ),
5653
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ScrollBar, {}),
5654
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_scroll_area.ScrollArea.Corner, {})
6055
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(ScrollBar, {}),
6056
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_scroll_area.ScrollArea.Corner, {})
5655
6057
  ]
5656
6058
  }
5657
6059
  );
@@ -5661,7 +6063,7 @@ function ScrollBar({
5661
6063
  orientation = "vertical",
5662
6064
  ...props
5663
6065
  }) {
5664
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6066
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
5665
6067
  import_scroll_area.ScrollArea.Scrollbar,
5666
6068
  {
5667
6069
  "data-slot": "scroll-area-scrollbar",
@@ -5673,7 +6075,7 @@ function ScrollBar({
5673
6075
  className
5674
6076
  ),
5675
6077
  ...props,
5676
- children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6078
+ children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
5677
6079
  import_scroll_area.ScrollArea.Thumb,
5678
6080
  {
5679
6081
  "data-slot": "scroll-area-thumb",
@@ -5685,7 +6087,7 @@ function ScrollBar({
5685
6087
  }
5686
6088
 
5687
6089
  // src/components/components/ScrollArea/index.tsx
5688
- var import_jsx_runtime100 = require("react/jsx-runtime");
6090
+ var import_jsx_runtime101 = require("react/jsx-runtime");
5689
6091
  function ScrollArea2({
5690
6092
  maxHeight,
5691
6093
  maxWidth,
@@ -5693,7 +6095,7 @@ function ScrollArea2({
5693
6095
  style,
5694
6096
  children
5695
6097
  }) {
5696
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6098
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5697
6099
  ScrollArea,
5698
6100
  {
5699
6101
  className,
@@ -5704,18 +6106,18 @@ function ScrollArea2({
5704
6106
  }
5705
6107
 
5706
6108
  // src/components/components/Select/index.tsx
5707
- var import_runtime16 = require("@pactor-app/runtime");
5708
- var import_react21 = require("react");
6109
+ var import_runtime17 = require("@pactor-app/runtime");
6110
+ var import_react23 = require("react");
5709
6111
 
5710
6112
  // src/ui/select.tsx
5711
6113
  var import_select = require("@base-ui/react/select");
5712
- var import_lucide_react22 = require("lucide-react");
5713
- var import_jsx_runtime101 = require("react/jsx-runtime");
6114
+ var import_lucide_react23 = require("lucide-react");
6115
+ var import_jsx_runtime102 = require("react/jsx-runtime");
5714
6116
  var Select = import_select.Select.Root;
5715
6117
  function SelectValue({
5716
6118
  ...props
5717
6119
  }) {
5718
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
6120
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
5719
6121
  }
5720
6122
  function SelectTrigger({
5721
6123
  className,
@@ -5723,7 +6125,7 @@ function SelectTrigger({
5723
6125
  children,
5724
6126
  ...props
5725
6127
  }) {
5726
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
6128
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5727
6129
  import_select.Select.Trigger,
5728
6130
  {
5729
6131
  "data-slot": "select-trigger",
@@ -5735,10 +6137,10 @@ function SelectTrigger({
5735
6137
  ...props,
5736
6138
  children: [
5737
6139
  children,
5738
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6140
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5739
6141
  import_select.Select.Icon,
5740
6142
  {
5741
- render: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4 opacity-50" })
6143
+ render: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronDownIcon, { className: "size-4 opacity-50" })
5742
6144
  }
5743
6145
  )
5744
6146
  ]
@@ -5754,7 +6156,7 @@ function SelectContent({
5754
6156
  alignItemWithTrigger = false,
5755
6157
  ...props
5756
6158
  }) {
5757
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6159
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5758
6160
  import_select.Select.Positioner,
5759
6161
  {
5760
6162
  side,
@@ -5762,7 +6164,7 @@ function SelectContent({
5762
6164
  align,
5763
6165
  alignItemWithTrigger,
5764
6166
  className: "isolate z-50",
5765
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
6167
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5766
6168
  import_select.Select.Popup,
5767
6169
  {
5768
6170
  "data-slot": "select-content",
@@ -5772,9 +6174,9 @@ function SelectContent({
5772
6174
  ),
5773
6175
  ...props,
5774
6176
  children: [
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, {})
6177
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectScrollUpButton, {}),
6178
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.List, { className: "p-1", children }),
6179
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectScrollDownButton, {})
5778
6180
  ]
5779
6181
  }
5780
6182
  )
@@ -5786,7 +6188,7 @@ function SelectItem({
5786
6188
  children,
5787
6189
  ...props
5788
6190
  }) {
5789
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
6191
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
5790
6192
  import_select.Select.Item,
5791
6193
  {
5792
6194
  "data-slot": "select-item",
@@ -5796,8 +6198,8 @@ function SelectItem({
5796
6198
  ),
5797
6199
  ...props,
5798
6200
  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 })
6201
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.CheckIcon, { className: "size-4" }) }) }),
6202
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.ItemText, { children })
5801
6203
  ]
5802
6204
  }
5803
6205
  );
@@ -5806,7 +6208,7 @@ function SelectScrollUpButton({
5806
6208
  className,
5807
6209
  ...props
5808
6210
  }) {
5809
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6211
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5810
6212
  import_select.Select.ScrollUpArrow,
5811
6213
  {
5812
6214
  "data-slot": "select-scroll-up-button",
@@ -5815,7 +6217,7 @@ function SelectScrollUpButton({
5815
6217
  className
5816
6218
  ),
5817
6219
  ...props,
5818
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronUpIcon, { className: "size-4" })
6220
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronUpIcon, { className: "size-4" })
5819
6221
  }
5820
6222
  );
5821
6223
  }
@@ -5823,7 +6225,7 @@ function SelectScrollDownButton({
5823
6225
  className,
5824
6226
  ...props
5825
6227
  }) {
5826
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6228
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
5827
6229
  import_select.Select.ScrollDownArrow,
5828
6230
  {
5829
6231
  "data-slot": "select-scroll-down-button",
@@ -5832,13 +6234,13 @@ function SelectScrollDownButton({
5832
6234
  className
5833
6235
  ),
5834
6236
  ...props,
5835
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4" })
6237
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronDownIcon, { className: "size-4" })
5836
6238
  }
5837
6239
  );
5838
6240
  }
5839
6241
 
5840
6242
  // src/components/components/Select/index.tsx
5841
- var import_jsx_runtime102 = require("react/jsx-runtime");
6243
+ var import_jsx_runtime103 = require("react/jsx-runtime");
5842
6244
  function Select2({
5843
6245
  name,
5844
6246
  label,
@@ -5853,10 +6255,10 @@ function Select2({
5853
6255
  style
5854
6256
  }) {
5855
6257
  const form = useFormContext();
5856
- const { t } = (0, import_runtime16.useI18n)();
5857
- const controlId = (0, import_react21.useId)();
6258
+ const { t } = (0, import_runtime17.useI18n)();
6259
+ const controlId = (0, import_react23.useId)();
5858
6260
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5859
- (0, import_react21.useEffect)(() => {
6261
+ (0, import_react23.useEffect)(() => {
5860
6262
  if (inForm && form && name) {
5861
6263
  form.registerField(name, rules, value);
5862
6264
  return () => form.unregisterField(name);
@@ -5872,13 +6274,13 @@ function Select2({
5872
6274
  onChange?.(next ?? void 0);
5873
6275
  };
5874
6276
  const inFormRoot = inForm === true;
5875
- const select = /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6277
+ const select = /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
5876
6278
  "span",
5877
6279
  {
5878
6280
  className: cn("inline-flex items-center gap-1", !inFormRoot && className),
5879
6281
  style: inFormRoot ? void 0 : style,
5880
6282
  children: [
5881
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6283
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
5882
6284
  Select,
5883
6285
  {
5884
6286
  items: options,
@@ -5887,8 +6289,8 @@ function Select2({
5887
6289
  disabled,
5888
6290
  name: inForm ? name : void 0,
5889
6291
  children: [
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)(
6292
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectTrigger, { id: controlId, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectValue, { placeholder }) }),
6293
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
5892
6294
  SelectItem,
5893
6295
  {
5894
6296
  value: option.value,
@@ -5900,7 +6302,7 @@ function Select2({
5900
6302
  ]
5901
6303
  }
5902
6304
  ),
5903
- allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6305
+ allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
5904
6306
  "button",
5905
6307
  {
5906
6308
  type: "button",
@@ -5920,14 +6322,14 @@ function Select2({
5920
6322
  );
5921
6323
  if (inForm && form && name) {
5922
6324
  const error = form.errors[name];
5923
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6325
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
5924
6326
  "div",
5925
6327
  {
5926
6328
  "data-slot": "form-item",
5927
6329
  className: cn(formItemClass(form.layout), className),
5928
6330
  style,
5929
6331
  children: [
5930
- label ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6332
+ label ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
5931
6333
  "label",
5932
6334
  {
5933
6335
  htmlFor: controlId,
@@ -5936,7 +6338,7 @@ function Select2({
5936
6338
  }
5937
6339
  ) : null,
5938
6340
  select,
5939
- error ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
6341
+ error ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5940
6342
  ]
5941
6343
  }
5942
6344
  );
@@ -5945,13 +6347,13 @@ function Select2({
5945
6347
  }
5946
6348
 
5947
6349
  // src/components/components/Separator/index.tsx
5948
- var import_jsx_runtime103 = require("react/jsx-runtime");
6350
+ var import_jsx_runtime104 = require("react/jsx-runtime");
5949
6351
  function Separator2({ orientation = "horizontal", className, style }) {
5950
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Separator, { orientation, className, style });
6352
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(Separator, { orientation, className, style });
5951
6353
  }
5952
6354
 
5953
6355
  // src/components/components/Sheet/index.tsx
5954
- var import_jsx_runtime104 = require("react/jsx-runtime");
6356
+ var import_jsx_runtime105 = require("react/jsx-runtime");
5955
6357
  function Sheet2({
5956
6358
  title,
5957
6359
  open,
@@ -5961,7 +6363,7 @@ function Sheet2({
5961
6363
  className,
5962
6364
  style
5963
6365
  }) {
5964
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
6366
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
5965
6367
  Sheet,
5966
6368
  {
5967
6369
  open: open ?? false,
@@ -5970,17 +6372,17 @@ function Sheet2({
5970
6372
  onClose?.();
5971
6373
  }
5972
6374
  },
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 })
6375
+ children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(SheetContent, { side, className, style, children: [
6376
+ title ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SheetTitle, { children: title }) }) : null,
6377
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
5976
6378
  ] })
5977
6379
  }
5978
6380
  );
5979
6381
  }
5980
6382
 
5981
6383
  // src/components/components/Sider/index.tsx
5982
- var import_lucide_react23 = require("lucide-react");
5983
- var import_jsx_runtime105 = require("react/jsx-runtime");
6384
+ var import_lucide_react24 = require("lucide-react");
6385
+ var import_jsx_runtime106 = require("react/jsx-runtime");
5984
6386
  function Sider({
5985
6387
  width = 200,
5986
6388
  collapsible,
@@ -5992,7 +6394,7 @@ function Sider({
5992
6394
  children
5993
6395
  }) {
5994
6396
  const current = collapsed ? collapsedWidth : width;
5995
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
6397
+ return /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
5996
6398
  "aside",
5997
6399
  {
5998
6400
  "data-slot": "layout-sider",
@@ -6003,15 +6405,15 @@ function Sider({
6003
6405
  ),
6004
6406
  style: { width: current, ...style },
6005
6407
  children: [
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)(
6408
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
6409
+ collapsible ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6008
6410
  "button",
6009
6411
  {
6010
6412
  type: "button",
6011
6413
  "aria-label": collapsed ? "expand sider" : "collapse sider",
6012
6414
  className: "flex h-10 shrink-0 items-center justify-center border-t text-muted-foreground hover:text-foreground",
6013
6415
  onClick: () => onCollapse?.(!collapsed),
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" })
6416
+ children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react24.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react24.ChevronLeft, { "aria-hidden": true, className: "size-4" })
6015
6417
  }
6016
6418
  ) : null
6017
6419
  ]
@@ -6020,7 +6422,7 @@ function Sider({
6020
6422
  }
6021
6423
 
6022
6424
  // src/components/components/Skeleton/index.tsx
6023
- var import_jsx_runtime106 = require("react/jsx-runtime");
6425
+ var import_jsx_runtime107 = require("react/jsx-runtime");
6024
6426
  var shapeDefaults = {
6025
6427
  line: { className: "h-4 w-full", style: {} },
6026
6428
  circle: { className: "rounded-full", style: { width: 40, height: 40 } },
@@ -6031,7 +6433,7 @@ function toSize(value) {
6031
6433
  }
6032
6434
  function Skeleton2({ shape = "line", width, height, className, style }) {
6033
6435
  const defaults = shapeDefaults[shape];
6034
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6436
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6035
6437
  Skeleton,
6036
6438
  {
6037
6439
  className: cn(defaults.className, className),
@@ -6046,13 +6448,13 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
6046
6448
  }
6047
6449
 
6048
6450
  // src/components/components/Slider/index.tsx
6049
- var import_react22 = require("react");
6451
+ var import_react24 = require("react");
6050
6452
 
6051
6453
  // src/ui/slider.tsx
6052
6454
  var import_slider = require("@base-ui/react/slider");
6053
- var import_jsx_runtime107 = require("react/jsx-runtime");
6455
+ var import_jsx_runtime108 = require("react/jsx-runtime");
6054
6456
  function Slider({ className, ...props }) {
6055
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6457
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6056
6458
  import_slider.Slider.Root,
6057
6459
  {
6058
6460
  "data-slot": "slider",
@@ -6065,7 +6467,7 @@ function Slider({ className, ...props }) {
6065
6467
  );
6066
6468
  }
6067
6469
  function SliderControl({ className, ...props }) {
6068
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6470
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6069
6471
  import_slider.Slider.Control,
6070
6472
  {
6071
6473
  "data-slot": "slider-control",
@@ -6075,7 +6477,7 @@ function SliderControl({ className, ...props }) {
6075
6477
  );
6076
6478
  }
6077
6479
  function SliderTrack({ className, ...props }) {
6078
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6480
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6079
6481
  import_slider.Slider.Track,
6080
6482
  {
6081
6483
  "data-slot": "slider-track",
@@ -6088,7 +6490,7 @@ function SliderTrack({ className, ...props }) {
6088
6490
  );
6089
6491
  }
6090
6492
  function SliderIndicator({ className, ...props }) {
6091
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6493
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6092
6494
  import_slider.Slider.Indicator,
6093
6495
  {
6094
6496
  "data-slot": "slider-indicator",
@@ -6098,7 +6500,7 @@ function SliderIndicator({ className, ...props }) {
6098
6500
  );
6099
6501
  }
6100
6502
  function SliderThumb({ className, ...props }) {
6101
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6503
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6102
6504
  import_slider.Slider.Thumb,
6103
6505
  {
6104
6506
  "data-slot": "slider-thumb",
@@ -6112,7 +6514,7 @@ function SliderThumb({ className, ...props }) {
6112
6514
  }
6113
6515
 
6114
6516
  // src/components/components/Slider/index.tsx
6115
- var import_jsx_runtime108 = require("react/jsx-runtime");
6517
+ var import_jsx_runtime109 = require("react/jsx-runtime");
6116
6518
  function Slider2({
6117
6519
  name,
6118
6520
  label,
@@ -6128,7 +6530,7 @@ function Slider2({
6128
6530
  }) {
6129
6531
  const form = useFormContext();
6130
6532
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6131
- (0, import_react22.useEffect)(() => {
6533
+ (0, import_react24.useEffect)(() => {
6132
6534
  if (inForm && form && name) {
6133
6535
  form.registerField(name, rules, value);
6134
6536
  return () => form.unregisterField(name);
@@ -6143,7 +6545,7 @@ function Slider2({
6143
6545
  }
6144
6546
  onChange?.(next);
6145
6547
  };
6146
- const slider = /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6548
+ const slider = /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6147
6549
  Slider,
6148
6550
  {
6149
6551
  value: numberValue,
@@ -6155,14 +6557,14 @@ function Slider2({
6155
6557
  onValueChange: handleChange,
6156
6558
  className: inForm ? void 0 : className,
6157
6559
  style: inForm ? void 0 : style,
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, {})
6560
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(SliderControl, { children: [
6561
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderIndicator, {}) }),
6562
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderThumb, {})
6161
6563
  ] })
6162
6564
  }
6163
6565
  );
6164
6566
  if (inForm && form && name) {
6165
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6567
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6166
6568
  FieldShell,
6167
6569
  {
6168
6570
  layout: form.layout,
@@ -6178,13 +6580,13 @@ function Slider2({
6178
6580
  }
6179
6581
 
6180
6582
  // src/components/components/Sonner/index.tsx
6181
- var import_runtime17 = require("@pactor-app/runtime");
6182
- var import_react23 = require("react");
6583
+ var import_runtime18 = require("@pactor-app/runtime");
6584
+ var import_react25 = require("react");
6183
6585
 
6184
6586
  // src/ui/toast.tsx
6185
6587
  var import_toast = require("@base-ui/react/toast");
6186
- var import_lucide_react24 = require("lucide-react");
6187
- var import_jsx_runtime109 = require("react/jsx-runtime");
6588
+ var import_lucide_react25 = require("lucide-react");
6589
+ var import_jsx_runtime110 = require("react/jsx-runtime");
6188
6590
  var toastManager = import_toast.Toast.createToastManager();
6189
6591
  function toast(message, options = {}) {
6190
6592
  return toastManager.add({
@@ -6200,7 +6602,7 @@ var toastVariantClass = {
6200
6602
  };
6201
6603
  function ToasterViewport({ className }) {
6202
6604
  const { toasts } = import_toast.Toast.useToastManager();
6203
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6605
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6204
6606
  import_toast.Toast.Viewport,
6205
6607
  {
6206
6608
  "data-slot": "toast-viewport",
@@ -6208,7 +6610,7 @@ function ToasterViewport({ className }) {
6208
6610
  "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
6209
6611
  className
6210
6612
  ),
6211
- children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6613
+ children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6212
6614
  import_toast.Toast.Root,
6213
6615
  {
6214
6616
  toast: item,
@@ -6218,16 +6620,16 @@ function ToasterViewport({ className }) {
6218
6620
  "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",
6219
6621
  toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
6220
6622
  ),
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)(
6623
+ children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
6624
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "grid gap-0.5", children: [
6625
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6224
6626
  import_toast.Toast.Title,
6225
6627
  {
6226
6628
  "data-slot": "toast-title",
6227
6629
  className: "font-medium"
6228
6630
  }
6229
6631
  ),
6230
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6632
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6231
6633
  import_toast.Toast.Description,
6232
6634
  {
6233
6635
  "data-slot": "toast-description",
@@ -6235,13 +6637,13 @@ function ToasterViewport({ className }) {
6235
6637
  }
6236
6638
  )
6237
6639
  ] }),
6238
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6640
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6239
6641
  import_toast.Toast.Close,
6240
6642
  {
6241
6643
  "data-slot": "toast-close",
6242
6644
  "aria-label": "Close",
6243
6645
  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",
6244
- children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_lucide_react24.XIcon, {})
6646
+ children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react25.XIcon, {})
6245
6647
  }
6246
6648
  )
6247
6649
  ] })
@@ -6252,14 +6654,14 @@ function ToasterViewport({ className }) {
6252
6654
  ) });
6253
6655
  }
6254
6656
  function Toaster({ className }) {
6255
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(ToasterViewport, { className }) });
6657
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(ToasterViewport, { className }) });
6256
6658
  }
6257
6659
 
6258
6660
  // src/components/components/Sonner/index.tsx
6259
- var import_jsx_runtime110 = require("react/jsx-runtime");
6661
+ var import_jsx_runtime111 = require("react/jsx-runtime");
6260
6662
  function Sonner({ className, style }) {
6261
- const { context } = (0, import_runtime17.useRenderer)();
6262
- (0, import_react23.useEffect)(() => {
6663
+ const { context } = (0, import_runtime18.useRenderer)();
6664
+ (0, import_react25.useEffect)(() => {
6263
6665
  const { actions } = context;
6264
6666
  if (actions.has("toast")) {
6265
6667
  return;
@@ -6273,15 +6675,15 @@ function Sonner({ className, style }) {
6273
6675
  return { ok: true };
6274
6676
  });
6275
6677
  }, [context]);
6276
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Toaster, {}) });
6678
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Toaster, {}) });
6277
6679
  }
6278
6680
 
6279
6681
  // src/ui/spinner.tsx
6280
- var import_lucide_react25 = require("lucide-react");
6281
- var import_jsx_runtime111 = require("react/jsx-runtime");
6682
+ var import_lucide_react26 = require("lucide-react");
6683
+ var import_jsx_runtime112 = require("react/jsx-runtime");
6282
6684
  function Spinner({ className, ...props }) {
6283
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6284
- import_lucide_react25.Loader2Icon,
6685
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
6686
+ import_lucide_react26.Loader2Icon,
6285
6687
  {
6286
6688
  role: "status",
6287
6689
  "aria-label": "Loading",
@@ -6293,37 +6695,37 @@ function Spinner({ className, ...props }) {
6293
6695
  }
6294
6696
 
6295
6697
  // src/components/components/Spinner/index.tsx
6296
- var import_jsx_runtime112 = require("react/jsx-runtime");
6698
+ var import_jsx_runtime113 = require("react/jsx-runtime");
6297
6699
  var sizeClass = {
6298
6700
  sm: "size-3",
6299
6701
  default: "size-4",
6300
6702
  lg: "size-6"
6301
6703
  };
6302
6704
  function Spinner2({ size = "default", className, style }) {
6303
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
6705
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
6304
6706
  }
6305
6707
 
6306
6708
  // src/components/components/Statistic/index.tsx
6307
- var import_jsx_runtime113 = require("react/jsx-runtime");
6709
+ var import_jsx_runtime114 = require("react/jsx-runtime");
6308
6710
  function Statistic({ title, value, precision, suffix, className, style }) {
6309
6711
  const display = typeof value === "number" && precision !== void 0 ? value.toFixed(precision) : value;
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: [
6712
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
6713
+ title ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
6714
+ /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
6313
6715
  display,
6314
- suffix ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
6716
+ suffix ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
6315
6717
  ] })
6316
6718
  ] });
6317
6719
  }
6318
6720
 
6319
6721
  // src/components/components/Switch/index.tsx
6320
- var import_react24 = require("react");
6722
+ var import_react26 = require("react");
6321
6723
 
6322
6724
  // src/ui/switch.tsx
6323
6725
  var import_switch = require("@base-ui/react/switch");
6324
- var import_jsx_runtime114 = require("react/jsx-runtime");
6726
+ var import_jsx_runtime115 = require("react/jsx-runtime");
6325
6727
  function Switch({ className, ...props }) {
6326
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
6728
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6327
6729
  import_switch.Switch.Root,
6328
6730
  {
6329
6731
  "data-slot": "switch",
@@ -6332,7 +6734,7 @@ function Switch({ className, ...props }) {
6332
6734
  className
6333
6735
  ),
6334
6736
  ...props,
6335
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
6737
+ children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6336
6738
  import_switch.Switch.Thumb,
6337
6739
  {
6338
6740
  "data-slot": "switch-thumb",
@@ -6344,7 +6746,7 @@ function Switch({ className, ...props }) {
6344
6746
  }
6345
6747
 
6346
6748
  // src/components/components/Switch/index.tsx
6347
- var import_jsx_runtime115 = require("react/jsx-runtime");
6749
+ var import_jsx_runtime116 = require("react/jsx-runtime");
6348
6750
  function Switch2({
6349
6751
  name,
6350
6752
  label,
@@ -6356,9 +6758,9 @@ function Switch2({
6356
6758
  style
6357
6759
  }) {
6358
6760
  const form = useFormContext();
6359
- const controlId = (0, import_react24.useId)();
6761
+ const controlId = (0, import_react26.useId)();
6360
6762
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6361
- (0, import_react24.useEffect)(() => {
6763
+ (0, import_react26.useEffect)(() => {
6362
6764
  if (inForm && form && name) {
6363
6765
  form.registerField(name, rules, value);
6364
6766
  return () => form.unregisterField(name);
@@ -6373,13 +6775,13 @@ function Switch2({
6373
6775
  }
6374
6776
  onChange?.(next);
6375
6777
  };
6376
- const control = /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
6778
+ const control = /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
6377
6779
  "span",
6378
6780
  {
6379
6781
  className: cn("inline-flex items-center gap-2", !inForm && className),
6380
6782
  style: inForm ? void 0 : style,
6381
6783
  children: [
6382
- /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
6784
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6383
6785
  Switch,
6384
6786
  {
6385
6787
  id: controlId,
@@ -6389,12 +6791,12 @@ function Switch2({
6389
6791
  onCheckedChange: handleChange
6390
6792
  }
6391
6793
  ),
6392
- label ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
6794
+ label ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
6393
6795
  ]
6394
6796
  }
6395
6797
  );
6396
6798
  if (inForm && form && name) {
6397
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
6799
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
6398
6800
  "div",
6399
6801
  {
6400
6802
  "data-slot": "form-item",
@@ -6402,7 +6804,7 @@ function Switch2({
6402
6804
  style,
6403
6805
  children: [
6404
6806
  control,
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
6807
+ form.errors[name] ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
6406
6808
  ]
6407
6809
  }
6408
6810
  );
@@ -6411,9 +6813,9 @@ function Switch2({
6411
6813
  }
6412
6814
 
6413
6815
  // src/components/components/Table/index.tsx
6414
- var import_runtime18 = require("@pactor-app/runtime");
6415
- var import_react25 = require("react");
6416
- var import_jsx_runtime116 = require("react/jsx-runtime");
6816
+ var import_runtime19 = require("@pactor-app/runtime");
6817
+ var import_react27 = require("react");
6818
+ var import_jsx_runtime117 = require("react/jsx-runtime");
6417
6819
  function renderCellValue2(value) {
6418
6820
  if (value === void 0 || value === null) {
6419
6821
  return "";
@@ -6433,9 +6835,9 @@ function Table3({
6433
6835
  className,
6434
6836
  style
6435
6837
  }) {
6436
- const { renderChildren } = (0, import_runtime18.useRenderer)();
6437
- const { t } = (0, import_runtime18.useI18n)();
6438
- const [current, setCurrent] = (0, import_react25.useState)(1);
6838
+ const { renderChildren } = (0, import_runtime19.useRenderer)();
6839
+ const { t } = (0, import_runtime19.useI18n)();
6840
+ const [current, setCurrent] = (0, import_react27.useState)(1);
6439
6841
  const pageSize = pagination === false ? void 0 : pagination?.pageSize;
6440
6842
  const total = dataSource.length;
6441
6843
  const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
@@ -6444,8 +6846,8 @@ function Table3({
6444
6846
  setCurrent(page);
6445
6847
  onChange?.({ current: page, pageSize, total });
6446
6848
  };
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)(
6849
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
6850
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6449
6851
  "div",
6450
6852
  {
6451
6853
  "data-slot": "table-loading",
@@ -6453,8 +6855,8 @@ function Table3({
6453
6855
  children: t("pactor.table.loading")
6454
6856
  }
6455
6857
  ) : null,
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)(
6858
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Table2, { children: [
6859
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6458
6860
  TableHead,
6459
6861
  {
6460
6862
  style: column.width !== void 0 ? { width: column.width } : void 0,
@@ -6462,7 +6864,7 @@ function Table3({
6462
6864
  },
6463
6865
  column.dataIndex ?? String(index)
6464
6866
  )) }) }),
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)(
6867
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6466
6868
  "div",
6467
6869
  {
6468
6870
  "data-slot": "table-empty",
@@ -6471,10 +6873,10 @@ function Table3({
6471
6873
  }
6472
6874
  ) }) }) : pageRows.map((row, rowIndex) => {
6473
6875
  const key = row[rowKey];
6474
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6876
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6475
6877
  TableRow,
6476
6878
  {
6477
- children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
6879
+ children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
6478
6880
  column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
6479
6881
  ) }, column.dataIndex ?? String(columnIndex)))
6480
6882
  },
@@ -6482,8 +6884,8 @@ function Table3({
6482
6884
  );
6483
6885
  }) })
6484
6886
  ] }),
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)(
6887
+ pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
6888
+ (page) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6487
6889
  Button,
6488
6890
  {
6489
6891
  type: "button",
@@ -6500,16 +6902,16 @@ function Table3({
6500
6902
  }
6501
6903
 
6502
6904
  // src/components/components/Tabs/index.tsx
6503
- var import_runtime19 = require("@pactor-app/runtime");
6905
+ var import_runtime20 = require("@pactor-app/runtime");
6504
6906
 
6505
6907
  // src/ui/tabs.tsx
6506
6908
  var import_tabs = require("@base-ui/react/tabs");
6507
- var import_jsx_runtime117 = require("react/jsx-runtime");
6909
+ var import_jsx_runtime118 = require("react/jsx-runtime");
6508
6910
  function Tabs({
6509
6911
  className,
6510
6912
  ...props
6511
6913
  }) {
6512
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6914
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
6513
6915
  import_tabs.Tabs.Root,
6514
6916
  {
6515
6917
  "data-slot": "tabs",
@@ -6522,7 +6924,7 @@ function TabsList({
6522
6924
  className,
6523
6925
  ...props
6524
6926
  }) {
6525
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6927
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
6526
6928
  import_tabs.Tabs.List,
6527
6929
  {
6528
6930
  "data-slot": "tabs-list",
@@ -6538,7 +6940,7 @@ function TabsTrigger({
6538
6940
  className,
6539
6941
  ...props
6540
6942
  }) {
6541
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6943
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
6542
6944
  import_tabs.Tabs.Tab,
6543
6945
  {
6544
6946
  "data-slot": "tabs-trigger",
@@ -6554,7 +6956,7 @@ function TabsContent({
6554
6956
  className,
6555
6957
  ...props
6556
6958
  }) {
6557
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
6959
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
6558
6960
  import_tabs.Tabs.Panel,
6559
6961
  {
6560
6962
  "data-slot": "tabs-content",
@@ -6565,10 +6967,10 @@ function TabsContent({
6565
6967
  }
6566
6968
 
6567
6969
  // src/components/components/Tabs/index.tsx
6568
- var import_jsx_runtime118 = require("react/jsx-runtime");
6970
+ var import_jsx_runtime119 = require("react/jsx-runtime");
6569
6971
  function Tabs2({ items = [], activeKey, onChange, className, style }) {
6570
- const { renderChildren } = (0, import_runtime19.useRenderer)();
6571
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
6972
+ const { renderChildren } = (0, import_runtime20.useRenderer)();
6973
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
6572
6974
  Tabs,
6573
6975
  {
6574
6976
  value: activeKey,
@@ -6577,15 +6979,15 @@ function Tabs2({ items = [], activeKey, onChange, className, style }) {
6577
6979
  className,
6578
6980
  style,
6579
6981
  children: [
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))
6982
+ /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsList, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
6983
+ items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
6582
6984
  ]
6583
6985
  }
6584
6986
  );
6585
6987
  }
6586
6988
 
6587
6989
  // src/components/components/Text/index.tsx
6588
- var import_jsx_runtime119 = require("react/jsx-runtime");
6990
+ var import_jsx_runtime120 = require("react/jsx-runtime");
6589
6991
  var typeClassMap = {
6590
6992
  default: "",
6591
6993
  secondary: "text-muted-foreground",
@@ -6604,7 +7006,7 @@ function Text({
6604
7006
  style,
6605
7007
  children
6606
7008
  }) {
6607
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7009
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
6608
7010
  "span",
6609
7011
  {
6610
7012
  "data-slot": "text",
@@ -6624,8 +7026,8 @@ function Text({
6624
7026
  }
6625
7027
 
6626
7028
  // src/components/components/Textarea/index.tsx
6627
- var import_react26 = require("react");
6628
- var import_jsx_runtime120 = require("react/jsx-runtime");
7029
+ var import_react28 = require("react");
7030
+ var import_jsx_runtime121 = require("react/jsx-runtime");
6629
7031
  function Textarea2({
6630
7032
  name,
6631
7033
  label,
@@ -6639,9 +7041,9 @@ function Textarea2({
6639
7041
  style
6640
7042
  }) {
6641
7043
  const form = useFormContext();
6642
- const controlId = (0, import_react26.useId)();
7044
+ const controlId = (0, import_react28.useId)();
6643
7045
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6644
- (0, import_react26.useEffect)(() => {
7046
+ (0, import_react28.useEffect)(() => {
6645
7047
  if (inForm && form && name) {
6646
7048
  form.registerField(name, rules, value);
6647
7049
  return () => form.unregisterField(name);
@@ -6650,7 +7052,7 @@ function Textarea2({
6650
7052
  });
6651
7053
  if (inForm && form && name) {
6652
7054
  const fieldValue = form.values[name];
6653
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
7055
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
6654
7056
  FieldShell,
6655
7057
  {
6656
7058
  layout: form.layout,
@@ -6659,7 +7061,7 @@ function Textarea2({
6659
7061
  error: form.errors[name],
6660
7062
  className,
6661
7063
  style,
6662
- children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
7064
+ children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
6663
7065
  Textarea,
6664
7066
  {
6665
7067
  id: controlId,
@@ -6676,7 +7078,7 @@ function Textarea2({
6676
7078
  }
6677
7079
  );
6678
7080
  }
6679
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
7081
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
6680
7082
  Textarea,
6681
7083
  {
6682
7084
  value: value ?? "",
@@ -6693,7 +7095,7 @@ function Textarea2({
6693
7095
  // src/ui/toggle.tsx
6694
7096
  var import_toggle = require("@base-ui/react/toggle");
6695
7097
  var import_class_variance_authority7 = require("class-variance-authority");
6696
- var import_jsx_runtime121 = require("react/jsx-runtime");
7098
+ var import_jsx_runtime122 = require("react/jsx-runtime");
6697
7099
  var toggleVariants = (0, import_class_variance_authority7.cva)(
6698
7100
  "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",
6699
7101
  {
@@ -6720,7 +7122,7 @@ function Toggle({
6720
7122
  size,
6721
7123
  ...props
6722
7124
  }) {
6723
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
7125
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
6724
7126
  import_toggle.Toggle,
6725
7127
  {
6726
7128
  "data-slot": "toggle",
@@ -6731,7 +7133,7 @@ function Toggle({
6731
7133
  }
6732
7134
 
6733
7135
  // src/components/components/Toggle/index.tsx
6734
- var import_jsx_runtime122 = require("react/jsx-runtime");
7136
+ var import_jsx_runtime123 = require("react/jsx-runtime");
6735
7137
  function Toggle2({
6736
7138
  text,
6737
7139
  pressed,
@@ -6742,7 +7144,7 @@ function Toggle2({
6742
7144
  className,
6743
7145
  style
6744
7146
  }) {
6745
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
7147
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
6746
7148
  Toggle,
6747
7149
  {
6748
7150
  pressed,
@@ -6761,7 +7163,7 @@ function Toggle2({
6761
7163
  var import_toggle3 = require("@base-ui/react/toggle");
6762
7164
  var import_toggle_group = require("@base-ui/react/toggle-group");
6763
7165
  var React5 = __toESM(require("react"), 1);
6764
- var import_jsx_runtime123 = require("react/jsx-runtime");
7166
+ var import_jsx_runtime124 = require("react/jsx-runtime");
6765
7167
  var ToggleGroupContext = React5.createContext({
6766
7168
  size: "default",
6767
7169
  variant: "default"
@@ -6773,18 +7175,18 @@ function ToggleGroup({
6773
7175
  children,
6774
7176
  ...props
6775
7177
  }) {
6776
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
7178
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
6777
7179
  import_toggle_group.ToggleGroup,
6778
7180
  {
6779
7181
  "data-slot": "toggle-group",
6780
7182
  "data-variant": variant,
6781
7183
  "data-size": size,
6782
7184
  className: cn(
6783
- "group/toggle-group flex w-fit items-center rounded-md [&>[data-slot=toggle]]:rounded-none [&>[data-slot=toggle]]:first:rounded-l-md [&>[data-slot=toggle]]:last:rounded-r-md",
7185
+ "group/toggle-group flex w-fit items-center gap-1 rounded-md",
6784
7186
  className
6785
7187
  ),
6786
7188
  ...props,
6787
- children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
7189
+ children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
6788
7190
  }
6789
7191
  );
6790
7192
  }
@@ -6796,7 +7198,7 @@ function ToggleGroupItem({
6796
7198
  ...props
6797
7199
  }) {
6798
7200
  const context = React5.useContext(ToggleGroupContext);
6799
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
7201
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
6800
7202
  import_toggle3.Toggle,
6801
7203
  {
6802
7204
  "data-slot": "toggle-group-item",
@@ -6817,7 +7219,7 @@ function ToggleGroupItem({
6817
7219
  }
6818
7220
 
6819
7221
  // src/components/components/ToggleGroup/index.tsx
6820
- var import_jsx_runtime124 = require("react/jsx-runtime");
7222
+ var import_jsx_runtime125 = require("react/jsx-runtime");
6821
7223
  function ToggleGroup2({
6822
7224
  options = [],
6823
7225
  value,
@@ -6837,7 +7239,7 @@ function ToggleGroup2({
6837
7239
  onChange?.(added ?? void 0);
6838
7240
  }
6839
7241
  };
6840
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
7242
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
6841
7243
  ToggleGroup,
6842
7244
  {
6843
7245
  value: groupValue,
@@ -6846,7 +7248,7 @@ function ToggleGroup2({
6846
7248
  onValueChange: (next) => handleChange(next),
6847
7249
  className,
6848
7250
  style,
6849
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
7251
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
6850
7252
  ToggleGroupItem,
6851
7253
  {
6852
7254
  value: option.value,
@@ -6860,17 +7262,17 @@ function ToggleGroup2({
6860
7262
  }
6861
7263
 
6862
7264
  // src/components/components/Tooltip/index.tsx
6863
- var import_jsx_runtime125 = require("react/jsx-runtime");
7265
+ var import_jsx_runtime126 = require("react/jsx-runtime");
6864
7266
  function Tooltip3({ content, children, className, style }) {
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 })
7267
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Tooltip2, { children: [
7268
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
7269
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(TooltipContent, { className, style, children: content })
6868
7270
  ] });
6869
7271
  }
6870
7272
 
6871
7273
  // src/ui/typography.tsx
6872
7274
  var import_class_variance_authority8 = require("class-variance-authority");
6873
- var import_jsx_runtime126 = require("react/jsx-runtime");
7275
+ var import_jsx_runtime127 = require("react/jsx-runtime");
6874
7276
  var typographyVariants = (0, import_class_variance_authority8.cva)("", {
6875
7277
  variants: {
6876
7278
  variant: {
@@ -6906,7 +7308,7 @@ var variantTagMap = {
6906
7308
  };
6907
7309
  function Typography({ className, variant = "p", ...props }) {
6908
7310
  const Tag2 = variantTagMap[variant ?? "p"];
6909
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
7311
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
6910
7312
  Tag2,
6911
7313
  {
6912
7314
  "data-slot": "typography",
@@ -6918,14 +7320,14 @@ function Typography({ className, variant = "p", ...props }) {
6918
7320
  }
6919
7321
 
6920
7322
  // src/components/components/Typography/index.tsx
6921
- var import_jsx_runtime127 = require("react/jsx-runtime");
7323
+ var import_jsx_runtime128 = require("react/jsx-runtime");
6922
7324
  function Typography2({
6923
7325
  variant = "p",
6924
7326
  text,
6925
7327
  className,
6926
7328
  style
6927
7329
  }) {
6928
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typography, { variant, className, style, children: text });
7330
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typography, { variant, className, style, children: text });
6929
7331
  }
6930
7332
 
6931
7333
  // src/components/register.ts
@@ -6990,6 +7392,7 @@ var builtinComponents = {
6990
7392
  HoverCard: HoverCard2,
6991
7393
  // 复合类扩展组件(第三批)
6992
7394
  Calendar: Calendar2,
7395
+ DatePicker,
6993
7396
  InputOTP: InputOTP2,
6994
7397
  Combobox: Combobox2,
6995
7398
  Carousel: Carousel2,
@@ -7042,6 +7445,7 @@ function createComponentRegistry() {
7042
7445
  Content,
7043
7446
  ContextMenu,
7044
7447
  DataTable,
7448
+ DatePicker,
7045
7449
  Dialog,
7046
7450
  Drawer,
7047
7451
  DropdownMenu,