@pactor-app/ui 1.17.1 → 1.18.1

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.
@@ -76,6 +76,7 @@ __export(components_exports, {
76
76
  Menu: () => Menu2,
77
77
  Menubar: () => Menubar2,
78
78
  NavigationMenu: () => NavigationMenu2,
79
+ NumberInput: () => NumberInput,
79
80
  Page: () => Page,
80
81
  Pagination: () => Pagination2,
81
82
  Popover: () => Popover2,
@@ -1883,7 +1884,7 @@ function ComboboxContent({
1883
1884
  PopoverContent,
1884
1885
  {
1885
1886
  "data-slot": "combobox-content",
1886
- className: cn("w-[--anchor-width] p-0", className),
1887
+ className: cn("w-(--anchor-width) p-0", className),
1887
1888
  ...props,
1888
1889
  children
1889
1890
  }
@@ -4910,7 +4911,9 @@ function SidebarInset({ className, ...props }) {
4910
4911
  {
4911
4912
  "data-slot": "sidebar-inset",
4912
4913
  className: cn(
4913
- "relative flex w-full flex-1 flex-col bg-background",
4914
+ // min-w-0:作为横向 flex 项需允许收缩到内容 min-content 以下,
4915
+ // 否则宽表格等内容会撑破视口(内部 overflow-x-auto 永不生效)
4916
+ "relative flex w-full min-w-0 flex-1 flex-col bg-background",
4914
4917
  "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
4915
4918
  className
4916
4919
  ),
@@ -5770,23 +5773,210 @@ function NavigationMenu2({ items = [], className, style }) {
5770
5773
  ) }, `${item.label}-${index}`)) }) });
5771
5774
  }
5772
5775
 
5773
- // src/components/components/Page/index.tsx
5776
+ // src/components/components/NumberInput/index.tsx
5777
+ var import_runtime17 = require("@pactor-app/runtime");
5778
+ var import_lucide_react21 = require("lucide-react");
5779
+ var import_react21 = require("react");
5780
+
5781
+ // src/components/components/Form/form-item.tsx
5774
5782
  var import_jsx_runtime89 = require("react/jsx-runtime");
5783
+ function FieldShell({
5784
+ layout,
5785
+ label,
5786
+ htmlFor,
5787
+ error,
5788
+ className,
5789
+ style,
5790
+ children
5791
+ }) {
5792
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
5793
+ "div",
5794
+ {
5795
+ "data-slot": "form-item",
5796
+ className: cn(formItemClass(layout), className),
5797
+ style,
5798
+ children: [
5799
+ label ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
5800
+ "label",
5801
+ {
5802
+ htmlFor,
5803
+ className: "shrink-0 text-sm leading-none font-medium whitespace-nowrap",
5804
+ children: label
5805
+ }
5806
+ ) : null,
5807
+ children,
5808
+ error ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
5809
+ ]
5810
+ }
5811
+ );
5812
+ }
5813
+
5814
+ // src/components/components/NumberInput/index.tsx
5815
+ var import_jsx_runtime90 = require("react/jsx-runtime");
5816
+ function clamp(value, min, max) {
5817
+ let next = value;
5818
+ if (typeof min === "number" && next < min) next = min;
5819
+ if (typeof max === "number" && next > max) next = max;
5820
+ return next;
5821
+ }
5822
+ function applyPrecision(value, precision) {
5823
+ if (typeof precision !== "number") return value;
5824
+ const factor = 10 ** precision;
5825
+ return Math.round(value * factor) / factor;
5826
+ }
5827
+ function toDisplayText(value) {
5828
+ return typeof value === "number" && Number.isFinite(value) ? String(value) : "";
5829
+ }
5830
+ function NumberInput({
5831
+ name,
5832
+ label,
5833
+ rules,
5834
+ value,
5835
+ min,
5836
+ max,
5837
+ step = 1,
5838
+ precision,
5839
+ placeholder,
5840
+ disabled,
5841
+ onChange,
5842
+ className,
5843
+ controlClassName,
5844
+ style
5845
+ }) {
5846
+ const form = useFormContext();
5847
+ const { t } = (0, import_runtime17.useI18n)();
5848
+ const controlId = (0, import_react21.useId)();
5849
+ const inForm = form?.inForm === true && typeof name === "string" && name !== "";
5850
+ (0, import_react21.useEffect)(() => {
5851
+ if (inForm && form && name) {
5852
+ form.registerField(name, rules, value);
5853
+ return () => form.unregisterField(name);
5854
+ }
5855
+ return void 0;
5856
+ });
5857
+ const fieldValue = inForm && form && name ? form.values[name] : void 0;
5858
+ const externalValue = typeof fieldValue === "number" ? fieldValue : inForm ? void 0 : typeof value === "number" ? value : void 0;
5859
+ const [text, setText] = (0, import_react21.useState)(() => toDisplayText(externalValue));
5860
+ (0, import_react21.useEffect)(() => {
5861
+ setText((current) => {
5862
+ const parsed = current === "" ? void 0 : Number(current);
5863
+ const currentNumber = parsed !== void 0 && Number.isFinite(parsed) ? applyPrecision(clamp(parsed, min, max), precision) : void 0;
5864
+ return currentNumber === externalValue ? current : toDisplayText(externalValue);
5865
+ });
5866
+ }, [externalValue, min, max, precision]);
5867
+ const commit = (next) => {
5868
+ if (inForm && form && name) {
5869
+ form.setValue(name, next);
5870
+ }
5871
+ onChange?.(next);
5872
+ };
5873
+ const stepBy = (direction) => {
5874
+ const base = externalValue ?? 0;
5875
+ const next = applyPrecision(clamp(base + direction * step, min, max), precision);
5876
+ setText(toDisplayText(next));
5877
+ commit(next);
5878
+ };
5879
+ const atMax = typeof max === "number" && externalValue !== void 0 && externalValue >= max;
5880
+ const atMin = typeof min === "number" && externalValue !== void 0 && externalValue <= min;
5881
+ const stepperClass = "flex flex-1 cursor-pointer items-center justify-center text-muted-foreground transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50";
5882
+ const control = /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
5883
+ "span",
5884
+ {
5885
+ "data-slot": "number-input",
5886
+ className: cn("relative block", !inForm && className),
5887
+ style: !inForm ? style : void 0,
5888
+ children: [
5889
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5890
+ Input,
5891
+ {
5892
+ id: controlId,
5893
+ type: "number",
5894
+ value: text,
5895
+ min,
5896
+ max,
5897
+ step,
5898
+ placeholder,
5899
+ disabled,
5900
+ className: cn(
5901
+ "pr-7 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
5902
+ controlClassName
5903
+ ),
5904
+ onChange: (event) => {
5905
+ const raw = event.target.value;
5906
+ setText(raw);
5907
+ if (raw === "") {
5908
+ commit(void 0);
5909
+ return;
5910
+ }
5911
+ const parsed = Number(raw);
5912
+ if (!Number.isFinite(parsed)) return;
5913
+ commit(applyPrecision(clamp(parsed, min, max), precision));
5914
+ }
5915
+ }
5916
+ ),
5917
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("span", { className: "absolute inset-y-0 right-0 flex w-7 flex-col divide-y divide-input border-l border-input", children: [
5918
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5919
+ "button",
5920
+ {
5921
+ type: "button",
5922
+ tabIndex: -1,
5923
+ "aria-label": t("pactor.numberInput.increase"),
5924
+ disabled: disabled === true || atMax,
5925
+ className: stepperClass,
5926
+ onClick: () => stepBy(1),
5927
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronUpIcon, { className: "size-3" })
5928
+ }
5929
+ ),
5930
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5931
+ "button",
5932
+ {
5933
+ type: "button",
5934
+ tabIndex: -1,
5935
+ "aria-label": t("pactor.numberInput.decrease"),
5936
+ disabled: disabled === true || atMin,
5937
+ className: stepperClass,
5938
+ onClick: () => stepBy(-1),
5939
+ children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronDownIcon, { className: "size-3" })
5940
+ }
5941
+ )
5942
+ ] })
5943
+ ]
5944
+ }
5945
+ );
5946
+ if (inForm && form && name) {
5947
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5948
+ FieldShell,
5949
+ {
5950
+ layout: form.layout,
5951
+ label,
5952
+ htmlFor: controlId,
5953
+ error: form.errors[name],
5954
+ className,
5955
+ style,
5956
+ children: control
5957
+ }
5958
+ );
5959
+ }
5960
+ return control;
5961
+ }
5962
+
5963
+ // src/components/components/Page/index.tsx
5964
+ var import_jsx_runtime91 = require("react/jsx-runtime");
5775
5965
  function Page({ title, className, style, children }) {
5776
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
5777
- title ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
5778
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
5966
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
5967
+ title ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
5968
+ /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
5779
5969
  ] });
