@pactor-app/ui 1.14.0 → 1.15.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.
package/dist/index.cjs CHANGED
@@ -3800,6 +3800,7 @@ function Grid({ columns = 1, gap, className, style, children }) {
3800
3800
  // src/components/components/Header/index.tsx
3801
3801
  var import_runtime11 = require("@pactor-app/runtime");
3802
3802
  var import_lucide_react16 = require("lucide-react");
3803
+ var import_react15 = require("react");
3803
3804
  var import_jsx_runtime62 = require("react/jsx-runtime");
3804
3805
  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";
3805
3806
  function Header({
@@ -3810,6 +3811,8 @@ function Header({
3810
3811
  menu,
3811
3812
  user,
3812
3813
  locales,
3814
+ themeToggle = false,
3815
+ onThemeChange,
3813
3816
  onMenuSelect,
3814
3817
  onDropdownSelect,
3815
3818
  onUserSelect,
@@ -3830,7 +3833,7 @@ function Header({
3830
3833
  "flex h-14 shrink-0 items-center gap-4 border-b bg-card px-4",
3831
3834
  className
3832
3835
  );
3833
- if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales) {
3836
+ if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales && !themeToggle) {
3834
3837
  return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("header", { "data-slot": "layout-header", className: rootClass, style, children });
3835
3838
  }
3836
3839
  const brandNode = hasBrand && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { "data-slot": "header-brand", className: "flex items-center gap-2", children: [
@@ -3847,7 +3850,7 @@ function Header({
3847
3850
  ] });
3848
3851
  const dropdownNode = dropdown !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HeaderDropdownArea, { dropdown, onSelect: onDropdownSelect });
3849
3852
  const showLeft = brandLeft || dropdownLeft || hasMenu;
3850
- const showRight = dropdownRight || brandRight || hasLocales || hasUser;
3853
+ const showRight = dropdownRight || brandRight || hasLocales || hasUser || themeToggle;
3851
3854
  return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("header", { "data-slot": "layout-header", className: rootClass, style, children: [
3852
3855
  showLeft && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { "data-slot": "header-left", className: "flex items-center gap-4", children: [
3853
3856
  brandLeft && brandNode,
@@ -3858,6 +3861,7 @@ function Header({
3858
3861
  showRight && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { "data-slot": "header-right", className: "flex items-center gap-4", children: [
3859
3862
  dropdownRight && dropdownNode,
3860
3863
  brandRight && brandNode,
3864
+ themeToggle && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HeaderThemeToggle, { onSelect: onThemeChange }),
3861
3865
  hasLocales && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HeaderLocalesArea, { locales, onSelect: onLocaleChange }),
3862
3866
  hasUser && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HeaderUserArea, { user, onSelect: onUserSelect })
3863
3867
  ] })
@@ -4005,6 +4009,39 @@ function HeaderLocalesArea({
4005
4009
  )) })
4006
4010
  ] });
4007
4011
  }
4012
+ function readCurrentTheme() {
4013
+ if (typeof document === "undefined") {
4014
+ return "light";
4015
+ }
4016
+ return document.documentElement.getAttribute("data-pactor-theme") === "dark" ? "dark" : "light";
4017
+ }
4018
+ function HeaderThemeToggle({
4019
+ onSelect
4020
+ }) {
4021
+ const [theme, setTheme] = (0, import_react15.useState)(readCurrentTheme);
4022
+ const handleToggle = () => {
4023
+ const next = readCurrentTheme() === "dark" ? "light" : "dark";
4024
+ if (next === "dark") {
4025
+ document.documentElement.setAttribute("data-pactor-theme", "dark");
4026
+ } else {
4027
+ document.documentElement.removeAttribute("data-pactor-theme");
4028
+ }
4029
+ setTheme(next);
4030
+ onSelect?.(next);
4031
+ };
4032
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4033
+ "button",
4034
+ {
4035
+ type: "button",
4036
+ "data-slot": "header-theme-toggle",
4037
+ className: "flex size-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground",
4038
+ title: theme === "dark" ? "\u5207\u6362\u4E3A\u6D45\u8272" : "\u5207\u6362\u4E3A\u6DF1\u8272",
4039
+ "aria-label": "\u5207\u6362\u660E\u6697\u4E3B\u9898",
4040
+ onClick: handleToggle,
4041
+ children: theme === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "sun", size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Icon, { name: "moon", size: "sm" })
4042
+ }
4043
+ );
4044
+ }
4008
4045
 
4009
4046
  // src/components/components/HoverCard/index.tsx
4010
4047
  var import_runtime12 = require("@pactor-app/runtime");