5780
5970
  }
5781
5971
 
5782
5972
  // src/components/components/Pagination/index.tsx
5783
- var import_react21 = require("react");
5973
+ var import_react22 = require("react");
5784
5974
 
5785
5975
  // src/ui/pagination.tsx
5786
- var import_lucide_react21 = require("lucide-react");
5787
- var import_jsx_runtime90 = require("react/jsx-runtime");
5976
+ var import_lucide_react22 = require("lucide-react");
5977
+ var import_jsx_runtime92 = require("react/jsx-runtime");
5788
5978
  function Pagination({ className, ...props }) {
5789
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5979
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5790
5980
  "nav",
5791
5981
  {
5792
5982
  role: "navigation",
@@ -5798,7 +5988,7 @@ function Pagination({ className, ...props }) {
5798
5988
  );
5799
5989
  }
5800
5990
  function PaginationContent({ className, ...props }) {
5801
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
5991
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5802
5992
  "ul",
5803
5993
  {
5804
5994
  "data-slot": "pagination-content",
@@ -5808,7 +5998,7 @@ function PaginationContent({ className, ...props }) {
5808
5998
  );
5809
5999
  }
5810
6000
  function PaginationItem({ ...props }) {
5811
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("li", { "data-slot": "pagination-item", ...props });
6001
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("li", { "data-slot": "pagination-item", ...props });
5812
6002
  }
5813
6003
  function PaginationLink({
5814
6004
  className,
@@ -5816,7 +6006,7 @@ function PaginationLink({
5816
6006
  disabled,
5817
6007
  ...props
5818
6008
  }) {
5819
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
6009
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
5820
6010
  "a",
5821
6011
  {
5822
6012
  "aria-current": isActive ? "page" : void 0,
@@ -5840,15 +6030,15 @@ function PaginationPrevious({
5840
6030
  className,
5841
6031
  ...props
5842
6032
  }) {
5843
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
6033
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
5844
6034
  PaginationLink,
5845
6035
  {
5846
6036
  "aria-label": "Go to previous page",
5847
6037
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
5848
6038
  ...props,
5849
6039
  children: [
5850
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronLeftIcon, {}),
5851
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "hidden sm:block", children: "Previous" })
6040
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react22.ChevronLeftIcon, {}),
6041
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "hidden sm:block", children: "Previous" })
5852
6042
  ]
5853
6043
  }
5854
6044
  );
@@ -5857,21 +6047,21 @@ function PaginationNext({
5857
6047
  className,
5858
6048
  ...props
5859
6049
  }) {
5860
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
6050
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
5861
6051
  PaginationLink,
5862
6052
  {
5863
6053
  "aria-label": "Go to next page",
5864
6054
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
5865
6055
  ...props,
5866
6056
  children: [
5867
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "hidden sm:block", children: "Next" }),
5868
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.ChevronRightIcon, {})
6057
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "hidden sm:block", children: "Next" }),
6058
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react22.ChevronRightIcon, {})
5869
6059
  ]
5870
6060
  }
5871
6061
  );
5872
6062
  }
5873
6063
  function PaginationEllipsis({ className, ...props }) {
5874
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
6064
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
5875
6065
  "span",
5876
6066
  {
5877
6067
  "aria-hidden": true,
@@ -5879,15 +6069,15 @@ function PaginationEllipsis({ className, ...props }) {
5879
6069
  className: cn("flex size-9 items-center justify-center", className),
5880
6070
  ...props,
5881
6071
  children: [
5882
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react21.MoreHorizontalIcon, { className: "size-4" }),
5883
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "sr-only", children: "More pages" })
6072
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react22.MoreHorizontalIcon, { className: "size-4" }),
6073
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "sr-only", children: "More pages" })
5884
6074
  ]
5885
6075
  }
5886
6076
  );
5887
6077
  }
5888
6078
 
5889
6079
  // src/components/components/Pagination/index.tsx