@@ -4066,7 +4103,7 @@ function HoverCard2({ content, children, className, style }) {
4066
4103
 
4067
4104
  // src/components/components/Input/index.tsx
4068
4105
  var import_runtime13 = require("@pactor-app/runtime");
4069
- var import_react15 = require("react");
4106
+ var import_react16 = require("react");
4070
4107
  var import_jsx_runtime65 = require("react/jsx-runtime");
4071
4108
  function Input2({
4072
4109
  name,
@@ -4084,9 +4121,9 @@ function Input2({
4084
4121
  }) {
4085
4122
  const form = useFormContext();
4086
4123
  const { t } = (0, import_runtime13.useI18n)();
4087
- const controlId = (0, import_react15.useId)();
4124
+ const controlId = (0, import_react16.useId)();
4088
4125
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
4089
- (0, import_react15.useEffect)(() => {
4126
+ (0, import_react16.useEffect)(() => {
4090
4127
  if (inForm && form && name) {
4091
4128
  form.registerField(name, rules, value);
4092
4129
  return () => form.unregisterField(name);
@@ -4203,7 +4240,7 @@ function InputGroup2({ className, style, children }) {
4203
4240
  }
4204
4241
 
4205
4242
  // src/components/components/InputOTP/index.tsx
4206
- var import_react16 = require("react");
4243
+ var import_react17 = require("react");
4207
4244
 
4208
4245
  // src/ui/input-otp.tsx
4209
4246
  var import_input_otp = require("input-otp");
@@ -4279,15 +4316,15 @@ function InputOTP2({
4279
4316
  }) {
4280
4317
  const form = useFormContext();
4281
4318
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
4282
- (0, import_react16.useEffect)(() => {
4319
+ (0, import_react17.useEffect)(() => {
4283
4320
  if (inForm && form && name) {
4284
4321
  form.registerField(name, rules, value);
4285
4322
  return () => form.unregisterField(name);
4286
4323
  }
4287
4324
  return void 0;
4288
4325
  });
4289
- const [innerValue, setInnerValue] = (0, import_react16.useState)(typeof value === "string" ? value : "");
4290
- (0, import_react16.useEffect)(() => {
4326
+ const [innerValue, setInnerValue] = (0, import_react17.useState)(typeof value === "string" ? value : "");
4327
+ (0, import_react17.useEffect)(() => {
4291
4328
  if (!inForm) setInnerValue(typeof value === "string" ? value : "");
4292
4329
  }, [inForm, value]);
4293
4330
  const current = inForm && form && name ? typeof form.values[name] === "string" ? form.values[name] : "" : innerValue;
@@ -4525,7 +4562,7 @@ function Link2({ href, text, target, className, style, children }) {
4525
4562
  }
4526
4563
 
4527
4564
  // src/components/components/Menu/index.tsx
4528
- var import_react19 = require("react");
4565
+ var import_react20 = require("react");
4529
4566
 
4530
4567
  // src/components/components/Sidebar/rail-tooltip.tsx
4531
4568
  var import_jsx_runtime78 = require("react/jsx-runtime");
@@ -4541,7 +4578,7 @@ function RailTooltip({
4541
4578
 
4542
4579
  // src/components/components/Sidebar/index.tsx
4543
4580
  var import_runtime16 = require("@pactor-app/runtime");
4544
- var import_react18 = require("react");
4581
+ var import_react19 = require("react");
4545
4582
 
4546
4583
  // src/ui/sidebar.tsx
4547
4584
  var React5 = __toESM(require("react"), 1);
@@ -4549,13 +4586,13 @@ var import_class_variance_authority5 = require("class-variance-authority");
4549
4586
  var import_lucide_react19 = require("lucide-react");
4550
4587
 
4551
4588
  // src/hooks/use-mobile.ts
4552
- var import_react17 = require("react");
4589
+ var import_react18 = require("react");
4553
4590
  var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
4554
4591
  function useIsMobile() {
4555
- const [isMobile, setIsMobile] = (0, import_react17.useState)(
4592
+ const [isMobile, setIsMobile] = (0, import_react18.useState)(
4556
4593
  () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
4557
4594
  );
4558
- (0, import_react17.useEffect)(() => {
4595
+ (0, import_react18.useEffect)(() => {
4559
4596
  if (typeof window.matchMedia !== "function") {
4560
4597
  return;
4561
4598
  }
@@ -4732,9 +4769,7 @@ function Skeleton({ className, ...props }) {
4732
4769
  var import_jsx_runtime82 = require("react/jsx-runtime");
4733
4770
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
4734
4771
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4735
- var SIDEBAR_WIDTH = "16rem";
4736
4772
  var SIDEBAR_WIDTH_MOBILE = "18rem";
4737
- var SIDEBAR_WIDTH_ICON = "3rem";
4738
4773
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4739
4774
  var SidebarContext = React5.createContext(null);
4740
4775
  function useSidebar() {
@@ -4799,11 +4834,7 @@ function SidebarProvider({
4799
4834
  "div",
4800
4835
  {
4801
4836
  "data-slot": "sidebar-wrapper",
4802
- style: {
4803
- "--sidebar-width": SIDEBAR_WIDTH,
4804
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
4805
- ...style
4806
- },
4837
+ style,
4807
4838
  className: cn(
4808
4839
  "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
4809
4840
  className
@@ -4887,7 +4918,12 @@ function SidebarRoot({
4887
4918
  className: cn(
4888
4919
  "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
4889
4920
  side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
4890
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
4921
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : (
4922
+ // 边框色显式声明:不能只给宽度——宿主引入 Tailwind 时其
4923
+ // preflight(同为 base 层且后加载)会把默认 border-color
4924
+ // 重置为 currentColor,宽度型边框会脱离皮肤令牌
4925
+ "border-sidebar-border group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l"
4926
+ ),
4891
4927
  className
4892
4928
  ),
4893
4929
  ...props,
@@ -5188,14 +5224,14 @@ function SidebarInner({
5188
5224
  const isMobile = useIsMobile();
5189
5225
  const { state, setOpenMobile, toggleSidebar } = useSidebar();
5190
5226
  const collapsed = state === "collapsed";
5191
- const prevCollapsed = (0, import_react18.useRef)(collapsed);
5192
- (0, import_react18.useEffect)(() => {
5227
+ const prevCollapsed = (0, import_react19.useRef)(collapsed);
5228
+ (0, import_react19.useEffect)(() => {
5193
5229
  if (prevCollapsed.current !== collapsed) {
5194
5230
  prevCollapsed.current = collapsed;
5195
5231
  onCollapse?.(collapsed);
5196
5232
  }
5197
5233
  }, [collapsed, onCollapse]);
5198
- (0, import_react18.useEffect)(() => {
5234
+ (0, import_react19.useEffect)(() => {
5199
5235
  if (locationKey !== void 0) {
5200
5236
  setOpenMobile(false);
5201
5237
  }
@@ -5293,7 +5329,7 @@ function Menu2({
5293
5329
  const drawer = useSidebarDrawer();
5294
5330
  const collapsed = mode === "inline" && drawer?.collapsed === true;
5295
5331
  const collapsibleOn = collapsible && mode === "inline" && !collapsed;
5296
- const [expandedKeys, setExpandedKeys] = (0, import_react19.useState)(() => {
5332
+ const [expandedKeys, setExpandedKeys] = (0, import_react20.useState)(() => {
5297
5333
  const initial = new Set(defaultExpandedKeys ?? []);
5298
5334
  if (selectedKey !== void 0) {
5299
5335
  collectAncestors(items, selectedKey, initial);
@@ -5373,8 +5409,8 @@ function MenuEntry({
5373
5409
  const isDirectory = collapsible && hasChildren;
5374
5410
  const expanded = isDirectory && expandedKeys?.has(item.key) === true;
5375
5411
  const railDirectory = collapsed && hasChildren;
5376
- const [flyoutOpen, setFlyoutOpen] = (0, import_react19.useState)(false);
5377
- const flyoutTimer = (0, import_react19.useRef)(void 0);
5412
+ const [flyoutOpen, setFlyoutOpen] = (0, import_react20.useState)(false);
5413
+ const flyoutTimer = (0, import_react20.useRef)(void 0);
5378
5414
  const flyoutOpenNow = () => {
5379
5415
  window.clearTimeout(flyoutTimer.current);
5380
5416
  setFlyoutOpen(true);
@@ -5383,7 +5419,7 @@ function MenuEntry({
5383
5419
  window.clearTimeout(flyoutTimer.current);
5384
5420
  flyoutTimer.current = window.setTimeout(() => setFlyoutOpen(false), 200);
5385
5421
  };
5386
- (0, import_react19.useEffect)(() => () => window.clearTimeout(flyoutTimer.current), []);
5422
+ (0, import_react20.useEffect)(() => () => window.clearTimeout(flyoutTimer.current), []);
5387
5423
  const button = /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
5388
5424
  "button",
5389
5425
  {
@@ -5782,7 +5818,7 @@ function Page({ title, className, style, children }) {
5782
5818
  }
5783
5819
 
5784
5820
  // src/components/components/Pagination/index.tsx
5785
- var import_react20 = require("react");
5821
+ var import_react21 = require("react");
5786
5822
 
5787
5823
  // src/ui/pagination.tsx
5788
5824
  var import_lucide_react21 = require("lucide-react");
@@ -5910,7 +5946,7 @@ function Pagination2({
5910
5946
  className,
5911
5947
  style
5912
5948
  }) {
5913
- const [innerPage, setInnerPage] = (0, import_react20.useState)(1);
5949
+ const [innerPage, setInnerPage] = (0, import_react21.useState)(1);
5914
5950
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
5915
5951
  const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
5916
5952
  const goTo = (next) => {
@@ -6030,7 +6066,7 @@ function Progress2({ value, className, style }) {
6030
6066
  }
6031
6067
 
6032
6068
  // src/components/components/RadioGroup/index.tsx
6033
- var import_react21 = require("react");
6069
+ var import_react22 = require("react");
6034
6070
 
6035
6071
  // src/ui/radio-group.tsx
6036
6072
  var import_radio = require("@base-ui/react/radio");
@@ -6116,9 +6152,9 @@ function RadioGroup2({
6116
6152
  style
6117
6153
  }) {
6118
6154
  const form = useFormContext();
6119
- const controlId = (0, import_react21.useId)();
6155
+ const controlId = (0, import_react22.useId)();
6120
6156
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6121
- (0, import_react21.useEffect)(() => {
6157
+ (0, import_react22.useEffect)(() => {
6122
6158
  if (inForm && form && name) {
6123
6159
  form.registerField(name, rules, value);
6124
6160
  return () => form.unregisterField(name);
@@ -6190,7 +6226,7 @@ function RadioGroup2({
6190
6226
 
6191
6227
  // src/components/components/Resizable/index.tsx
6192
6228
  var import_runtime18 = require("@pactor-app/runtime");
6193
- var import_react22 = require("react");
6229
+ var import_react23 = require("react");
6194
6230
 
6195
6231
  // src/ui/resizable.tsx
6196
6232
  var import_lucide_react22 = require("lucide-react");
@@ -6243,7 +6279,7 @@ function Resizable({
6243
6279
  style
6244
6280
  }) {
6245
6281
  const { renderChildren } = (0, import_runtime18.useRenderer)();
6246
- 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: [
6282
+ 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: [
6247
6283
  index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ResizableHandle, { withHandle: true }) : null,
6248
6284
  /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6249
6285
  Panel,
@@ -6335,7 +6371,7 @@ function ScrollArea2({
6335
6371
 
6336
6372
  // src/components/components/Select/index.tsx
6337
6373
  var import_runtime19 = require("@pactor-app/runtime");
6338
- var import_react23 = require("react");
6374
+ var import_react24 = require("react");
6339
6375
 
6340
6376
  // src/ui/select.tsx
6341
6377
  var import_select = require("@base-ui/react/select");
@@ -6485,9 +6521,9 @@ function Select2({
6485
6521
  }) {
6486
6522
  const form = useFormContext();
6487
6523
  const { t } = (0, import_runtime19.useI18n)();
6488
- const controlId = (0, import_react23.useId)();
6524
+ const controlId = (0, import_react24.useId)();
6489
6525
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6490
- (0, import_react23.useEffect)(() => {
6526
+ (0, import_react24.useEffect)(() => {
6491
6527
  if (inForm && form && name) {
6492
6528
  form.registerField(name, rules, value);
6493
6529
  return () => form.unregisterField(name);
@@ -6682,7 +6718,7 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
6682
6718
  }
6683
6719
 
6684
6720
  // src/components/components/Slider/index.tsx
6685
- var import_react24 = require("react");
6721
+ var import_react25 = require("react");
6686
6722
 
6687
6723
  // src/ui/slider.tsx
6688
6724
  var import_slider = require("@base-ui/react/slider");
@@ -6764,7 +6800,7 @@ function Slider2({
6764
6800
  }) {
6765
6801
  const form = useFormContext();
6766
6802
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6767
- (0, import_react24.useEffect)(() => {
6803
+ (0, import_react25.useEffect)(() => {
6768
6804
  if (inForm && form && name) {
6769
6805
  form.registerField(name, rules, value);
6770
6806
  return () => form.unregisterField(name);
@@ -6815,7 +6851,7 @@ function Slider2({
6815
6851
 
6816
6852
  // src/components/components/Sonner/index.tsx
6817
6853
  var import_runtime20 = require("@pactor-app/runtime");
6818
- var import_react25 = require("react");
6854
+ var import_react26 = require("react");
6819
6855
 
6820
6856
  // src/ui/toast.tsx
6821
6857
  var import_toast = require("@base-ui/react/toast");
@@ -6895,7 +6931,7 @@ function Toaster({ className }) {
6895
6931
  var import_jsx_runtime111 = require("react/jsx-runtime");
6896
6932
  function Sonner({ className, style }) {
6897
6933
  const { context } = (0, import_runtime20.useRenderer)();
6898
- (0, import_react25.useEffect)(() => {
6934
+ (0, import_react26.useEffect)(() => {
6899
6935
  const { actions } = context;
6900
6936
  if (actions.has("toast")) {
6901
6937
  return;
@@ -6953,7 +6989,7 @@ function Statistic({ title, value, precision, suffix, className, style }) {
6953
6989
  }
6954
6990
 
6955
6991
  // src/components/components/Switch/index.tsx
6956
- var import_react26 = require("react");
6992
+ var import_react27 = require("react");
6957
6993
 
6958
6994
  // src/ui/switch.tsx
6959
6995
  var import_switch = require("@base-ui/react/switch");
@@ -6992,9 +7028,9 @@ function Switch2({
6992
7028
  style
6993
7029
  }) {
6994
7030
  const form = useFormContext();
6995
- const controlId = (0, import_react26.useId)();
7031
+ const controlId = (0, import_react27.useId)();
6996
7032
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
6997
- (0, import_react26.useEffect)(() => {
7033
+ (0, import_react27.useEffect)(() => {
6998
7034
  if (inForm && form && name) {
6999
7035
  form.registerField(name, rules, value);
7000
7036
  return () => form.unregisterField(name);
@@ -7048,7 +7084,7 @@ function Switch2({
7048
7084
 
7049
7085
  // src/components/components/Table/index.tsx
7050
7086
  var import_runtime21 = require("@pactor-app/runtime");
7051
- var import_react27 = require("react");
7087
+ var import_react28 = require("react");
7052
7088
  var import_jsx_runtime117 = require("react/jsx-runtime");
7053
7089
  function renderCellValue2(value) {
7054
7090
  if (value === void 0 || value === null) {
@@ -7071,7 +7107,7 @@ function Table3({
7071
7107
  }) {
7072
7108
  const { renderChildren } = (0, import_runtime21.useRenderer)();
7073
7109
  const { t } = (0, import_runtime21.useI18n)();
7074
- const [current, setCurrent] = (0, import_react27.useState)(1);
7110
+ const [current, setCurrent] = (0, import_react28.useState)(1);
7075
7111
  const pageSize = pagination === false ? void 0 : pagination?.pageSize;
7076
7112
  const total = dataSource.length;
7077
7113
  const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
@@ -7306,7 +7342,7 @@ function Text({
7306
7342
  }
7307
7343
 
7308
7344
  // src/components/components/Textarea/index.tsx
7309
- var import_react28 = require("react");
7345
+ var import_react29 = require("react");
7310
7346
  var import_jsx_runtime121 = require("react/jsx-runtime");
7311
7347
  function Textarea2({
7312
7348
  name,
@@ -7321,9 +7357,9 @@ function Textarea2({
7321
7357
  style
7322
7358
  }) {
7323
7359
  const form = useFormContext();
7324
- const controlId = (0, import_react28.useId)();
7360
+ const controlId = (0, import_react29.useId)();
7325
7361
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
7326
- (0, import_react28.useEffect)(() => {
7362
+ (0, import_react29.useEffect)(() => {
7327
7363
  if (inForm && form && name) {
7328
7364
  form.registerField(name, rules, value);
7329
7365
  return () => form.unregisterField(name);
@@ -7751,10 +7787,10 @@ function collectDefaultOpenKeys(registry, activeMenuId) {
7751
7787
  var import_permission = require("@pactor-app/permission");
7752
7788
  var import_router = require("@pactor-app/router");
7753
7789
  var import_runtime23 = require("@pactor-app/runtime");
7754
- var import_react30 = require("react");
7790
+ var import_react31 = require("react");
7755
7791
 
7756
7792
  // src/layout/admin/use-media-query.ts
7757
- var import_react29 = require("react");
7793
+ var import_react30 = require("react");
7758
7794
  var BREAKPOINT_PX = {
7759
7795
  xs: 480,
7760
7796
  sm: 576,
@@ -7764,10 +7800,10 @@ var BREAKPOINT_PX = {
7764
7800
  xxl: 1600
7765
7801
  };
7766
7802
  function useMediaQuery(query) {
7767
- const [matches, setMatches] = (0, import_react29.useState)(
7803
+ const [matches, setMatches] = (0, import_react30.useState)(
7768
7804
  () => typeof window !== "undefined" && typeof window.matchMedia === "function" ? window.matchMedia(query).matches : false
7769
7805
  );
7770
- (0, import_react29.useEffect)(() => {
7806
+ (0, import_react30.useEffect)(() => {
7771
7807
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
7772
7808
  return;
7773
7809
  }
@@ -7810,8 +7846,8 @@ function CollapsedGroupFlyout({
7810
7846
  activeMenuId,
7811
7847
  defaultOpenKeys
7812
7848
  }) {
7813
- const [open, setOpen] = (0, import_react30.useState)(false);
7814
- const closeTimer = (0, import_react30.useRef)(void 0);
7849
+ const [open, setOpen] = (0, import_react31.useState)(false);
7850
+ const closeTimer = (0, import_react31.useRef)(void 0);
7815
7851
  const openNow = () => {
7816
7852
  window.clearTimeout(closeTimer.current);
7817
7853
  setOpen(true);
@@ -7820,7 +7856,7 @@ function CollapsedGroupFlyout({
7820
7856
  window.clearTimeout(closeTimer.current);
7821
7857
  closeTimer.current = window.setTimeout(() => setOpen(false), 200);
7822
7858
  };
7823
- (0, import_react30.useEffect)(() => () => window.clearTimeout(closeTimer.current), []);
7859
+ (0, import_react31.useEffect)(() => () => window.clearTimeout(closeTimer.current), []);
7824
7860
  return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
7825
7861
  /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
7826
7862
  PopoverTrigger,
@@ -8004,16 +8040,16 @@ function AdminLayout({
8004
8040
  const showTabs = config.tabs ?? false;
8005
8041
  const showBreadcrumb = config.breadcrumb ?? false;
8006
8042
  const showFooter = config.footer ?? false;
8007
- const [collapsed, setCollapsed] = (0, import_react30.useState)(config.collapsed ?? false);
8043
+ const [collapsed, setCollapsed] = (0, import_react31.useState)(config.collapsed ?? false);
8008
8044
  const broken = useBreakpointBelow(config.breakpoint);
8009
8045
  const effectiveCollapsed = collapsed || broken;
8010
- const [bridgeRoute, setBridgeRoute] = (0, import_react30.useState)(
8046
+ const [bridgeRoute, setBridgeRoute] = (0, import_react31.useState)(
8011
8047
  () => (0, import_router.resolveRoute)(registry, bridge.getLocation())
8012
8048
  );
8013
- const [tabs, setTabs] = (0, import_react30.useState)([]);
8014
- const tabsRef = (0, import_react30.useRef)(tabs);
8049
+ const [tabs, setTabs] = (0, import_react31.useState)([]);
8050
+ const tabsRef = (0, import_react31.useRef)(tabs);
8015
8051
  tabsRef.current = tabs;
8016
- (0, import_react30.useEffect)(() => {
8052
+ (0, import_react31.useEffect)(() => {
8017
8053
  const handleLocation = (location) => {
8018
8054
  const next = (0, import_router.resolveRoute)(registry, location);
8019
8055
  setBridgeRoute(next);
@@ -8034,16 +8070,16 @@ function AdminLayout({
8034
8070
  }, [registry, bridge]);
8035
8071
  const route = routeProp ?? bridgeRoute;
8036
8072
  const activeMenuId = route?.activeMenu;
8037
- const visibleMenus = (0, import_react30.useMemo)(
8073
+ const visibleMenus = (0, import_react31.useMemo)(
8038
8074
  () => buildVisibleMenuTree(registry, permissionChecker),
8039
8075
  [registry, permissionChecker]
8040
8076
  );
8041
- const defaultOpenKeysRef = (0, import_react30.useRef)(null);
8077
+ const defaultOpenKeysRef = (0, import_react31.useRef)(null);
8042
8078
  if (defaultOpenKeysRef.current === null) {
8043
8079
  defaultOpenKeysRef.current = collectDefaultOpenKeys(registry, activeMenuId);
8044
8080
  }
8045
8081
  const defaultOpenKeys = defaultOpenKeysRef.current;
8046
- const activeTopId = (0, import_react30.useMemo)(() => {
8082
+ const activeTopId = (0, import_react31.useMemo)(() => {
8047
8083
  if (activeMenuId !== void 0) {
8048
8084
  const chain = findMenuChain(registry, activeMenuId);
8049
8085
  if (chain.length > 0) {
@@ -8052,11 +8088,11 @@ function AdminLayout({
8052
8088
  }
8053
8089
  return void 0;
8054
8090
  }, [registry, activeMenuId]);
8055
- const [selectedTopId, setSelectedTopId] = (0, import_react30.useState)();
8091
+ const [selectedTopId, setSelectedTopId] = (0, import_react31.useState)();
8056
8092
  const secondaryTopId = selectedTopId ?? activeTopId ?? visibleMenus.find((m) => m.type === "group")?.id ?? visibleMenus[0]?.id;
8057
8093
  const secondaryTop = visibleMenus.find((m) => m.id === secondaryTopId);
8058
8094
  const hasSecondary = (secondaryTop?.children?.length ?? 0) > 0;
8059
- const breadcrumbItems = (0, import_react30.useMemo)(() => {
8095
+ const breadcrumbItems = (0, import_react31.useMemo)(() => {
8060
8096
  if (!showBreadcrumb || activeMenuId === void 0) {
8061
8097
  return [];
8062
8098
  }
@@ -8309,7 +8345,7 @@ function BlankLayout({ children }) {
8309
8345
 
8310
8346
  // src/layout/chat/ChatLayout.tsx
8311
8347
  var import_permission2 = require("@pactor-app/permission");
8312
- var import_react31 = require("react");
8348
+ var import_react32 = require("react");
8313
8349
  var import_jsx_runtime131 = require("react/jsx-runtime");
8314
8350
  function ChatLayout({
8315
8351
  brand,
@@ -8325,7 +8361,7 @@ function ChatLayout({
8325
8361
  sidebarFooter,
8326
8362
  children
8327
8363
  }) {
8328
- const registryMenus = (0, import_react31.useMemo)(() => {
8364
+ const registryMenus = (0, import_react32.useMemo)(() => {
8329
8365
  if (menu !== void 0 || registry === void 0) {
8330
8366
  return [];
8331
8367
  }
@@ -8334,10 +8370,10 @@ function ChatLayout({
8334
8370
  return visible.flatMap((item) => menuItemToMenuData(item));
8335
8371
  }, [menu, registry, permissionChecker]);
8336
8372
  const menuItems = menu ?? registryMenus;
8337
- const [bridgePath, setBridgePath] = (0, import_react31.useState)(
8373
+ const [bridgePath, setBridgePath] = (0, import_react32.useState)(
8338
8374
  () => bridge?.getLocation().pathname ?? "/"
8339
8375
  );
8340
- (0, import_react31.useEffect)(() => {
8376
+ (0, import_react32.useEffect)(() => {
8341
8377
  if (bridge === void 0) {
8342
8378
  return;
8343
8379
  }
@@ -8345,7 +8381,7 @@ function ChatLayout({
8345
8381
  setBridgePath(location.pathname);
8346
8382
  });
8347
8383
  }, [bridge]);
8348
- const activeKey = (0, import_react31.useMemo)(() => {
8384
+ const activeKey = (0, import_react32.useMemo)(() => {
8349
8385
  if (activeMenuKey !== void 0) {
8350
8386
  return activeMenuKey;
8351
8387
  }
@@ -8720,7 +8756,7 @@ function isRecord(value) {
8720
8756
 
8721
8757
  // src/interaction/provider.tsx
8722
8758
  var import_runtime25 = require("@pactor-app/runtime");
8723
- var import_react32 = require("react");
8759
+ var import_react33 = require("react");
8724
8760
  var import_react_dom = require("react-dom");
8725
8761
  var import_jsx_runtime134 = require("react/jsx-runtime");
8726
8762
  var TOAST_DURATION = 3e3;
@@ -8734,11 +8770,11 @@ function InteractionProvider({
8734
8770
  bridge,
8735
8771
  children
8736
8772
  }) {
8737
- const [confirmState, setConfirmState] = (0, import_react32.useState)(null);
8738
- const [confirmOpen, setConfirmOpen] = (0, import_react32.useState)(false);
8739
- const [toasts, setToasts] = (0, import_react32.useState)([]);
8773
+ const [confirmState, setConfirmState] = (0, import_react33.useState)(null);
8774
+ const [confirmOpen, setConfirmOpen] = (0, import_react33.useState)(false);
8775
+ const [toasts, setToasts] = (0, import_react33.useState)([]);
8740
8776
  const { t } = (0, import_runtime25.useI18n)();
8741
- const { modal, message } = (0, import_react32.useMemo)(() => {
8777
+ const { modal, message } = (0, import_react33.useMemo)(() => {
8742
8778
  const pushToast = (type, content) => {
8743
8779
  const id = Date.now() + Math.random();
8744
8780
  setToasts((prev) => [...prev, { id, type, content }]);
@@ -8760,7 +8796,7 @@ function InteractionProvider({
8760
8796
  };
8761
8797
  return { modal: modalImpl, message: messageImpl };
8762
8798
  }, []);
8763
- (0, import_react32.useEffect)(() => {
8799
+ (0, import_react33.useEffect)(() => {
8764
8800
  bridge.modal = modal;
8765
8801
  bridge.message = message;
8766
8802
  return () => {
@@ -8843,7 +8879,7 @@ function InteractionProvider({
8843
8879
  // src/interaction/host.tsx
8844
8880
  var import_lucide_react27 = require("lucide-react");
8845
8881
  var import_runtime26 = require("@pactor-app/runtime");
8846
- var import_react33 = require("react");
8882
+ var import_react34 = require("react");
8847
8883
  var import_jsx_runtime135 = require("react/jsx-runtime");
8848
8884
  function toCssWidth(width) {
8849
8885
  if (width === void 0) {
@@ -8853,11 +8889,11 @@ function toCssWidth(width) {
8853
8889
  }
8854
8890
  function OverlayHost({ manager, resolvePage }) {
8855
8891
  const renderer = (0, import_runtime26.useRenderer)();
8856
- const stack = (0, import_react33.useSyncExternalStore)(
8892
+ const stack = (0, import_react34.useSyncExternalStore)(
8857
8893
  (onChange) => manager.subscribe(onChange),
8858
8894
  () => manager.stack()
8859
8895
  );
8860
- (0, import_react33.useSyncExternalStore)(
8896
+ (0, import_react34.useSyncExternalStore)(
8861
8897
  (onChange) => {
8862
8898
  const offState = renderer.context.state.subscribe(onChange);
8863
8899
  const offData = renderer.context.data.subscribe(onChange);
@@ -9004,9 +9040,9 @@ function PageOverlayBody({
9004
9040
  renderer,
9005
9041
  resolvePage
9006
9042
  }) {
9007
- const [child, setChild] = (0, import_react33.useState)(null);
9008
- const [error, setError] = (0, import_react33.useState)(null);
9009
- (0, import_react33.useEffect)(() => {
9043
+ const [child, setChild] = (0, import_react34.useState)(null);
9044
+ const [error, setError] = (0, import_react34.useState)(null);
9045
+ (0, import_react34.useEffect)(() => {
9010
9046
  if (!resolvePage) {
9011
9047
  setError(
9012
9048
  new Error(
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { Accordion, AccordionItemData, AccordionProps, Alert, AlertDialog, AlertDialogProps, AlertProps, AlertVariant, AspectRatio, AspectRatioProps, Avatar, AvatarProps, Badge, BadgeProps, BadgeVariant, Breadcrumb, BreadcrumbItemData, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, ButtonSize, ButtonVariant, Calendar, CalendarProps, Card, CardProps, Carousel, CarouselImage, CarouselItemData, CarouselProps, Chart, ChartProps, ChartType, ChatInput, ChatInputProps, Checkbox, CheckboxProps, Collapsible, CollapsibleProps, Combobox, ComboboxOption, ComboboxProps, Command, CommandGroupData, CommandItemData, CommandProps, Content, ContentProps, ContextMenu, ContextMenuItemData, ContextMenuProps, DataTable, DataTableColumn, DataTablePagination, DataTableProps, DataTableSort, DataTableSortOrder, DatePicker, DatePickerPreset, DatePickerPresetKey, DatePickerProps, DatePickerRangeProps, DatePickerSingleProps, DateRangeValue, Dialog, DialogProps, Drawer, DrawerPlacement, DrawerProps, DropdownMenu, DropdownMenuItemData, DropdownMenuProps, Empty, EmptyProps, Field, FieldProps, FieldRule, Flex, FlexProps, Footer, FooterProps, Form, FormContextValue, FormProps, Grid, GridProps, Header, HeaderBrandPosition, HeaderDropdown, HeaderDropdownItem, HeaderLocale, HeaderMenuItem, HeaderProps, HeaderUser, HeaderUserItem, HoverCard, HoverCardProps, ICONS, Icon, IconProps, IconSize, Input, InputGroup, InputGroupProps, InputOTP, InputOTPProps, InputProps, Item, ItemProps, Kbd, KbdProps, Label, LabelProps, Layout, LayoutProps, Link, LinkProps, Menu, MenuItem, MenuProps, Menubar, MenubarLeafItem, MenubarMenuData, MenubarProps, NavigationMenu, NavigationMenuChildItem, NavigationMenuItemData, NavigationMenuProps, Page, PageProps, Pagination, PaginationProps, Popover, PopoverProps, Progress, ProgressProps, RadioGroup, RadioGroupOption, RadioGroupProps, RailTooltip, Resizable, ResizablePanelData, ResizableProps, ScrollArea, ScrollAreaProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, SheetSide, Sidebar, SidebarBrand, SidebarNavItem, SidebarProps, Sider, SiderProps, Skeleton, SkeletonProps, SkeletonShape, Slider, SliderProps, Sonner, SonnerProps, Spinner, SpinnerProps, SpinnerSize, Statistic, StatisticProps, Switch, SwitchProps, TabItem, Table, TableColumn, TablePagination, TablePaginationInfo, TableProps, Tabs, TabsProps, Text, TextProps, TextType, Textarea, TextareaProps, Toggle, ToggleGroup, ToggleGroupOption, ToggleGroupProps, ToggleProps, Tooltip, TooltipProps, Typography, TypographyProps, TypographyVariant, builtinComponents, createComponentRegistry, normalizeIconName, registerBuiltinComponents, useFormContext, useSidebarDrawer } from './components/index.cjs';
1
+ export { Accordion, AccordionItemData, AccordionProps, Alert, AlertDialog, AlertDialogProps, AlertProps, AlertVariant, AspectRatio, AspectRatioProps, Avatar, AvatarProps, Badge, BadgeProps, BadgeVariant, Breadcrumb, BreadcrumbItemData, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, ButtonSize, ButtonVariant, Calendar, CalendarProps, Card, CardProps, Carousel, CarouselImage, CarouselItemData, CarouselProps, Chart, ChartProps, ChartType, ChatInput, ChatInputProps, Checkbox, CheckboxProps, Collapsible, CollapsibleProps, Combobox, ComboboxOption, ComboboxProps, Command, CommandGroupData, CommandItemData, CommandProps, Content, ContentProps, ContextMenu, ContextMenuItemData, ContextMenuProps, DataTable, DataTableColumn, DataTablePagination, DataTableProps, DataTableSort, DataTableSortOrder, DatePicker, DatePickerPreset, DatePickerPresetKey, DatePickerProps, DatePickerRangeProps, DatePickerSingleProps, DateRangeValue, Dialog, DialogProps, Drawer, DrawerPlacement, DrawerProps, DropdownMenu, DropdownMenuItemData, DropdownMenuProps, Empty, EmptyProps, Field, FieldProps, FieldRule, Flex, FlexProps, Footer, FooterProps, Form, FormContextValue, FormProps, Grid, GridProps, Header, HeaderBrandPosition, HeaderDropdown, HeaderDropdownItem, HeaderLocale, HeaderMenuItem, HeaderProps, HeaderTheme, HeaderUser, HeaderUserItem, HoverCard, HoverCardProps, ICONS, Icon, IconProps, IconSize, Input, InputGroup, InputGroupProps, InputOTP, InputOTPProps, InputProps, Item, ItemProps, Kbd, KbdProps, Label, LabelProps, Layout, LayoutProps, Link, LinkProps, Menu, MenuItem, MenuProps, Menubar, MenubarLeafItem, MenubarMenuData, MenubarProps, NavigationMenu, NavigationMenuChildItem, NavigationMenuItemData, NavigationMenuProps, Page, PageProps, Pagination, PaginationProps, Popover, PopoverProps, Progress, ProgressProps, RadioGroup, RadioGroupOption, RadioGroupProps, RailTooltip, Resizable, ResizablePanelData, ResizableProps, ScrollArea, ScrollAreaProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, SheetSide, Sidebar, SidebarBrand, SidebarNavItem, SidebarProps, Sider, SiderProps, Skeleton, SkeletonProps, SkeletonShape, Slider, SliderProps, Sonner, SonnerProps, Spinner, SpinnerProps, SpinnerSize, Statistic, StatisticProps, Switch, SwitchProps, TabItem, Table, TableColumn, TablePagination, TablePaginationInfo, TableProps, Tabs, TabsProps, Text, TextProps, TextType, Textarea, TextareaProps, Toggle, ToggleGroup, ToggleGroupOption, ToggleGroupProps, ToggleProps, Tooltip, TooltipProps, Typography, TypographyProps, TypographyVariant, builtinComponents, createComponentRegistry, normalizeIconName, registerBuiltinComponents, useFormContext, useSidebarDrawer } from './components/index.cjs';
2
2
  export { AdminBrand, AdminLayout, AdminLayoutBreakpoint, AdminLayoutConfig, AdminLayoutMode, AdminLayoutProps, BlankLayout, BlankLayoutProps, ChatLayout, ChatLayoutBrand, ChatLayoutMenuItem, ChatLayoutProps, LandingLayout, LandingLayoutProps, LayoutComponent, LayoutRegistry, LoginBrand, LoginLayout, LoginLayoutProps, collectDefaultOpenKeys, createLayoutRegistry, findMenuChain, registerBuiltinLayouts, resolveLayout } from './layout/index.cjs';
3
3
  export { InteractionProvider, InteractionProviderProps, OVERLAY_CANCEL_PAYLOAD, OverlayConfig, OverlayEntry, OverlayHost, OverlayHostProps, OverlayListener, OverlayManager, ResolvePageFn, UiBridge, UiMessage, UiModal, createUiBridge, registerInteractionActions } from './interaction/index.cjs';
4
4
  import '@pactor-app/runtime';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Accordion, AccordionItemData, AccordionProps, Alert, AlertDialog, AlertDialogProps, AlertProps, AlertVariant, AspectRatio, AspectRatioProps, Avatar, AvatarProps, Badge, BadgeProps, BadgeVariant, Breadcrumb, BreadcrumbItemData, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, ButtonSize, ButtonVariant, Calendar, CalendarProps, Card, CardProps, Carousel, CarouselImage, CarouselItemData, CarouselProps, Chart, ChartProps, ChartType, ChatInput, ChatInputProps, Checkbox, CheckboxProps, Collapsible, CollapsibleProps, Combobox, ComboboxOption, ComboboxProps, Command, CommandGroupData, CommandItemData, CommandProps, Content, ContentProps, ContextMenu, ContextMenuItemData, ContextMenuProps, DataTable, DataTableColumn, DataTablePagination, DataTableProps, DataTableSort, DataTableSortOrder, DatePicker, DatePickerPreset, DatePickerPresetKey, DatePickerProps, DatePickerRangeProps, DatePickerSingleProps, DateRangeValue, Dialog, DialogProps, Drawer, DrawerPlacement, DrawerProps, DropdownMenu, DropdownMenuItemData, DropdownMenuProps, Empty, EmptyProps, Field, FieldProps, FieldRule, Flex, FlexProps, Footer, FooterProps, Form, FormContextValue, FormProps, Grid, GridProps, Header, HeaderBrandPosition, HeaderDropdown, HeaderDropdownItem, HeaderLocale, HeaderMenuItem, HeaderProps, HeaderUser, HeaderUserItem, HoverCard, HoverCardProps, ICONS, Icon, IconProps, IconSize, Input, InputGroup, InputGroupProps, InputOTP, InputOTPProps, InputProps, Item, ItemProps, Kbd, KbdProps, Label, LabelProps, Layout, LayoutProps, Link, LinkProps, Menu, MenuItem, MenuProps, Menubar, MenubarLeafItem, MenubarMenuData, MenubarProps, NavigationMenu, NavigationMenuChildItem, NavigationMenuItemData, NavigationMenuProps, Page, PageProps, Pagination, PaginationProps, Popover, PopoverProps, Progress, ProgressProps, RadioGroup, RadioGroupOption, RadioGroupProps, RailTooltip, Resizable, ResizablePanelData, ResizableProps, ScrollArea, ScrollAreaProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, SheetSide, Sidebar, SidebarBrand, SidebarNavItem, SidebarProps, Sider, SiderProps, Skeleton, SkeletonProps, SkeletonShape, Slider, SliderProps, Sonner, SonnerProps, Spinner, SpinnerProps, SpinnerSize, Statistic, StatisticProps, Switch, SwitchProps, TabItem, Table, TableColumn, TablePagination, TablePaginationInfo, TableProps, Tabs, TabsProps, Text, TextProps, TextType, Textarea, TextareaProps, Toggle, ToggleGroup, ToggleGroupOption, ToggleGroupProps, ToggleProps, Tooltip, TooltipProps, Typography, TypographyProps, TypographyVariant, builtinComponents, createComponentRegistry, normalizeIconName, registerBuiltinComponents, useFormContext, useSidebarDrawer } from './components/index.js';
1
+ export { Accordion, AccordionItemData, AccordionProps, Alert, AlertDialog, AlertDialogProps, AlertProps, AlertVariant, AspectRatio, AspectRatioProps, Avatar, AvatarProps, Badge, BadgeProps, BadgeVariant, Breadcrumb, BreadcrumbItemData, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, ButtonSize, ButtonVariant, Calendar, CalendarProps, Card, CardProps, Carousel, CarouselImage, CarouselItemData, CarouselProps, Chart, ChartProps, ChartType, ChatInput, ChatInputProps, Checkbox, CheckboxProps, Collapsible, CollapsibleProps, Combobox, ComboboxOption, ComboboxProps, Command, CommandGroupData, CommandItemData, CommandProps, Content, ContentProps, ContextMenu, ContextMenuItemData, ContextMenuProps, DataTable, DataTableColumn, DataTablePagination, DataTableProps, DataTableSort, DataTableSortOrder, DatePicker, DatePickerPreset, DatePickerPresetKey, DatePickerProps, DatePickerRangeProps, DatePickerSingleProps, DateRangeValue, Dialog, DialogProps, Drawer, DrawerPlacement, DrawerProps, DropdownMenu, DropdownMenuItemData, DropdownMenuProps, Empty, EmptyProps, Field, FieldProps, FieldRule, Flex, FlexProps, Footer, FooterProps, Form, FormContextValue, FormProps, Grid, GridProps, Header, HeaderBrandPosition, HeaderDropdown, HeaderDropdownItem, HeaderLocale, HeaderMenuItem, HeaderProps, HeaderTheme, HeaderUser, HeaderUserItem, HoverCard, HoverCardProps, ICONS, Icon, IconProps, IconSize, Input, InputGroup, InputGroupProps, InputOTP, InputOTPProps, InputProps, Item, ItemProps, Kbd, KbdProps, Label, LabelProps, Layout, LayoutProps, Link, LinkProps, Menu, MenuItem, MenuProps, Menubar, MenubarLeafItem, MenubarMenuData, MenubarProps, NavigationMenu, NavigationMenuChildItem, NavigationMenuItemData, NavigationMenuProps, Page, PageProps, Pagination, PaginationProps, Popover, PopoverProps, Progress, ProgressProps, RadioGroup, RadioGroupOption, RadioGroupProps, RailTooltip, Resizable, ResizablePanelData, ResizableProps, ScrollArea, ScrollAreaProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, SheetSide, Sidebar, SidebarBrand, SidebarNavItem, SidebarProps, Sider, SiderProps, Skeleton, SkeletonProps, SkeletonShape, Slider, SliderProps, Sonner, SonnerProps, Spinner, SpinnerProps, SpinnerSize, Statistic, StatisticProps, Switch, SwitchProps, TabItem, Table, TableColumn, TablePagination, TablePaginationInfo, TableProps, Tabs, TabsProps, Text, TextProps, TextType, Textarea, TextareaProps, Toggle, ToggleGroup, ToggleGroupOption, ToggleGroupProps, ToggleProps, Tooltip, TooltipProps, Typography, TypographyProps, TypographyVariant, builtinComponents, createComponentRegistry, normalizeIconName, registerBuiltinComponents, useFormContext, useSidebarDrawer } from './components/index.js';
2
2
  export { AdminBrand, AdminLayout, AdminLayoutBreakpoint, AdminLayoutConfig, AdminLayoutMode, AdminLayoutProps, BlankLayout, BlankLayoutProps, ChatLayout, ChatLayoutBrand, ChatLayoutMenuItem, ChatLayoutProps, LandingLayout, LandingLayoutProps, LayoutComponent, LayoutRegistry, LoginBrand, LoginLayout, LoginLayoutProps, collectDefaultOpenKeys, createLayoutRegistry, findMenuChain, registerBuiltinLayouts, resolveLayout } from './layout/index.js';
3
3
  export { InteractionProvider, InteractionProviderProps, OVERLAY_CANCEL_PAYLOAD, OverlayConfig, OverlayEntry, OverlayHost, OverlayHostProps, OverlayListener, OverlayManager, ResolvePageFn, UiBridge, UiMessage, UiModal, createUiBridge, registerInteractionActions } from './interaction/index.js';
4
4
  import '@pactor-app/runtime';