5890
- var import_jsx_runtime91 = require("react/jsx-runtime");
6080
+ var import_jsx_runtime93 = require("react/jsx-runtime");
5891
6081
  function pageItems(current, count) {
5892
6082
  if (count <= 7) {
5893
6083
  return Array.from({ length: count }, (_, i) => i + 1);
@@ -5908,7 +6098,7 @@ function Pagination2({
5908
6098
  className,
5909
6099
  style
5910
6100
  }) {
5911
- const [innerPage, setInnerPage] = (0, import_react21.useState)(1);
6101
+ const [innerPage, setInnerPage] = (0, import_react22.useState)(1);
5912
6102
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
5913
6103
  const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
5914
6104
  const goTo = (next) => {
@@ -5921,8 +6111,8 @@ function Pagination2({
5921
6111
  }
5922
6112
  onChange?.(target);
5923
6113
  };
5924
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(PaginationContent, { children: [
5925
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
6114
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(PaginationContent, { children: [
6115
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5926
6116
  PaginationPrevious,
5927
6117
  {
5928
6118
  href: "#",
@@ -5933,7 +6123,7 @@ function Pagination2({
5933
6123
  }
5934
6124
  }
5935
6125
  ) }),
5936
- 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)(
6126
+ pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5937
6127
  PaginationLink,
5938
6128
  {
5939
6129
  href: "#",
@@ -5945,7 +6135,7 @@ function Pagination2({
5945
6135
  children: item
5946
6136
  }
5947
6137
  ) }, item === "ellipsis" ? `ellipsis-${index}` : item)),
5948
- /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
6138
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
5949
6139
  PaginationNext,
5950
6140
  {
5951
6141
  href: "#",
@@ -5960,15 +6150,15 @@ function Pagination2({
5960
6150
  }
5961
6151
 
5962
6152
  // src/components/components/Popover/index.tsx
5963
- var import_runtime17 = require("@pactor-app/runtime");
5964
- var import_jsx_runtime92 = require("react/jsx-runtime");
6153
+ var import_runtime18 = require("@pactor-app/runtime");
6154
+ var import_jsx_runtime94 = require("react/jsx-runtime");
5965
6155
  function isDslNode3(value) {
5966
6156
  return typeof value === "object" && value !== null && typeof value.type === "string";
5967
6157
  }
5968
6158
  function Popover2({ content, children, className, style }) {
5969
- const { renderChildren } = (0, import_runtime17.useRenderer)();
5970
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Popover, { children: [
5971
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
6159
+ const { renderChildren } = (0, import_runtime18.useRenderer)();
6160
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(Popover, { children: [
6161
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
5972
6162
  PopoverTrigger,
5973
6163
  {
5974
6164
  nativeButton: false,
@@ -5976,15 +6166,15 @@ function Popover2({ content, children, className, style }) {
5976
6166
  children
5977
6167
  }
5978
6168
  ),
5979
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
6169
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
5980
6170
  ] });
5981
6171
  }
5982
6172
 
5983
6173
  // src/ui/progress.tsx
5984
6174
  var import_progress = require("@base-ui/react/progress");
5985
- var import_jsx_runtime93 = require("react/jsx-runtime");
6175
+ var import_jsx_runtime95 = require("react/jsx-runtime");
5986
6176
  function Progress({ className, ...props }) {
5987
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
6177
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5988
6178
  import_progress.Progress.Root,
5989
6179
  {
5990
6180
  "data-slot": "progress",
@@ -5994,7 +6184,7 @@ function Progress({ className, ...props }) {
5994
6184
  );
5995
6185
  }
5996
6186
  function ProgressTrack({ className, ...props }) {
5997
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
6187
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
5998
6188
  import_progress.Progress.Track,
5999
6189
  {
6000
6190
  "data-slot": "progress-track",
@@ -6007,7 +6197,7 @@ function ProgressIndicator({
6007
6197
  className,
6008
6198
  ...props
6009
6199
  }) {
6010
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
6200
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6011
6201
  import_progress.Progress.Indicator,
6012
6202
  {
6013
6203
  "data-slot": "progress-indicator",
@@ -6021,21 +6211,21 @@ function ProgressIndicator({
6021
6211
  }
6022
6212
 
6023
6213
  // src/components/components/Progress/index.tsx
6024
- var import_jsx_runtime94 = require("react/jsx-runtime");
6214
+ var import_jsx_runtime96 = require("react/jsx-runtime");
6025
6215
  function Progress2({ value, className, style }) {
6026
6216
  const resolved = typeof value === "number" && Number.isFinite(value) ? Math.min(100, Math.max(0, value)) : null;
6027
- 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, {}) }) });
6217
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Progress, { value: resolved, className, style, children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(ProgressIndicator, {}) }) });
6028
6218
  }
6029
6219
 
6030
6220
  // src/components/components/RadioGroup/index.tsx
6031
- var import_react22 = require("react");
6221
+ var import_react23 = require("react");
6032
6222
 
6033
6223
  // src/ui/radio-group.tsx
6034
6224
  var import_radio = require("@base-ui/react/radio");
6035
6225
  var import_radio_group = require("@base-ui/react/radio-group");
6036
- var import_jsx_runtime95 = require("react/jsx-runtime");
6226
+ var import_jsx_runtime97 = require("react/jsx-runtime");
6037
6227
  function RadioGroup({ className, ...props }) {
6038
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6228
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6039
6229
  import_radio_group.RadioGroup,
6040
6230
  {
6041
6231
  "data-slot": "radio-group",
@@ -6045,7 +6235,7 @@ function RadioGroup({ className, ...props }) {
6045
6235
  );
6046
6236
  }
6047
6237
  function RadioGroupItem({ className, ...props }) {
6048
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6238
+ return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6049
6239
  import_radio.Radio.Root,
6050
6240
  {
6051
6241
  "data-slot": "radio-group-item",
@@ -6054,53 +6244,20 @@ function RadioGroupItem({ className, ...props }) {
6054
6244
  className
6055
6245
  ),
6056
6246
  ...props,
6057
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
6247
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6058
6248
  import_radio.Radio.Indicator,
6059
6249
  {
6060
6250
  "data-slot": "radio-group-indicator",
6061
6251
  className: "flex items-center justify-center",
6062
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
6252
+ children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
6063
6253
  }
6064
6254
  )
6065
6255
  }
6066
6256
  );
6067
6257
  }
6068
6258
 
6069
- // src/components/components/Form/form-item.tsx
6070
- var import_jsx_runtime96 = require("react/jsx-runtime");
6071
- function FieldShell({
6072
- layout,
6073
- label,
6074
- htmlFor,
6075
- error,
6076
- className,
6077
- style,
6078
- children
6079
- }) {
6080
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
6081
- "div",
6082
- {
6083
- "data-slot": "form-item",
6084
- className: cn(formItemClass(layout), className),
6085
- style,
6086
- children: [
6087
- label ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
6088
- "label",
6089
- {
6090
- htmlFor,
6091
- className: "shrink-0 text-sm leading-none font-medium whitespace-nowrap",
6092
- children: label
6093
- }
6094
- ) : null,
6095
- children,
6096
- error ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
6097
- ]
6098
- }
6099
- );
6100
- }
6101
-
6102
6259
  // src/components/components/RadioGroup/index.tsx
6103
- var import_jsx_runtime97 = require("react/jsx-runtime");
6260
+ var import_jsx_runtime98 = require("react/jsx-runtime");
6104
6261
  function RadioGroup2({
6105
6262
  name,
6106
6263
  label,
@@ -6114,9 +6271,9 @@ function RadioGroup2({
6114
6271
  style
6115
6272
  }) {
6116
6273
  const form = useFormContext();
6117
- const controlId = (0, import_react22.useId)();
6274
+ const controlId = (0, import_react23.useId)();
6118
6275
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6119
- (0, import_react22.useEffect)(() => {
6276
+ (0, import_react23.useEffect)(() => {
6120
6277
  if (inForm && form && name) {
6121
6278
  form.registerField(name, rules, value);
6122
6279
  return () => form.unregisterField(name);
@@ -6131,7 +6288,7 @@ function RadioGroup2({
6131
6288
  onChange?.(next);
6132
6289
  };
6133
6290
  const groupValue = current ?? "";
6134
- const group = /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6291
+ const group = /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6135
6292
  RadioGroup,
6136
6293
  {
6137
6294
  value: groupValue,
@@ -6146,8 +6303,8 @@ function RadioGroup2({
6146
6303
  children: options.map((option, index) => {
6147
6304
  const optionId = `${controlId}-${index}`;
6148
6305
  const optionDisabled = disabled || option.disabled;
6149
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
6150
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6306
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
6307
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6151
6308
  RadioGroupItem,
6152
6309
  {
6153
6310
  id: optionId,
@@ -6155,7 +6312,7 @@ function RadioGroup2({
6155
6312
  disabled: option.disabled
6156
6313
  }
6157
6314
  ),
6158
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6315
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6159
6316
  "label",
6160
6317
  {
6161
6318
  htmlFor: optionId,
@@ -6171,7 +6328,7 @@ function RadioGroup2({
6171
6328
  }
6172
6329
  );
6173
6330
  if (inForm && form && name) {
6174
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
6331
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6175
6332
  FieldShell,
6176
6333
  {
6177
6334
  layout: form.layout,
@@ -6187,18 +6344,18 @@ function RadioGroup2({
6187
6344
  }
6188
6345
 
6189
6346
  // src/components/components/Resizable/index.tsx
6190
- var import_runtime18 = require("@pactor-app/runtime");
6191
- var import_react23 = require("react");
6347
+ var import_runtime19 = require("@pactor-app/runtime");
6348
+ var import_react24 = require("react");
6192
6349
 
6193
6350
  // src/ui/resizable.tsx
6194
- var import_lucide_react22 = require("lucide-react");
6351
+ var import_lucide_react23 = require("lucide-react");
6195
6352
  var import_react_resizable_panels = require("react-resizable-panels");
6196
- var import_jsx_runtime98 = require("react/jsx-runtime");
6353
+ var import_jsx_runtime99 = require("react/jsx-runtime");
6197
6354
  function PanelGroup({
6198
6355
  className,
6199
6356
  ...props
6200
6357
  }) {
6201
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6358
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6202
6359
  import_react_resizable_panels.Group,
6203
6360
  {
6204
6361
  "data-slot": "resizable-panel-group",
@@ -6211,14 +6368,14 @@ function PanelGroup({
6211
6368
  );
6212
6369
  }
6213
6370
  function Panel({ ...props }) {
6214
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
6371
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
6215
6372
  }
6216
6373
  function ResizableHandle({
6217
6374
  withHandle,
6218
6375
  className,
6219
6376
  ...props
6220
6377
  }) {
6221
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
6378
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6222
6379
  import_react_resizable_panels.Separator,
6223
6380
  {
6224
6381
  "data-slot": "resizable-handle",
@@ -6227,23 +6384,23 @@ function ResizableHandle({
6227
6384
  className
6228
6385
  ),
6229
6386
  ...props,
6230
- 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
6387
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime99.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_runtime99.jsx)(import_lucide_react23.GripVerticalIcon, { className: "size-2.5" }) }) : null
6231
6388
  }
6232
6389
  );
6233
6390
  }
6234
6391
 
6235
6392
  // src/components/components/Resizable/index.tsx
6236
- var import_jsx_runtime99 = require("react/jsx-runtime");
6393
+ var import_jsx_runtime100 = require("react/jsx-runtime");
6237
6394
  function Resizable({
6238
6395
  panels = [],
6239
6396
  direction = "horizontal",
6240
6397
  className,
6241
6398
  style
6242
6399
  }) {
6243
- const { renderChildren } = (0, import_runtime18.useRenderer)();
6244
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(import_react23.Fragment, { children: [
6245
- index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ResizableHandle, { withHandle: true }) : null,
6246
- /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6400
+ const { renderChildren } = (0, import_runtime19.useRenderer)();
6401
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_react24.Fragment, { children: [
6402
+ index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(ResizableHandle, { withHandle: true }) : null,
6403
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6247
6404
  Panel,
6248
6405
  {
6249
6406
  defaultSize: typeof panel.defaultSizePx === "number" ? `${panel.defaultSizePx}px` : typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
@@ -6257,20 +6414,20 @@ function Resizable({
6257
6414
 
6258
6415
  // src/ui/scroll-area.tsx
6259
6416
  var import_scroll_area = require("@base-ui/react/scroll-area");
6260
- var import_jsx_runtime100 = require("react/jsx-runtime");
6417
+ var import_jsx_runtime101 = require("react/jsx-runtime");
6261
6418
  function ScrollArea({
6262
6419
  className,
6263
6420
  children,
6264
6421
  ...props
6265
6422
  }) {
6266
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
6423
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
6267
6424
  import_scroll_area.ScrollArea.Root,
6268
6425
  {
6269
6426
  "data-slot": "scroll-area",
6270
6427
  className: cn("relative overflow-hidden", className),
6271
6428
  ...props,
6272
6429
  children: [
6273
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6430
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6274
6431
  import_scroll_area.ScrollArea.Viewport,
6275
6432
  {
6276
6433
  "data-slot": "scroll-area-viewport",
@@ -6278,8 +6435,8 @@ function ScrollArea({
6278
6435
  children
6279
6436
  }
6280
6437
  ),
6281
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(ScrollBar, {}),
6282
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_scroll_area.ScrollArea.Corner, {})
6438
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(ScrollBar, {}),
6439
+ /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_scroll_area.ScrollArea.Corner, {})
6283
6440
  ]
6284
6441
  }
6285
6442
  );
@@ -6289,7 +6446,7 @@ function ScrollBar({
6289
6446
  orientation = "vertical",
6290
6447
  ...props
6291
6448
  }) {
6292
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6449
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6293
6450
  import_scroll_area.ScrollArea.Scrollbar,
6294
6451
  {
6295
6452
  "data-slot": "scroll-area-scrollbar",
@@ -6301,7 +6458,7 @@ function ScrollBar({
6301
6458
  className
6302
6459
  ),
6303
6460
  ...props,
6304
- children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6461
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6305
6462
  import_scroll_area.ScrollArea.Thumb,
6306
6463
  {
6307
6464
  "data-slot": "scroll-area-thumb",
@@ -6313,7 +6470,7 @@ function ScrollBar({
6313
6470
  }
6314
6471
 
6315
6472
  // src/components/components/ScrollArea/index.tsx
6316
- var import_jsx_runtime101 = require("react/jsx-runtime");
6473
+ var import_jsx_runtime102 = require("react/jsx-runtime");
6317
6474
  function ScrollArea2({
6318
6475
  maxHeight,
6319
6476
  maxWidth,
@@ -6321,7 +6478,7 @@ function ScrollArea2({
6321
6478
  style,
6322
6479
  children
6323
6480
  }) {
6324
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6481
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6325
6482
  ScrollArea,
6326
6483
  {
6327
6484
  className,
@@ -6332,18 +6489,18 @@ function ScrollArea2({
6332
6489
  }
6333
6490
 
6334
6491
  // src/components/components/Select/index.tsx
6335
- var import_runtime19 = require("@pactor-app/runtime");
6336
- var import_react24 = require("react");
6492
+ var import_runtime20 = require("@pactor-app/runtime");
6493
+ var import_react25 = require("react");
6337
6494
 
6338
6495
  // src/ui/select.tsx
6339
6496
  var import_select = require("@base-ui/react/select");
6340
- var import_lucide_react23 = require("lucide-react");
6341
- var import_jsx_runtime102 = require("react/jsx-runtime");
6497
+ var import_lucide_react24 = require("lucide-react");
6498
+ var import_jsx_runtime103 = require("react/jsx-runtime");
6342
6499
  var Select = import_select.Select.Root;
6343
6500
  function SelectValue({
6344
6501
  ...props
6345
6502
  }) {
6346
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
6503
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
6347
6504
  }
6348
6505
  function SelectTrigger({
6349
6506
  className,
@@ -6351,7 +6508,7 @@ function SelectTrigger({
6351
6508
  children,
6352
6509
  ...props
6353
6510
  }) {
6354
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6511
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6355
6512
  import_select.Select.Trigger,
6356
6513
  {
6357
6514
  "data-slot": "select-trigger",
@@ -6363,10 +6520,10 @@ function SelectTrigger({
6363
6520
  ...props,
6364
6521
  children: [
6365
6522
  children,
6366
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6523
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6367
6524
  import_select.Select.Icon,
6368
6525
  {
6369
- render: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronDownIcon, { className: "size-4 opacity-50" })
6526
+ render: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react24.ChevronDownIcon, { className: "size-4 opacity-50" })
6370
6527
  }
6371
6528
  )
6372
6529
  ]
@@ -6378,11 +6535,13 @@ function SelectContent({
6378
6535
  children,
6379
6536
  side = "bottom",
6380
6537
  sideOffset = 4,
6381
- align = "center",
6538
+ // 弹层左边缘对齐触发器左边缘(shadcn 上游默认为 'center',居中会显得
6539
+ // 弹层"对着触发器中间",与主流控制台左对齐惯例不符,故改默认值)
6540
+ align = "start",
6382
6541
  alignItemWithTrigger = false,
6383
6542
  ...props
6384
6543
  }) {
6385
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6544
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6386
6545
  import_select.Select.Positioner,
6387
6546
  {
6388
6547
  side,
@@ -6390,19 +6549,23 @@ function SelectContent({
6390
6549
  align,
6391
6550
  alignItemWithTrigger,
6392
6551
  className: "isolate z-50",
6393
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6552
+ children: /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6394
6553
  import_select.Select.Popup,
6395
6554
  {
6396
6555
  "data-slot": "select-content",
6397
6556
  className: cn(
6398
- "relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
6557
+ // min-w 跟随触发器宽度(Base UI Positioner 在定位元素上暴露
6558
+ // --anchor-width,Popup 作为其子节点可经 var() 继承到),
6559
+ // 选项更长时弹层随内容继续撑宽;不再使用固定的 min-w-[8rem]
6560
+ //(触发器比 8rem 宽时弹层会显得比触发器窄)
6561
+ "relative z-50 max-h-96 min-w-(--anchor-width) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
6399
6562
  className
6400
6563
  ),
6401
6564
  ...props,
6402
6565
  children: [
6403
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectScrollUpButton, {}),
6404
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.List, { className: "p-1", children }),
6405
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectScrollDownButton, {})
6566
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectScrollUpButton, {}),
6567
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_select.Select.List, { className: "p-1", children }),
6568
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectScrollDownButton, {})
6406
6569
  ]
6407
6570
  }
6408
6571
  )
@@ -6414,7 +6577,7 @@ function SelectItem({
6414
6577
  children,
6415
6578
  ...props
6416
6579
  }) {
6417
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
6580
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6418
6581
  import_select.Select.Item,
6419
6582
  {
6420
6583
  "data-slot": "select-item",
@@ -6424,8 +6587,8 @@ function SelectItem({
6424
6587
  ),
6425
6588
  ...props,
6426
6589
  children: [
6427
- /* @__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" }) }) }),
6428
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_select.Select.ItemText, { children })
6590
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react24.CheckIcon, { className: "size-4" }) }) }),
6591
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_select.Select.ItemText, { children })
6429
6592
  ]
6430
6593
  }
6431
6594
  );
@@ -6434,7 +6597,7 @@ function SelectScrollUpButton({
6434
6597
  className,
6435
6598
  ...props
6436
6599
  }) {
6437
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6600
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6438
6601
  import_select.Select.ScrollUpArrow,
6439
6602
  {
6440
6603
  "data-slot": "select-scroll-up-button",
@@ -6443,7 +6606,7 @@ function SelectScrollUpButton({
6443
6606
  className
6444
6607
  ),
6445
6608
  ...props,
6446
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronUpIcon, { className: "size-4" })
6609
+ children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react24.ChevronUpIcon, { className: "size-4" })
6447
6610
  }
6448
6611
  );
6449
6612
  }
@@ -6451,7 +6614,7 @@ function SelectScrollDownButton({
6451
6614
  className,
6452
6615
  ...props
6453
6616
  }) {
6454
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
6617
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6455
6618
  import_select.Select.ScrollDownArrow,
6456
6619
  {
6457
6620
  "data-slot": "select-scroll-down-button",
@@ -6460,13 +6623,13 @@ function SelectScrollDownButton({
6460
6623
  className
6461
6624
  ),
6462
6625
  ...props,
6463
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react23.ChevronDownIcon, { className: "size-4" })
6626
+ children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react24.ChevronDownIcon, { className: "size-4" })
6464
6627
  }
6465
6628
  );
6466
6629
  }
6467
6630
 
6468
6631
  // src/components/components/Select/index.tsx
6469
- var import_jsx_runtime103 = require("react/jsx-runtime");
6632
+ var import_jsx_runtime104 = require("react/jsx-runtime");
6470
6633
  function Select2({
6471
6634
  name,
6472
6635
  label,
@@ -6482,10 +6645,10 @@ function Select2({
6482
6645
  style
6483
6646
  }) {
6484
6647
  const form = useFormContext();
6485
- const { t } = (0, import_runtime19.useI18n)();
6486
- const controlId = (0, import_react24.useId)();
6648
+ const { t } = (0, import_runtime20.useI18n)();
6649
+ const controlId = (0, import_react25.useId)();
6487
6650
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6488
- (0, import_react24.useEffect)(() => {
6651
+ (0, import_react25.useEffect)(() => {
6489
6652
  if (inForm && form && name) {
6490
6653
  form.registerField(name, rules, value);
6491
6654
  return () => form.unregisterField(name);
@@ -6501,7 +6664,7 @@ function Select2({
6501
6664
  onChange?.(next ?? void 0);
6502
6665
  };
6503
6666
  const inFormRoot = inForm === true;
6504
- const select = /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6667
+ const select = /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
6505
6668
  "span",
6506
6669
  {
6507
6670
  className: cn(
@@ -6512,7 +6675,7 @@ function Select2({
6512
6675
  ),
6513
6676
  style: inFormRoot ? void 0 : style,
6514
6677
  children: [
6515
- /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6678
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
6516
6679
  Select,
6517
6680
  {
6518
6681
  items: options,
@@ -6521,8 +6684,8 @@ function Select2({
6521
6684
  disabled,
6522
6685
  name: inForm ? name : void 0,
6523
6686
  children: [
6524
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectTrigger, { id: controlId, className: inFormRoot ? "w-full" : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectValue, { placeholder }) }),
6525
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6687
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SelectTrigger, { id: controlId, className: inFormRoot ? "w-full" : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SelectValue, { placeholder }) }),
6688
+ /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
6526
6689
  SelectItem,
6527
6690
  {
6528
6691
  value: option.value,
@@ -6534,7 +6697,7 @@ function Select2({
6534
6697
  ]
6535
6698
  }
6536
6699
  ),
6537
- allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6700
+ allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
6538
6701
  "button",
6539
6702
  {
6540
6703
  type: "button",
@@ -6554,14 +6717,14 @@ function Select2({
6554
6717
  );
6555
6718
  if (inForm && form && name) {
6556
6719
  const error = form.errors[name];
6557
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
6720
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
6558
6721
  "div",
6559
6722
  {
6560
6723
  "data-slot": "form-item",
6561
6724
  className: cn(formItemClass(form.layout), className),
6562
6725
  style,
6563
6726
  children: [
6564
- label ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
6727
+ label ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
6565
6728
  "label",
6566
6729
  {
6567
6730
  htmlFor: controlId,
@@ -6570,7 +6733,7 @@ function Select2({
6570
6733
  }
6571
6734
  ) : null,
6572
6735
  select,
6573
- error ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
6736
+ error ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
6574
6737
  ]
6575
6738
  }
6576
6739
  );
@@ -6579,13 +6742,13 @@ function Select2({
6579
6742
  }
6580
6743
 
6581
6744
  // src/components/components/Separator/index.tsx
6582
- var import_jsx_runtime104 = require("react/jsx-runtime");
6745
+ var import_jsx_runtime105 = require("react/jsx-runtime");
6583
6746
  function Separator2({ orientation = "horizontal", className, style }) {
6584
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(Separator, { orientation, className, style });
6747
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(Separator, { orientation, className, style });
6585
6748
  }
6586
6749
 
6587
6750
  // src/components/components/Sheet/index.tsx
6588
- var import_jsx_runtime105 = require("react/jsx-runtime");
6751
+ var import_jsx_runtime106 = require("react/jsx-runtime");
6589
6752
  function Sheet2({
6590
6753
  title,
6591
6754
  open,
@@ -6595,7 +6758,7 @@ function Sheet2({
6595
6758
  className,
6596
6759
  style
6597
6760
  }) {
6598
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
6761
+ return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6599
6762
  Sheet,
6600
6763
  {
6601
6764
  open: open ?? false,
@@ -6604,17 +6767,17 @@ function Sheet2({
6604
6767
  onClose?.();
6605
6768
  }
6606
6769
  },
6607
- children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(SheetContent, { side, className, style, children: [
6608
- title ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(SheetTitle, { children: title }) }) : null,
6609
- /* @__PURE__ */ (0, import_jsx_runtime105.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
6770
+ children: /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(SheetContent, { side, className, style, children: [
6771
+ title ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(SheetTitle, { children: title }) }) : null,
6772
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
6610
6773
  ] })
6611
6774
  }
6612
6775
  );
6613
6776
  }
6614
6777
 
6615
6778
  // src/components/components/Sider/index.tsx
6616
- var import_lucide_react24 = require("lucide-react");
6617
- var import_jsx_runtime106 = require("react/jsx-runtime");
6779
+ var import_lucide_react25 = require("lucide-react");
6780
+ var import_jsx_runtime107 = require("react/jsx-runtime");
6618
6781
  function Sider({
6619
6782
  width = 200,
6620
6783
  collapsible,
@@ -6626,7 +6789,7 @@ function Sider({
6626
6789
  children
6627
6790
  }) {
6628
6791
  const current = collapsed ? collapsedWidth : width;
6629
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
6792
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(
6630
6793
  "aside",
6631
6794
  {
6632
6795
  "data-slot": "layout-sider",
@@ -6637,15 +6800,15 @@ function Sider({
6637
6800
  ),
6638
6801
  style: { width: current, ...style },
6639
6802
  children: [
6640
- /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
6641
- collapsible ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
6803
+ /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
6804
+ collapsible ? /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6642
6805
  "button",
6643
6806
  {
6644
6807
  type: "button",
6645
6808
  "aria-label": collapsed ? "expand sider" : "collapse sider",
6646
6809
  className: "flex h-10 shrink-0 items-center justify-center border-t text-muted-foreground hover:text-foreground",
6647
6810
  onClick: () => onCollapse?.(!collapsed),
6648
- 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" })
6811
+ children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_lucide_react25.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_lucide_react25.ChevronLeft, { "aria-hidden": true, className: "size-4" })
6649
6812
  }
6650
6813
  ) : null
6651
6814
  ]
@@ -6654,7 +6817,7 @@ function Sider({
6654
6817
  }
6655
6818
 
6656
6819
  // src/components/components/Skeleton/index.tsx
6657
- var import_jsx_runtime107 = require("react/jsx-runtime");
6820
+ var import_jsx_runtime108 = require("react/jsx-runtime");
6658
6821
  var shapeDefaults = {
6659
6822
  line: { className: "h-4 w-full", style: {} },
6660
6823
  circle: { className: "rounded-full", style: { width: 40, height: 40 } },
@@ -6665,7 +6828,7 @@ function toSize(value) {
6665
6828
  }
6666
6829
  function Skeleton2({ shape = "line", width, height, className, style }) {
6667
6830
  const defaults = shapeDefaults[shape];
6668
- return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
6831
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6669
6832
  Skeleton,
6670
6833
  {
6671
6834
  className: cn(defaults.className, className),
@@ -6680,13 +6843,13 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
6680
6843
  }
6681
6844
 
6682
6845
  // src/components/components/Slider/index.tsx
6683
- var import_react25 = require("react");
6846
+ var import_react26 = require("react");
6684
6847
 
6685
6848
  // src/ui/slider.tsx
6686
6849
  var import_slider = require("@base-ui/react/slider");
6687
- var import_jsx_runtime108 = require("react/jsx-runtime");
6850
+ var import_jsx_runtime109 = require("react/jsx-runtime");
6688
6851
  function Slider({ className, ...props }) {
6689
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6852
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6690
6853
  import_slider.Slider.Root,
6691
6854
  {
6692
6855
  "data-slot": "slider",
@@ -6699,7 +6862,7 @@ function Slider({ className, ...props }) {
6699
6862
  );
6700
6863
  }
6701
6864
  function SliderControl({ className, ...props }) {
6702
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6865
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6703
6866
  import_slider.Slider.Control,
6704
6867
  {
6705
6868
  "data-slot": "slider-control",
@@ -6709,7 +6872,7 @@ function SliderControl({ className, ...props }) {
6709
6872
  );
6710
6873
  }
6711
6874
  function SliderTrack({ className, ...props }) {
6712
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6875
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6713
6876
  import_slider.Slider.Track,
6714
6877
  {
6715
6878
  "data-slot": "slider-track",
@@ -6722,7 +6885,7 @@ function SliderTrack({ className, ...props }) {
6722
6885
  );
6723
6886
  }
6724
6887
  function SliderIndicator({ className, ...props }) {
6725
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6888
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6726
6889
  import_slider.Slider.Indicator,
6727
6890
  {
6728
6891
  "data-slot": "slider-indicator",
@@ -6732,7 +6895,7 @@ function SliderIndicator({ className, ...props }) {
6732
6895
  );
6733
6896
  }
6734
6897
  function SliderThumb({ className, ...props }) {
6735
- return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
6898
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6736
6899
  import_slider.Slider.Thumb,
6737
6900
  {
6738
6901
  "data-slot": "slider-thumb",
@@ -6746,7 +6909,7 @@ function SliderThumb({ className, ...props }) {
6746
6909
  }
6747
6910
 
6748
6911
  // src/components/components/Slider/index.tsx
6749
- var import_jsx_runtime109 = require("react/jsx-runtime");
6912
+ var import_jsx_runtime110 = require("react/jsx-runtime");
6750
6913
  function Slider2({
6751
6914
  name,
6752
6915
  label,
@@ -6762,7 +6925,7 @@ function Slider2({
6762
6925
  }) {
6763
6926
  const form = useFormContext();
6764
6927
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6765
- (0, import_react25.useEffect)(() => {
6928
+ (0, import_react26.useEffect)(() => {
6766
6929
  if (inForm && form && name) {
6767
6930
  form.registerField(name, rules, value);
6768
6931
  return () => form.unregisterField(name);
@@ -6777,7 +6940,7 @@ function Slider2({
6777
6940
  }
6778
6941
  onChange?.(next);
6779
6942
  };
6780
- const slider = /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6943
+ const slider = /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6781
6944
  Slider,
6782
6945
  {
6783
6946
  value: numberValue,
@@ -6789,14 +6952,14 @@ function Slider2({
6789
6952
  onValueChange: handleChange,
6790
6953
  className: inForm ? void 0 : className,
6791
6954
  style: inForm ? void 0 : style,
6792
- children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(SliderControl, { children: [
6793
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderIndicator, {}) }),
6794
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(SliderThumb, {})
6955
+ children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(SliderControl, { children: [
6956
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SliderTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SliderIndicator, {}) }),
6957
+ /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(SliderThumb, {})
6795
6958
  ] })
6796
6959
  }
6797
6960
  );
6798
6961
  if (inForm && form && name) {
6799
- return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
6962
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
6800
6963
  FieldShell,
6801
6964
  {
6802
6965
  layout: form.layout,
@@ -6812,13 +6975,13 @@ function Slider2({
6812
6975
  }
6813
6976
 
6814
6977
  // src/components/components/Sonner/index.tsx
6815
- var import_runtime20 = require("@pactor-app/runtime");
6816
- var import_react26 = require("react");
6978
+ var import_runtime21 = require("@pactor-app/runtime");
6979
+ var import_react27 = require("react");
6817
6980
 
6818
6981
  // src/ui/toast.tsx
6819
6982
  var import_toast = require("@base-ui/react/toast");
6820
- var import_lucide_react25 = require("lucide-react");
6821
- var import_jsx_runtime110 = require("react/jsx-runtime");
6983
+ var import_lucide_react26 = require("lucide-react");
6984
+ var import_jsx_runtime111 = require("react/jsx-runtime");
6822
6985
  var toastManager = import_toast.Toast.createToastManager();
6823
6986
  function toast(message, options = {}) {
6824
6987
  return toastManager.add({
@@ -6834,7 +6997,7 @@ var toastVariantClass = {
6834
6997
  };
6835
6998
  function ToasterViewport({ className }) {
6836
6999
  const { toasts } = import_toast.Toast.useToastManager();
6837
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
7000
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6838
7001
  import_toast.Toast.Viewport,
6839
7002
  {
6840
7003
  "data-slot": "toast-viewport",
@@ -6842,7 +7005,7 @@ function ToasterViewport({ className }) {
6842
7005
  "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
6843
7006
  className
6844
7007
  ),
6845
- children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
7008
+ children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6846
7009
  import_toast.Toast.Root,
6847
7010
  {
6848
7011
  toast: item,
@@ -6852,16 +7015,16 @@ function ToasterViewport({ className }) {
6852
7015
  "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",
6853
7016
  toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
6854
7017
  ),
6855
- children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
6856
- /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)("div", { className: "grid gap-0.5", children: [
6857
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
7018
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
7019
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)("div", { className: "grid gap-0.5", children: [
7020
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6858
7021
  import_toast.Toast.Title,
6859
7022
  {
6860
7023
  "data-slot": "toast-title",
6861
7024
  className: "font-medium"
6862
7025
  }
6863
7026
  ),
6864
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
7027
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6865
7028
  import_toast.Toast.Description,
6866
7029
  {
6867
7030
  "data-slot": "toast-description",
@@ -6869,13 +7032,13 @@ function ToasterViewport({ className }) {
6869
7032
  }
6870
7033
  )
6871
7034
  ] }),
6872
- /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
7035
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
6873
7036
  import_toast.Toast.Close,
6874
7037
  {
6875
7038
  "data-slot": "toast-close",
6876
7039
  "aria-label": "Close",
6877
7040
  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",
6878
- children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_lucide_react25.XIcon, {})
7041
+ children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react26.XIcon, {})
6879
7042
  }
6880
7043
  )
6881
7044
  ] })
@@ -6886,14 +7049,14 @@ function ToasterViewport({ className }) {
6886
7049
  ) });
6887
7050
  }
6888
7051
  function Toaster({ className }) {
6889
- return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(ToasterViewport, { className }) });
7052
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ToasterViewport, { className }) });
6890
7053
  }
6891
7054
 
6892
7055
  // src/components/components/Sonner/index.tsx
6893
- var import_jsx_runtime111 = require("react/jsx-runtime");
7056
+ var import_jsx_runtime112 = require("react/jsx-runtime");
6894
7057
  function Sonner({ className, style }) {
6895
- const { context } = (0, import_runtime20.useRenderer)();
6896
- (0, import_react26.useEffect)(() => {
7058
+ const { context } = (0, import_runtime21.useRenderer)();
7059
+ (0, import_react27.useEffect)(() => {
6897
7060
  const { actions } = context;
6898
7061
  if (actions.has("toast")) {
6899
7062
  return;
@@ -6907,15 +7070,15 @@ function Sonner({ className, style }) {
6907
7070
  return { ok: true };
6908
7071
  });
6909
7072
  }, [context]);
6910
- return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Toaster, {}) });
7073
+ return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Toaster, {}) });
6911
7074
  }
6912
7075
 
6913
7076
  // src/ui/spinner.tsx
6914
- var import_lucide_react26 = require("lucide-react");
6915
- var import_jsx_runtime112 = require("react/jsx-runtime");
7077
+ var import_lucide_react27 = require("lucide-react");
7078
+ var import_jsx_runtime113 = require("react/jsx-runtime");
6916
7079
  function Spinner({ className, ...props }) {
6917
- return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
6918
- import_lucide_react26.Loader2Icon,
7080
+ return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
7081
+ import_lucide_react27.Loader2Icon,
6919
7082
  {
6920
7083
  role: "status",
6921
7084
  "aria-label": "Loading",
@@ -6927,37 +7090,37 @@ function Spinner({ className, ...props }) {
6927
7090
  }
6928
7091
 
6929
7092
  // src/components/components/Spinner/index.tsx
6930
- var import_jsx_runtime113 = require("react/jsx-runtime");
7093
+ var import_jsx_runtime114 = require("react/jsx-runtime");
6931
7094
  var sizeClass = {
6932
7095
  sm: "size-3",
6933
7096
  default: "size-4",
6934
7097
  lg: "size-6"
6935
7098
  };
6936
7099
  function Spinner2({ size = "default", className, style }) {
6937
- return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
7100
+ return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
6938
7101
  }
6939
7102
 
6940
7103
  // src/components/components/Statistic/index.tsx
6941
- var import_jsx_runtime114 = require("react/jsx-runtime");
7104
+ var import_jsx_runtime115 = require("react/jsx-runtime");
6942
7105
  function Statistic({ title, value, precision, suffix, className, style }) {
6943
7106
  const display = typeof value === "number" && precision !== void 0 ? value.toFixed(precision) : value;
6944
- return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
6945
- title ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
6946
- /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
7107
+ return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
7108
+ title ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
7109
+ /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
6947
7110
  display,
6948
- suffix ? /* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
7111
+ suffix ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
6949
7112
  ] })
6950
7113
  ] });
6951
7114
  }
6952
7115
 
6953
7116
  // src/components/components/Switch/index.tsx
6954
- var import_react27 = require("react");
7117
+ var import_react28 = require("react");
6955
7118
 
6956
7119
  // src/ui/switch.tsx
6957
7120
  var import_switch = require("@base-ui/react/switch");
6958
- var import_jsx_runtime115 = require("react/jsx-runtime");
7121
+ var import_jsx_runtime116 = require("react/jsx-runtime");
6959
7122
  function Switch({ className, ...props }) {
6960
- return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
7123
+ return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6961
7124
  import_switch.Switch.Root,
6962
7125
  {
6963
7126
  "data-slot": "switch",
@@ -6966,7 +7129,7 @@ function Switch({ className, ...props }) {
6966
7129
  className
6967
7130
  ),
6968
7131
  ...props,
6969
- children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
7132
+ children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
6970
7133
  import_switch.Switch.Thumb,
6971
7134
  {
6972
7135
  "data-slot": "switch-thumb",
@@ -6978,7 +7141,7 @@ function Switch({ className, ...props }) {
6978
7141
  }
6979
7142
 
6980
7143
  // src/components/components/Switch/index.tsx
6981
- var import_jsx_runtime116 = require("react/jsx-runtime");
7144
+ var import_jsx_runtime117 = require("react/jsx-runtime");
6982
7145
  function Switch2({
6983
7146
  name,
6984
7147
  label,
@@ -6990,9 +7153,9 @@ function Switch2({
6990
7153
  style
6991
7154
  }) {
6992
7155
  const form = useFormContext();
6993
- const controlId = (0, import_react27.useId)();
7156
+ const controlId = (0, import_react28.useId)();
6994
7157
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6995
- (0, import_react27.useEffect)(() => {
7158
+ (0, import_react28.useEffect)(() => {
6996
7159
  if (inForm && form && name) {
6997
7160
  form.registerField(name, rules, value);
6998
7161
  return () => form.unregisterField(name);
@@ -7007,13 +7170,13 @@ function Switch2({
7007
7170
  }
7008
7171
  onChange?.(next);
7009
7172
  };
7010
- const control = /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
7173
+ const control = /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
7011
7174
  "span",
7012
7175
  {
7013
7176
  className: cn("inline-flex items-center gap-2", !inForm && className),
7014
7177
  style: inForm ? void 0 : style,
7015
7178
  children: [
7016
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
7179
+ /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
7017
7180
  Switch,
7018
7181
  {
7019
7182
  id: controlId,
@@ -7023,12 +7186,12 @@ function Switch2({
7023
7186
  onCheckedChange: handleChange
7024
7187
  }
7025
7188
  ),
7026
- label ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
7189
+ label ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
7027
7190
  ]
7028
7191
  }
7029
7192
  );
7030
7193
  if (inForm && form && name) {
7031
- return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(
7194
+ return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
7032
7195
  "div",
7033
7196
  {
7034
7197
  "data-slot": "form-item",
@@ -7036,7 +7199,7 @@ function Switch2({
7036
7199
  style,
7037
7200
  children: [
7038
7201
  control,
7039
- 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
7202
+ form.errors[name] ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
7040
7203
  ]
7041
7204
  }
7042
7205
  );
@@ -7045,9 +7208,9 @@ function Switch2({
7045
7208
  }
7046
7209
 
7047
7210
  // src/components/components/Table/index.tsx
7048
- var import_runtime21 = require("@pactor-app/runtime");
7049
- var import_react28 = require("react");
7050
- var import_jsx_runtime117 = require("react/jsx-runtime");
7211
+ var import_runtime22 = require("@pactor-app/runtime");
7212
+ var import_react29 = require("react");
7213
+ var import_jsx_runtime118 = require("react/jsx-runtime");
7051
7214
  function renderCellValue2(value) {
7052
7215
  if (value === void 0 || value === null) {
7053
7216
  return "";
@@ -7057,6 +7220,11 @@ function renderCellValue2(value) {
7057
7220
  }
7058
7221
  return String(value);
7059
7222
  }
7223
+ var columnAlignClass = {
7224
+ left: void 0,
7225
+ center: "text-center",
7226
+ right: "text-right"
7227
+ };
7060
7228
  function Table3({
7061
7229
  columns = [],
7062
7230
  dataSource = [],
@@ -7067,9 +7235,9 @@ function Table3({
7067
7235
  className,
7068
7236
  style
7069
7237
  }) {
7070
- const { renderChildren } = (0, import_runtime21.useRenderer)();
7071
- const { t } = (0, import_runtime21.useI18n)();
7072
- const [current, setCurrent] = (0, import_react28.useState)(1);
7238
+ const { renderChildren } = (0, import_runtime22.useRenderer)();
7239
+ const { t } = (0, import_runtime22.useI18n)();
7240
+ const [current, setCurrent] = (0, import_react29.useState)(1);
7073
7241
  const pageSize = pagination === false ? void 0 : pagination?.pageSize;
7074
7242
  const total = dataSource.length;
7075
7243
  const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
@@ -7078,8 +7246,8 @@ function Table3({
7078
7246
  setCurrent(page);
7079
7247
  onChange?.({ current: page, pageSize, total });
7080
7248
  };
7081
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
7082
- loading ? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
7249
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
7250
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7083
7251
  "div",
7084
7252
  {
7085
7253
  "data-slot": "table-loading",
@@ -7087,16 +7255,17 @@ function Table3({
7087
7255
  children: t("pactor.table.loading")
7088
7256
  }
7089
7257
  ) : null,
7090
- /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Table2, { children: [
7091
- /* @__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)(
7258
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Table2, { children: [
7259
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7092
7260
  TableHead,
7093
7261
  {
7262
+ className: column.align ? columnAlignClass[column.align] : void 0,
7094
7263
  style: column.width !== void 0 ? { width: column.width } : void 0,
7095
7264
  children: column.title
7096
7265
  },
7097
7266
  column.dataIndex ?? String(index)
7098
7267
  )) }) }),
7099
- /* @__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)(
7268
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7100
7269
  "div",
7101
7270
  {
7102
7271
  "data-slot": "table-empty",
@@ -7105,19 +7274,26 @@ function Table3({
7105
7274
  }
7106
7275
  ) }) }) : pageRows.map((row, rowIndex) => {
7107
7276
  const key = row[rowKey];
7108
- return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
7277
+ return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7109
7278
  TableRow,
7110
7279
  {
7111
- children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
7112
- column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
7113
- ) }, column.dataIndex ?? String(columnIndex)))
7280
+ children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7281
+ TableCell,
7282
+ {
7283
+ className: column.align ? columnAlignClass[column.align] : void 0,
7284
+ children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
7285
+ column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
7286
+ )
7287
+ },
7288
+ column.dataIndex ?? String(columnIndex)
7289
+ ))
7114
7290
  },
7115
7291
  key === void 0 || key === null ? rowIndex : String(key)
7116
7292
  );
7117
7293
  }) })
7118
7294
  ] }),
7119
- 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(
7120
- (page) => /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
7295
+ pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
7296
+ (page) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7121
7297
  Button,
7122
7298
  {
7123
7299
  type: "button",
@@ -7134,17 +7310,17 @@ function Table3({
7134
7310
  }
7135
7311
 
7136
7312
  // src/components/components/Tabs/index.tsx
7137
- var import_runtime22 = require("@pactor-app/runtime");
7313
+ var import_runtime23 = require("@pactor-app/runtime");
7138
7314
 
7139
7315
  // src/ui/tabs.tsx
7140
7316
  var import_tabs = require("@base-ui/react/tabs");
7141
7317
  var import_class_variance_authority7 = require("class-variance-authority");
7142
- var import_jsx_runtime118 = require("react/jsx-runtime");
7318
+ var import_jsx_runtime119 = require("react/jsx-runtime");
7143
7319
  function Tabs({
7144
7320
  className,
7145
7321
  ...props
7146
7322
  }) {
7147
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7323
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7148
7324
  import_tabs.Tabs.Root,
7149
7325
  {
7150
7326
  "data-slot": "tabs",
@@ -7173,7 +7349,7 @@ function TabsList({
7173
7349
  variant,
7174
7350
  ...props
7175
7351
  }) {
7176
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7352
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7177
7353
  import_tabs.Tabs.List,
7178
7354
  {
7179
7355
  "data-slot": "tabs-list",
@@ -7187,7 +7363,7 @@ function TabsTrigger({
7187
7363
  className,
7188
7364
  ...props
7189
7365
  }) {
7190
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7366
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7191
7367
  import_tabs.Tabs.Tab,
7192
7368
  {
7193
7369
  "data-slot": "tabs-trigger",
@@ -7209,7 +7385,7 @@ function TabsContent({
7209
7385
  className,
7210
7386
  ...props
7211
7387
  }) {
7212
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
7388
+ return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7213
7389
  import_tabs.Tabs.Panel,
7214
7390
  {
7215
7391
  "data-slot": "tabs-content",
@@ -7220,7 +7396,7 @@ function TabsContent({
7220
7396
  }
7221
7397
 
7222
7398
  // src/components/components/Tabs/index.tsx
7223
- var import_jsx_runtime119 = require("react/jsx-runtime");
7399
+ var import_jsx_runtime120 = require("react/jsx-runtime");
7224
7400
  function Tabs2({
7225
7401
  items = [],
7226
7402
  activeKey,
@@ -7231,8 +7407,8 @@ function Tabs2({
7231
7407
  className,
7232
7408
  style
7233
7409
  }) {
7234
- const { renderChildren } = (0, import_runtime22.useRenderer)();
7235
- return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(
7410
+ const { renderChildren } = (0, import_runtime23.useRenderer)();
7411
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
7236
7412
  Tabs,
7237
7413
  {
7238
7414
  value: activeKey,
@@ -7241,8 +7417,8 @@ function Tabs2({
7241
7417
  className,
7242
7418
  style,
7243
7419
  children: [
7244
- /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsList, { variant, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
7245
- items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
7420
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TabsList, { variant, children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
7421
+ items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
7246
7422
  TabsContent,
7247
7423
  {
7248
7424
  value: item.key,
@@ -7258,7 +7434,7 @@ function Tabs2({
7258
7434
  }
7259
7435
 
7260
7436
  // src/components/components/Text/index.tsx
7261
- var import_jsx_runtime120 = require("react/jsx-runtime");
7437
+ var import_jsx_runtime121 = require("react/jsx-runtime");
7262
7438
  var typeClassMap = {
7263
7439
  default: "",
7264
7440
  secondary: "text-muted-foreground",
@@ -7283,7 +7459,7 @@ function Text({
7283
7459
  style,
7284
7460
  children
7285
7461
  }) {
7286
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
7462
+ return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
7287
7463
  "span",
7288
7464
  {
7289
7465
  "data-slot": "text",
@@ -7304,8 +7480,8 @@ function Text({
7304
7480
  }
7305
7481
 
7306
7482
  // src/components/components/Textarea/index.tsx
7307
- var import_react29 = require("react");
7308
- var import_jsx_runtime121 = require("react/jsx-runtime");
7483
+ var import_react30 = require("react");
7484
+ var import_jsx_runtime122 = require("react/jsx-runtime");
7309
7485
  function Textarea2({
7310
7486
  name,
7311
7487
  label,
@@ -7319,9 +7495,9 @@ function Textarea2({
7319
7495
  style
7320
7496
  }) {
7321
7497
  const form = useFormContext();
7322
- const controlId = (0, import_react29.useId)();
7498
+ const controlId = (0, import_react30.useId)();
7323
7499
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
7324
- (0, import_react29.useEffect)(() => {
7500
+ (0, import_react30.useEffect)(() => {
7325
7501
  if (inForm && form && name) {
7326
7502
  form.registerField(name, rules, value);
7327
7503
  return () => form.unregisterField(name);
@@ -7330,7 +7506,7 @@ function Textarea2({
7330
7506
  });
7331
7507
  if (inForm && form && name) {
7332
7508
  const fieldValue = form.values[name];
7333
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
7509
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
7334
7510
  FieldShell,
7335
7511
  {
7336
7512
  layout: form.layout,
@@ -7339,7 +7515,7 @@ function Textarea2({
7339
7515
  error: form.errors[name],
7340
7516
  className,
7341
7517
  style,
7342
- children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
7518
+ children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
7343
7519
  Textarea,
7344
7520
  {
7345
7521
  id: controlId,
@@ -7356,7 +7532,7 @@ function Textarea2({
7356
7532
  }
7357
7533
  );
7358
7534
  }
7359
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
7535
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
7360
7536
  Textarea,
7361
7537
  {
7362
7538
  value: value ?? "",
@@ -7373,7 +7549,7 @@ function Textarea2({
7373
7549
  // src/ui/toggle.tsx
7374
7550
  var import_toggle = require("@base-ui/react/toggle");
7375
7551
  var import_class_variance_authority8 = require("class-variance-authority");
7376
- var import_jsx_runtime122 = require("react/jsx-runtime");
7552
+ var import_jsx_runtime123 = require("react/jsx-runtime");
7377
7553
  var toggleVariants = (0, import_class_variance_authority8.cva)(
7378
7554
  "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",
7379
7555
  {
@@ -7400,7 +7576,7 @@ function Toggle({
7400
7576
  size,
7401
7577
  ...props
7402
7578
  }) {
7403
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
7579
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
7404
7580
  import_toggle.Toggle,
7405
7581
  {
7406
7582
  "data-slot": "toggle",
@@ -7411,7 +7587,7 @@ function Toggle({
7411
7587
  }
7412
7588
 
7413
7589
  // src/components/components/Toggle/index.tsx
7414
- var import_jsx_runtime123 = require("react/jsx-runtime");
7590
+ var import_jsx_runtime124 = require("react/jsx-runtime");
7415
7591
  function Toggle2({
7416
7592
  text,
7417
7593
  pressed,
@@ -7422,7 +7598,7 @@ function Toggle2({
7422
7598
  className,
7423
7599
  style
7424
7600
  }) {
7425
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
7601
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
7426
7602
  Toggle,
7427
7603
  {
7428
7604
  pressed,
@@ -7441,7 +7617,7 @@ function Toggle2({
7441
7617
  var import_toggle3 = require("@base-ui/react/toggle");
7442
7618
  var import_toggle_group = require("@base-ui/react/toggle-group");
7443
7619
  var React6 = __toESM(require("react"), 1);
7444
- var import_jsx_runtime124 = require("react/jsx-runtime");
7620
+ var import_jsx_runtime125 = require("react/jsx-runtime");
7445
7621
  var ToggleGroupContext = React6.createContext({
7446
7622
  size: "default",
7447
7623
  variant: "default"
@@ -7453,7 +7629,7 @@ function ToggleGroup({
7453
7629
  children,
7454
7630
  ...props
7455
7631
  }) {
7456
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
7632
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
7457
7633
  import_toggle_group.ToggleGroup,
7458
7634
  {
7459
7635
  "data-slot": "toggle-group",
@@ -7464,7 +7640,7 @@ function ToggleGroup({
7464
7640
  className
7465
7641
  ),
7466
7642
  ...props,
7467
- children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
7643
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
7468
7644
  }
7469
7645
  );
7470
7646
  }
@@ -7476,7 +7652,7 @@ function ToggleGroupItem({
7476
7652
  ...props
7477
7653
  }) {
7478
7654
  const context = React6.useContext(ToggleGroupContext);
7479
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
7655
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
7480
7656
  import_toggle3.Toggle,
7481
7657
  {
7482
7658
  "data-slot": "toggle-group-item",
@@ -7497,7 +7673,7 @@ function ToggleGroupItem({
7497
7673
  }
7498
7674
 
7499
7675
  // src/components/components/ToggleGroup/index.tsx
7500
- var import_jsx_runtime125 = require("react/jsx-runtime");
7676
+ var import_jsx_runtime126 = require("react/jsx-runtime");
7501
7677
  function ToggleGroup2({
7502
7678
  options = [],
7503
7679
  value,
@@ -7517,7 +7693,7 @@ function ToggleGroup2({
7517
7693
  onChange?.(added ?? void 0);
7518
7694
  }
7519
7695
  };
7520
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
7696
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
7521
7697
  ToggleGroup,
7522
7698
  {
7523
7699
  value: groupValue,
@@ -7526,7 +7702,7 @@ function ToggleGroup2({
7526
7702
  onValueChange: (next) => handleChange(next),
7527
7703
  className,
7528
7704
  style,
7529
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
7705
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
7530
7706
  ToggleGroupItem,
7531
7707
  {
7532
7708
  value: option.value,
@@ -7540,17 +7716,17 @@ function ToggleGroup2({
7540
7716
  }
7541
7717
 
7542
7718
  // src/components/components/Tooltip/index.tsx
7543
- var import_jsx_runtime126 = require("react/jsx-runtime");
7719
+ var import_jsx_runtime127 = require("react/jsx-runtime");
7544
7720
  function Tooltip3({ content, children, className, style }) {
7545
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Tooltip, { children: [
7546
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
7547
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(TooltipContent, { className, style, children: content })
7721
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Tooltip, { children: [
7722
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
7723
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(TooltipContent, { className, style, children: content })
7548
7724
  ] });
7549
7725
  }
7550
7726
 
7551
7727
  // src/ui/typography.tsx
7552
7728
  var import_class_variance_authority9 = require("class-variance-authority");
7553
- var import_jsx_runtime127 = require("react/jsx-runtime");
7729
+ var import_jsx_runtime128 = require("react/jsx-runtime");
7554
7730
  var typographyVariants = (0, import_class_variance_authority9.cva)("", {
7555
7731
  variants: {
7556
7732
  variant: {
@@ -7586,7 +7762,7 @@ var variantTagMap = {
7586
7762
  };
7587
7763
  function Typography({ className, variant = "p", ...props }) {
7588
7764
  const Tag2 = variantTagMap[variant ?? "p"];
7589
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
7765
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
7590
7766
  Tag2,
7591
7767
  {
7592
7768
  "data-slot": "typography",
@@ -7598,14 +7774,14 @@ function Typography({ className, variant = "p", ...props }) {
7598
7774
  }
7599
7775
 
7600
7776
  // src/components/components/Typography/index.tsx
7601
- var import_jsx_runtime128 = require("react/jsx-runtime");
7777
+ var import_jsx_runtime129 = require("react/jsx-runtime");
7602
7778
  function Typography2({
7603
7779
  variant = "p",
7604
7780
  text,
7605
7781
  className,
7606
7782
  style
7607
7783
  }) {
7608
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typography, { variant, className, style, children: text });
7784
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Typography, { variant, className, style, children: text });
7609
7785
  }
7610
7786
 
7611
7787
  // src/components/register.ts
@@ -7621,6 +7797,7 @@ var builtinComponents = {
7621
7797
  Table: Table3,
7622
7798
  Form,
7623
7799
  Input: Input2,
7800
+ NumberInput,
7624
7801
  Select: Select2,
7625
7802
  // Layout 需要原始 DSL 子树做方向推导(含 Sider 判定),以 withScope 注册
7626
7803
  Layout: { component: Layout, withScope: true },
@@ -7748,6 +7925,7 @@ function createComponentRegistry() {
7748
7925
  Menu,
7749
7926
  Menubar,
7750
7927
  NavigationMenu,
7928
+ NumberInput,
7751
7929
  Page,
7752
7930
  Pagination,
7753
7931
  Popover,