@pactor-app/ui 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,8 @@
1
1
  import {
2
- Icon
3
- } from "./chunk-6JNCDPGS.js";
2
+ Icon,
3
+ Menu,
4
+ Sidebar
5
+ } from "./chunk-EVGIS2ZE.js";
4
6
  import {
5
7
  Alert,
6
8
  AlertDescription,
@@ -69,7 +71,6 @@ import {
69
71
  HoverCard,
70
72
  HoverCardContent,
71
73
  HoverCardTrigger,
72
- Input,
73
74
  InputGroup,
74
75
  InputOTP,
75
76
  InputOTPGroup,
@@ -114,12 +115,6 @@ import {
114
115
  SelectItem,
115
116
  SelectTrigger,
116
117
  SelectValue,
117
- Separator,
118
- Sheet,
119
- SheetContent,
120
- SheetHeader,
121
- SheetTitle,
122
- Skeleton,
123
118
  Slider,
124
119
  SliderControl,
125
120
  SliderIndicator,
@@ -142,16 +137,12 @@ import {
142
137
  Toggle,
143
138
  ToggleGroup,
144
139
  ToggleGroupItem,
145
- Tooltip,
146
- TooltipContent,
147
- TooltipTrigger,
148
140
  Typography,
149
141
  chartColor,
150
142
  navigationMenuTriggerStyle,
151
143
  toast
152
- } from "./chunk-BVHAP22U.js";
144
+ } from "./chunk-UKA7C3JP.js";
153
145
  import {
154
- Button,
155
146
  Dialog,
156
147
  DialogContent,
157
148
  DialogDescription,
@@ -162,7 +153,7 @@ import {
162
153
  DrawerContent,
163
154
  DrawerHeader,
164
155
  DrawerTitle
165
- } from "./chunk-F3H23KYG.js";
156
+ } from "./chunk-F42SGQNW.js";
166
157
  import {
167
158
  Accordion,
168
159
  AccordionContent,
@@ -172,13 +163,24 @@ import {
172
163
  CardContent,
173
164
  CardHeader,
174
165
  CardTitle,
166
+ Input,
175
167
  Popover,
176
168
  PopoverContent,
177
- PopoverTrigger
178
- } from "./chunk-GL7IO22L.js";
169
+ PopoverTrigger,
170
+ Separator,
171
+ Sheet,
172
+ SheetContent,
173
+ SheetHeader,
174
+ SheetTitle,
175
+ Skeleton,
176
+ Tooltip,
177
+ TooltipContent,
178
+ TooltipTrigger
179
+ } from "./chunk-L4Z7MNYY.js";
179
180
  import {
181
+ Button,
180
182
  cn
181
- } from "./chunk-RQHJBTEU.js";
183
+ } from "./chunk-WKJUCGV4.js";
182
184
 
183
185
  // src/components/register.ts
184
186
  import { Registry } from "@pactor-app/core";
@@ -928,7 +930,7 @@ function ChatInput({
928
930
  {
929
931
  "data-slot": "chat-input",
930
932
  className: cn(
931
- "rounded-xl border border-border bg-background transition-shadow focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50",
933
+ "rounded-xl border border-border bg-card transition-shadow focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50",
932
934
  className
933
935
  ),
934
936
  style,
@@ -1302,9 +1304,9 @@ function Field2({ label, description, error, children, className, style }) {
1302
1304
  // src/components/components/Flex/index.tsx
1303
1305
  import { jsx as jsx28 } from "react/jsx-runtime";
1304
1306
  var gapClass = {
1305
- small: "gap-2",
1306
- middle: "gap-4",
1307
- large: "gap-6"
1307
+ small: "gap-(--flex-gap-sm)",
1308
+ middle: "gap-(--flex-gap-md)",
1309
+ large: "gap-(--flex-gap-lg)"
1308
1310
  };
1309
1311
  var justifyClass = {
1310
1312
  start: "justify-start",
@@ -1337,6 +1339,7 @@ function Flex({
1337
1339
  className: cn(
1338
1340
  "flex",
1339
1341
  direction === "vertical" && "flex-col",
1342
+ gap === void 0 && "gap-(--flex-gap)",
1340
1343
  typeof gap === "string" && gapClass[gap],
1341
1344
  justify && justifyClass[justify],
1342
1345
  align && alignClass[align],
@@ -1477,7 +1480,7 @@ function Grid({ columns = 1, gap, className, style, children }) {
1477
1480
  {
1478
1481
  "data-slot": "grid",
1479
1482
  "data-columns": cols,
1480
- className: cn("grid", className),
1483
+ className: cn("grid", gap === void 0 && "gap-(--grid-gap)", className),
1481
1484
  style: {
1482
1485
  gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,
1483
1486
  ...gap !== void 0 ? { gap } : {},
@@ -1518,7 +1521,7 @@ function Header({
1518
1521
  const hasLocales = locales !== void 0 && locales.length > 0;
1519
1522
  const hasUser = user !== void 0;
1520
1523
  const rootClass = cn(
1521
- "flex h-14 shrink-0 items-center gap-4 border-b bg-background px-4",
1524
+ "flex h-14 shrink-0 items-center gap-4 border-b bg-card px-4",
1522
1525
  className
1523
1526
  );
1524
1527
  if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales) {
@@ -1563,7 +1566,7 @@ function HeaderDropdownArea({
1563
1566
  DropdownMenuTrigger,
1564
1567
  {
1565
1568
  "data-slot": "header-dropdown",
1566
- className: cn(menuItemClass, "outline-hidden"),
1569
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
1567
1570
  children: [
1568
1571
  dropdown.label,
1569
1572
  /* @__PURE__ */ jsx32(ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
@@ -1595,7 +1598,7 @@ function HeaderMenuArea({
1595
1598
  {
1596
1599
  "data-slot": "header-menu-item",
1597
1600
  "data-key": item.key,
1598
- className: cn(menuItemClass, "outline-hidden"),
1601
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
1599
1602
  children: [
1600
1603
  item.icon ? /* @__PURE__ */ jsx32(Icon, { name: item.icon, size: "sm" }) : null,
1601
1604
  item.label,
@@ -1627,7 +1630,7 @@ function HeaderMenuEntry({
1627
1630
  }) {
1628
1631
  if (item.children !== void 0 && item.children.length > 0) {
1629
1632
  return /* @__PURE__ */ jsxs23(DropdownMenuSub, { children: [
1630
- /* @__PURE__ */ jsxs23(DropdownMenuSubTrigger, { "data-key": item.key, children: [
1633
+ /* @__PURE__ */ jsxs23(DropdownMenuSubTrigger, { "data-key": item.key, className: "cursor-pointer", children: [
1631
1634
  item.icon ? /* @__PURE__ */ jsx32(Icon, { name: item.icon, size: "sm" }) : null,
1632
1635
  item.label
1633
1636
  ] }),
@@ -1658,7 +1661,7 @@ function HeaderUserArea({
1658
1661
  DropdownMenuTrigger,
1659
1662
  {
1660
1663
  "data-slot": "header-user",
1661
- className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50",
1664
+ className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50 cursor-pointer",
1662
1665
  children: identity
1663
1666
  }
1664
1667
  ),
@@ -1679,7 +1682,7 @@ function HeaderLocalesArea({
1679
1682
  DropdownMenuTrigger,
1680
1683
  {
1681
1684
  "data-slot": "header-locales",
1682
- className: cn(menuItemClass, "outline-hidden"),
1685
+ className: cn(menuItemClass, "outline-hidden cursor-pointer"),
1683
1686
  children: [
1684
1687
  current?.label ?? locale,
1685
1688
  /* @__PURE__ */ jsx32(ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
@@ -1947,416 +1950,18 @@ function Link({ href, text, target, className, style, children }) {
1947
1950
  );
1948
1951
  }
1949
1952
 
1950
- // src/components/components/Sidebar/rail-tooltip.tsx
1951
- import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
1952
- function RailTooltip({
1953
- label,
1954
- children
1955
- }) {
1956
- return /* @__PURE__ */ jsxs28(Tooltip, { children: [
1957
- /* @__PURE__ */ jsx42(TooltipTrigger, { render: children }),
1958
- /* @__PURE__ */ jsx42(TooltipContent, { side: "right", sideOffset: 8, children: label })
1959
- ] });
1960
- }
1961
-
1962
- // src/components/components/Sidebar/index.tsx
1963
- import { useI18n as useI18n5, useRenderer as useRenderer11 } from "@pactor-app/runtime";
1964
- import { ChevronLeft, ChevronRight } from "lucide-react";
1965
- import {
1966
- createContext as createContext2,
1967
- useCallback as useCallback2,
1968
- useContext as useContext2,
1969
- useEffect as useEffect8,
1970
- useState as useState10
1971
- } from "react";
1972
- import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
1973
- var SidebarDrawerContext = createContext2(null);
1974
- function useSidebarDrawer() {
1975
- return useContext2(SidebarDrawerContext);
1976
- }
1977
- var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
1978
- function useIsMobileViewport() {
1979
- const [isMobile, setIsMobile] = useState10(
1980
- () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
1981
- );
1982
- useEffect8(() => {
1983
- if (typeof window.matchMedia !== "function") {
1984
- return;
1985
- }
1986
- const media = window.matchMedia(MOBILE_MEDIA_QUERY);
1987
- const onChange = (event) => {
1988
- setIsMobile(event.matches);
1989
- };
1990
- setIsMobile(media.matches);
1991
- media.addEventListener("change", onChange);
1992
- return () => media.removeEventListener("change", onChange);
1993
- }, []);
1994
- return isMobile;
1995
- }
1996
- function useOptionalRenderer() {
1997
- try {
1998
- return useRenderer11();
1999
- } catch {
2000
- return null;
2001
- }
2002
- }
2003
- function SidebarContent({ content }) {
2004
- const renderer = useOptionalRenderer();
2005
- if (renderer !== null && typeof content === "object" && content !== null && !("$$typeof" in content) && "type" in content) {
2006
- return /* @__PURE__ */ jsx43(Fragment3, { children: renderer.renderChildren([content]) });
2007
- }
2008
- return /* @__PURE__ */ jsx43(Fragment3, { children: content });
2009
- }
2010
- function isBrandObject(brand) {
2011
- return typeof brand === "object" && brand !== null && !("$$typeof" in brand) && "title" in brand;
2012
- }
2013
- function Sidebar({
2014
- brand,
2015
- items = [],
2016
- content,
2017
- sidebarFooter,
2018
- collapsible,
2019
- onCollapse,
2020
- locationKey,
2021
- drawer = true,
2022
- className,
2023
- style,
2024
- children
2025
- }) {
2026
- const { t } = useI18n5();
2027
- const isMobile = useIsMobileViewport();
2028
- const [drawerOpen, setDrawerOpen] = useState10(false);
2029
- const [collapsed, setCollapsed] = useState10(false);
2030
- const collapsedEffective = collapsible === true && collapsed && !isMobile;
2031
- const close = useCallback2(() => setDrawerOpen(false), []);
2032
- const toggleCollapsed = () => {
2033
- const next = !collapsed;
2034
- setCollapsed(next);
2035
- onCollapse?.(next);
2036
- };
2037
- const [trackedLocationKey, setTrackedLocationKey] = useState10(locationKey);
2038
- if (trackedLocationKey !== locationKey) {
2039
- setTrackedLocationKey(locationKey);
2040
- setDrawerOpen(false);
2041
- }
2042
- useEffect8(() => {
2043
- if (!drawerOpen) {
2044
- return;
2045
- }
2046
- const onKeyDown = (event) => {
2047
- if (event.key === "Escape") {
2048
- setDrawerOpen(false);
2049
- }
2050
- };
2051
- window.addEventListener("keydown", onKeyDown);
2052
- return () => window.removeEventListener("keydown", onKeyDown);
2053
- }, [drawerOpen]);
2054
- const brandNode = isBrandObject(brand) ? /* @__PURE__ */ jsxs29(Fragment3, { children: [
2055
- brand.logo ? /* @__PURE__ */ jsx43(
2056
- "img",
2057
- {
2058
- "data-slot": "sidebar-brand-logo",
2059
- src: brand.logo,
2060
- alt: brand.title,
2061
- className: "size-6 shrink-0"
2062
- }
2063
- ) : null,
2064
- collapsedEffective ? null : /* @__PURE__ */ jsx43("span", { className: "truncate text-sm font-semibold", children: brand.title })
2065
- ] }) : brand;
2066
- const collapseTrigger = collapsible && !isMobile ? /* @__PURE__ */ jsx43(
2067
- "button",
2068
- {
2069
- type: "button",
2070
- "data-slot": "sidebar-collapse-trigger",
2071
- "aria-label": collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
2072
- "aria-expanded": !collapsedEffective,
2073
- title: collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
2074
- className: cn(
2075
- "cursor-pointer flex size-8 shrink-0 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground"
2076
- ),
2077
- onClick: toggleCollapsed,
2078
- children: collapsedEffective ? /* @__PURE__ */ jsx43(ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ jsx43(ChevronLeft, { "aria-hidden": true, className: "size-4" })
2079
- }
2080
- ) : null;
2081
- return /* @__PURE__ */ jsx43(
2082
- SidebarDrawerContext.Provider,
2083
- {
2084
- value: { close, collapsed: collapsedEffective },
2085
- children: /* @__PURE__ */ jsxs29(
2086
- "div",
2087
- {
2088
- "data-slot": "sidebar-layout",
2089
- className: cn("flex min-h-screen w-full", className),
2090
- style,
2091
- children: [
2092
- drawer && drawerOpen ? /* @__PURE__ */ jsx43(
2093
- "div",
2094
- {
2095
- "data-slot": "sidebar-scrim",
2096
- "aria-hidden": true,
2097
- className: "fixed inset-0 z-40 bg-black/40 md:hidden",
2098
- onClick: close
2099
- }
2100
- ) : null,
2101
- /* @__PURE__ */ jsxs29(
2102
- "aside",
2103
- {
2104
- "data-slot": "sidebar",
2105
- "data-collapsed": collapsedEffective || void 0,
2106
- "data-open": drawerOpen ? "true" : "false",
2107
- inert: drawer && isMobile && !drawerOpen ? true : void 0,
2108
- className: cn(
2109
- "flex shrink-0 flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width,transform]",
2110
- collapsedEffective ? "w-16" : "w-60",
2111
- // 移动端覆盖抽屉:退出文档流,关闭时移出屏幕
2112
- drawer && "max-md:fixed max-md:inset-y-0 max-md:left-0 max-md:z-50 max-md:w-60 max-md:-translate-x-full max-md:data-[open=true]:translate-x-0"
2113
- ),
2114
- children: [
2115
- brand !== void 0 || collapseTrigger !== null ? /* @__PURE__ */ jsxs29(
2116
- "div",
2117
- {
2118
- "data-slot": "sidebar-brand",
2119
- className: cn(
2120
- "flex h-14 shrink-0 items-center gap-2 border-b border-sidebar-border px-4",
2121
- // 移动端品牌维持顶栏现状:抽屉内不重复渲染品牌行
2122
- "max-md:hidden",
2123
- collapsedEffective && "justify-center px-2"
2124
- ),
2125
- children: [
2126
- collapsedEffective ? null : /* @__PURE__ */ jsx43("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
2127
- collapseTrigger
2128
- ]
2129
- }
2130
- ) : null,
2131
- /* @__PURE__ */ jsx43(
2132
- "nav",
2133
- {
2134
- "data-slot": "sidebar-nav",
2135
- className: "min-h-0 flex-1 overflow-auto p-2",
2136
- children: content !== void 0 && content !== null ? /* @__PURE__ */ jsx43(SidebarContent, { content }) : items.map((item, index) => /* @__PURE__ */ jsx43(
2137
- SidebarEntry,
2138
- {
2139
- item,
2140
- depth: 0,
2141
- collapsed: collapsedEffective
2142
- },
2143
- item.href ?? item.label ?? index
2144
- ))
2145
- }
2146
- ),
2147
- sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective ? /* @__PURE__ */ jsx43(
2148
- "div",
2149
- {
2150
- "data-slot": "sidebar-footer",
2151
- className: "shrink-0 border-t border-sidebar-border p-2",
2152
- children: sidebarFooter
2153
- }
2154
- ) : null
2155
- ]
2156
- }
2157
- ),
2158
- /* @__PURE__ */ jsxs29("main", { "data-slot": "sidebar-content", className: "min-w-0 flex-1", children: [
2159
- drawer ? /* @__PURE__ */ jsxs29(
2160
- "div",
2161
- {
2162
- "data-slot": "sidebar-topbar",
2163
- className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
2164
- children: [
2165
- /* @__PURE__ */ jsx43(
2166
- "button",
2167
- {
2168
- type: "button",
2169
- "data-slot": "sidebar-menu-trigger",
2170
- "aria-label": t("pactor.layout.openNavigation"),
2171
- "aria-expanded": drawerOpen,
2172
- className: "flex size-8 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
2173
- onClick: () => setDrawerOpen(true),
2174
- children: /* @__PURE__ */ jsx43(Icon, { name: "menu", size: 18 })
2175
- }
2176
- ),
2177
- brandNode
2178
- ]
2179
- }
2180
- ) : null,
2181
- children
2182
- ] })
2183
- ]
2184
- }
2185
- )
2186
- }
2187
- );
2188
- }
2189
- function SidebarEntry({
2190
- item,
2191
- depth,
2192
- collapsed
2193
- }) {
2194
- const entryClass = cn(
2195
- "flex w-full items-center gap-2 rounded-md px-3 py-2 text-left text-sm transition-colors",
2196
- "text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
2197
- collapsed && "justify-center px-0"
2198
- );
2199
- const indentStyle = !collapsed && depth > 0 ? { paddingLeft: 12 + depth * 16 } : void 0;
2200
- const labelNode = collapsed ? null : item.label;
2201
- const iconNode = item.icon ? /* @__PURE__ */ jsx43(Icon, { name: item.icon, size: "sm" }) : null;
2202
- const entry = item.href ? /* @__PURE__ */ jsxs29(
2203
- "a",
2204
- {
2205
- "data-slot": "sidebar-item",
2206
- href: item.href,
2207
- className: entryClass,
2208
- style: indentStyle,
2209
- children: [
2210
- iconNode,
2211
- labelNode
2212
- ]
2213
- }
2214
- ) : /* @__PURE__ */ jsxs29("span", { "data-slot": "sidebar-item", className: entryClass, style: indentStyle, children: [
2215
- iconNode,
2216
- labelNode
2217
- ] });
2218
- return /* @__PURE__ */ jsxs29("div", { "data-slot": "sidebar-entry", children: [
2219
- collapsed ? /* @__PURE__ */ jsx43(RailTooltip, { label: item.label, children: entry }) : entry,
2220
- item.children?.map((child, index) => /* @__PURE__ */ jsx43(
2221
- SidebarEntry,
2222
- {
2223
- item: child,
2224
- depth: depth + 1,
2225
- collapsed
2226
- },
2227
- child.href ?? child.label ?? index
2228
- ))
2229
- ] });
2230
- }
2231
-
2232
- // src/components/components/Menu/index.tsx
2233
- import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
2234
- function Menu({
2235
- items = [],
2236
- mode = "inline",
2237
- selectedKey,
2238
- onSelect,
2239
- className,
2240
- style
2241
- }) {
2242
- const drawer = useSidebarDrawer();
2243
- const collapsed = mode === "inline" && drawer?.collapsed === true;
2244
- let previousGroup;
2245
- return /* @__PURE__ */ jsx44(
2246
- "nav",
2247
- {
2248
- "data-slot": "menu",
2249
- "data-mode": mode,
2250
- "data-collapsed": collapsed || void 0,
2251
- className: cn(
2252
- mode === "horizontal" ? "flex items-center gap-1" : "flex flex-col gap-0.5 p-2",
2253
- className
2254
- ),
2255
- style,
2256
- children: items.map((item) => {
2257
- let groupLabel;
2258
- if (!collapsed && mode === "inline" && item.group !== void 0 && item.group !== previousGroup) {
2259
- groupLabel = item.group;
2260
- }
2261
- previousGroup = item.group;
2262
- return /* @__PURE__ */ jsxs30("div", { "data-slot": "menu-group-entry", children: [
2263
- groupLabel !== void 0 && /* @__PURE__ */ jsx44(
2264
- "div",
2265
- {
2266
- "data-slot": "menu-group",
2267
- className: "px-3 pb-1 pt-3 text-xs font-medium text-muted-foreground first:pt-1",
2268
- children: groupLabel
2269
- }
2270
- ),
2271
- /* @__PURE__ */ jsx44(
2272
- MenuEntry,
2273
- {
2274
- item,
2275
- mode,
2276
- depth: 0,
2277
- selectedKey,
2278
- onSelect,
2279
- collapsed
2280
- }
2281
- )
2282
- ] }, item.key);
2283
- })
2284
- }
2285
- );
2286
- }
2287
- function MenuEntry({
2288
- item,
2289
- mode,
2290
- depth,
2291
- selectedKey,
2292
- onSelect,
2293
- collapsed = false
2294
- }) {
2295
- const selected = item.key === selectedKey;
2296
- const button = /* @__PURE__ */ jsxs30(
2297
- "button",
2298
- {
2299
- type: "button",
2300
- "data-slot": "menu-item",
2301
- "aria-current": selected ? "page" : void 0,
2302
- disabled: item.disabled,
2303
- className: cn(
2304
- "flex w-full items-center gap-2 rounded-md text-sm transition-colors",
2305
- mode === "horizontal" ? "px-3 py-2" : "px-3 py-2 text-left",
2306
- collapsed && "justify-center px-0",
2307
- selected ? "bg-accent font-medium text-accent-foreground" : "text-muted-foreground hover:bg-accent/50 hover:text-foreground",
2308
- item.disabled && "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-muted-foreground"
2309
- ),
2310
- style: mode === "inline" && depth > 0 && !collapsed ? { paddingLeft: 12 + depth * 16 } : void 0,
2311
- onClick: () => {
2312
- if (!item.disabled) {
2313
- onSelect?.(item.key);
2314
- }
2315
- },
2316
- children: [
2317
- item.icon ? /* @__PURE__ */ jsx44(Icon, { name: item.icon, size: "sm" }) : null,
2318
- collapsed ? null : /* @__PURE__ */ jsx44("span", { className: "min-w-0 flex-1 truncate text-left", children: item.label }),
2319
- item.dot && !collapsed ? /* @__PURE__ */ jsx44("span", { "data-slot": "menu-item-dot", className: "size-1.5 shrink-0 rounded-full bg-destructive" }) : null,
2320
- item.badge !== void 0 && !collapsed ? /* @__PURE__ */ jsx44(
2321
- "span",
2322
- {
2323
- "data-slot": "menu-item-badge",
2324
- className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",
2325
- children: item.badge
2326
- }
2327
- ) : null
2328
- ]
2329
- }
2330
- );
2331
- return /* @__PURE__ */ jsxs30("div", { "data-slot": "menu-entry", "data-key": item.key, children: [
2332
- collapsed ? /* @__PURE__ */ jsx44(RailTooltip, { label: item.label, children: button }) : button,
2333
- item.children?.map((child) => /* @__PURE__ */ jsx44(
2334
- MenuEntry,
2335
- {
2336
- item: child,
2337
- mode,
2338
- depth: depth + 1,
2339
- selectedKey,
2340
- onSelect,
2341
- collapsed
2342
- },
2343
- child.key
2344
- ))
2345
- ] });
2346
- }
2347
-
2348
1953
  // src/components/components/Menubar/index.tsx
2349
- import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
1954
+ import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
2350
1955
  function Menubar2({ menus = [], onSelect, className, style }) {
2351
- return /* @__PURE__ */ jsx45(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ jsxs31(MenubarMenu, { children: [
2352
- /* @__PURE__ */ jsx45(MenubarTrigger, { children: menu.label }),
2353
- /* @__PURE__ */ jsx45(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ jsxs31(
1956
+ return /* @__PURE__ */ jsx42(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ jsxs28(MenubarMenu, { children: [
1957
+ /* @__PURE__ */ jsx42(MenubarTrigger, { children: menu.label }),
1958
+ /* @__PURE__ */ jsx42(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ jsxs28(
2354
1959
  MenubarItem,
2355
1960
  {
2356
1961
  disabled: item.disabled,
2357
1962
  onClick: () => onSelect?.(item.value),
2358
1963
  children: [
2359
- item.icon ? /* @__PURE__ */ jsx45(Icon, { name: item.icon, size: "sm" }) : null,
1964
+ item.icon ? /* @__PURE__ */ jsx42(Icon, { name: item.icon, size: "sm" }) : null,
2360
1965
  item.label
2361
1966
  ]
2362
1967
  },
@@ -2366,33 +1971,33 @@ function Menubar2({ menus = [], onSelect, className, style }) {
2366
1971
  }
2367
1972
 
2368
1973
  // src/components/components/NavigationMenu/index.tsx
2369
- import { Fragment as Fragment4, jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
1974
+ import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
2370
1975
  function NavigationMenu2({ items = [], className, style }) {
2371
- return /* @__PURE__ */ jsx46(NavigationMenu, { className, style, children: /* @__PURE__ */ jsx46(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ jsx46(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ jsxs32(Fragment4, { children: [
2372
- /* @__PURE__ */ jsxs32(
1976
+ return /* @__PURE__ */ jsx43(NavigationMenu, { className, style, children: /* @__PURE__ */ jsx43(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ jsx43(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ jsxs29(Fragment3, { children: [
1977
+ /* @__PURE__ */ jsxs29(
2373
1978
  NavigationMenuTrigger,
2374
1979
  {
2375
1980
  className: item.icon !== void 0 ? "gap-2" : void 0,
2376
1981
  children: [
2377
- item.icon ? /* @__PURE__ */ jsx46(Icon, { name: item.icon, size: "sm" }) : null,
1982
+ item.icon ? /* @__PURE__ */ jsx43(Icon, { name: item.icon, size: "sm" }) : null,
2378
1983
  item.label
2379
1984
  ]
2380
1985
  }
2381
1986
  ),
2382
- /* @__PURE__ */ jsx46(NavigationMenuContent, { children: /* @__PURE__ */ jsx46("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ jsx46("li", { children: /* @__PURE__ */ jsxs32(NavigationMenuLink, { href: child.href, children: [
2383
- /* @__PURE__ */ jsxs32(
1987
+ /* @__PURE__ */ jsx43(NavigationMenuContent, { children: /* @__PURE__ */ jsx43("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ jsx43("li", { children: /* @__PURE__ */ jsxs29(NavigationMenuLink, { href: child.href, children: [
1988
+ /* @__PURE__ */ jsxs29(
2384
1989
  "span",
2385
1990
  {
2386
1991
  className: child.icon !== void 0 ? "flex items-center gap-2 font-medium" : "font-medium",
2387
1992
  children: [
2388
- child.icon ? /* @__PURE__ */ jsx46(Icon, { name: child.icon, size: "sm" }) : null,
1993
+ child.icon ? /* @__PURE__ */ jsx43(Icon, { name: child.icon, size: "sm" }) : null,
2389
1994
  child.label
2390
1995
  ]
2391
1996
  }
2392
1997
  ),
2393
- child.description ? /* @__PURE__ */ jsx46("span", { className: "text-muted-foreground", children: child.description }) : null
1998
+ child.description ? /* @__PURE__ */ jsx43("span", { className: "text-muted-foreground", children: child.description }) : null
2394
1999
  ] }) }, child.href)) }) })
2395
- ] }) : /* @__PURE__ */ jsxs32(
2000
+ ] }) : /* @__PURE__ */ jsxs29(
2396
2001
  NavigationMenuLink,
2397
2002
  {
2398
2003
  href: item.href,
@@ -2401,7 +2006,7 @@ function NavigationMenu2({ items = [], className, style }) {
2401
2006
  item.icon !== void 0 && "gap-2"
2402
2007
  ),
2403
2008
  children: [
2404
- item.icon ? /* @__PURE__ */ jsx46(Icon, { name: item.icon, size: "sm" }) : null,
2009
+ item.icon ? /* @__PURE__ */ jsx43(Icon, { name: item.icon, size: "sm" }) : null,
2405
2010
  item.label
2406
2011
  ]
2407
2012
  }
@@ -2409,17 +2014,17 @@ function NavigationMenu2({ items = [], className, style }) {
2409
2014
  }
2410
2015
 
2411
2016
  // src/components/components/Page/index.tsx
2412
- import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
2017
+ import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
2413
2018
  function Page({ title, className, style, children }) {
2414
- return /* @__PURE__ */ jsxs33("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
2415
- title ? /* @__PURE__ */ jsx47("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
2416
- /* @__PURE__ */ jsx47("div", { "data-slot": "page-content", className: "space-y-5", children })
2019
+ return /* @__PURE__ */ jsxs30("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
2020
+ title ? /* @__PURE__ */ jsx44("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
2021
+ /* @__PURE__ */ jsx44("div", { "data-slot": "page-content", className: "space-y-5", children })
2417
2022
  ] });
2418
2023
  }
2419
2024
 
2420
2025
  // src/components/components/Pagination/index.tsx
2421
- import { useState as useState11 } from "react";
2422
- import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
2026
+ import { useState as useState10 } from "react";
2027
+ import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
2423
2028
  function pageItems(current, count) {
2424
2029
  if (count <= 7) {
2425
2030
  return Array.from({ length: count }, (_, i) => i + 1);
@@ -2440,7 +2045,7 @@ function Pagination2({
2440
2045
  className,
2441
2046
  style
2442
2047
  }) {
2443
- const [innerPage, setInnerPage] = useState11(1);
2048
+ const [innerPage, setInnerPage] = useState10(1);
2444
2049
  const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
2445
2050
  const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
2446
2051
  const goTo = (next) => {
@@ -2453,8 +2058,8 @@ function Pagination2({
2453
2058
  }
2454
2059
  onChange?.(target);
2455
2060
  };
2456
- return /* @__PURE__ */ jsx48(Pagination, { className, style, children: /* @__PURE__ */ jsxs34(PaginationContent, { children: [
2457
- /* @__PURE__ */ jsx48(PaginationItem, { children: /* @__PURE__ */ jsx48(
2061
+ return /* @__PURE__ */ jsx45(Pagination, { className, style, children: /* @__PURE__ */ jsxs31(PaginationContent, { children: [
2062
+ /* @__PURE__ */ jsx45(PaginationItem, { children: /* @__PURE__ */ jsx45(
2458
2063
  PaginationPrevious,
2459
2064
  {
2460
2065
  href: "#",
@@ -2465,7 +2070,7 @@ function Pagination2({
2465
2070
  }
2466
2071
  }
2467
2072
  ) }),
2468
- pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ jsx48(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ jsx48(PaginationEllipsis, {}) : /* @__PURE__ */ jsx48(
2073
+ pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ jsx45(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ jsx45(PaginationEllipsis, {}) : /* @__PURE__ */ jsx45(
2469
2074
  PaginationLink,
2470
2075
  {
2471
2076
  href: "#",
@@ -2477,7 +2082,7 @@ function Pagination2({
2477
2082
  children: item
2478
2083
  }
2479
2084
  ) }, item === "ellipsis" ? `ellipsis-${index}` : item)),
2480
- /* @__PURE__ */ jsx48(PaginationItem, { children: /* @__PURE__ */ jsx48(
2085
+ /* @__PURE__ */ jsx45(PaginationItem, { children: /* @__PURE__ */ jsx45(
2481
2086
  PaginationNext,
2482
2087
  {
2483
2088
  href: "#",
@@ -2492,15 +2097,15 @@ function Pagination2({
2492
2097
  }
2493
2098
 
2494
2099
  // src/components/components/Popover/index.tsx
2495
- import { useRenderer as useRenderer12 } from "@pactor-app/runtime";
2496
- import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
2100
+ import { useRenderer as useRenderer11 } from "@pactor-app/runtime";
2101
+ import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
2497
2102
  function isDslNode3(value) {
2498
2103
  return typeof value === "object" && value !== null && typeof value.type === "string";
2499
2104
  }
2500
2105
  function Popover2({ content, children, className, style }) {
2501
- const { renderChildren } = useRenderer12();
2502
- return /* @__PURE__ */ jsxs35(Popover, { children: [
2503
- /* @__PURE__ */ jsx49(
2106
+ const { renderChildren } = useRenderer11();
2107
+ return /* @__PURE__ */ jsxs32(Popover, { children: [
2108
+ /* @__PURE__ */ jsx46(
2504
2109
  PopoverTrigger,
2505
2110
  {
2506
2111
  nativeButton: false,
@@ -2508,22 +2113,22 @@ function Popover2({ content, children, className, style }) {
2508
2113
  children
2509
2114
  }
2510
2115
  ),
2511
- /* @__PURE__ */ jsx49(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
2116
+ /* @__PURE__ */ jsx46(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
2512
2117
  ] });
2513
2118
  }
2514
2119
 
2515
2120
  // src/components/components/Progress/index.tsx
2516
- import { jsx as jsx50 } from "react/jsx-runtime";
2121
+ import { jsx as jsx47 } from "react/jsx-runtime";
2517
2122
  function Progress2({ value, className, style }) {
2518
2123
  const resolved = typeof value === "number" && Number.isFinite(value) ? Math.min(100, Math.max(0, value)) : null;
2519
- return /* @__PURE__ */ jsx50(Progress, { value: resolved, className, style, children: /* @__PURE__ */ jsx50(ProgressTrack, { children: /* @__PURE__ */ jsx50(ProgressIndicator, {}) }) });
2124
+ return /* @__PURE__ */ jsx47(Progress, { value: resolved, className, style, children: /* @__PURE__ */ jsx47(ProgressTrack, { children: /* @__PURE__ */ jsx47(ProgressIndicator, {}) }) });
2520
2125
  }
2521
2126
 
2522
2127
  // src/components/components/RadioGroup/index.tsx
2523
- import { useEffect as useEffect9, useId as useId4 } from "react";
2128
+ import { useEffect as useEffect8, useId as useId4 } from "react";
2524
2129
 
2525
2130
  // src/components/components/Form/form-item.tsx
2526
- import { jsx as jsx51, jsxs as jsxs36 } from "react/jsx-runtime";
2131
+ import { jsx as jsx48, jsxs as jsxs33 } from "react/jsx-runtime";
2527
2132
  function FieldShell({
2528
2133
  layout,
2529
2134
  label,
@@ -2533,14 +2138,14 @@ function FieldShell({
2533
2138
  style,
2534
2139
  children
2535
2140
  }) {
2536
- return /* @__PURE__ */ jsxs36(
2141
+ return /* @__PURE__ */ jsxs33(
2537
2142
  "div",
2538
2143
  {
2539
2144
  "data-slot": "form-item",
2540
2145
  className: cn(formItemClass(layout), className),
2541
2146
  style,
2542
2147
  children: [
2543
- label ? /* @__PURE__ */ jsx51(
2148
+ label ? /* @__PURE__ */ jsx48(
2544
2149
  "label",
2545
2150
  {
2546
2151
  htmlFor,
@@ -2549,14 +2154,14 @@ function FieldShell({
2549
2154
  }
2550
2155
  ) : null,
2551
2156
  children,
2552
- error ? /* @__PURE__ */ jsx51("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
2157
+ error ? /* @__PURE__ */ jsx48("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
2553
2158
  ]
2554
2159
  }
2555
2160
  );
2556
2161
  }
2557
2162
 
2558
2163
  // src/components/components/RadioGroup/index.tsx
2559
- import { jsx as jsx52, jsxs as jsxs37 } from "react/jsx-runtime";
2164
+ import { jsx as jsx49, jsxs as jsxs34 } from "react/jsx-runtime";
2560
2165
  function RadioGroup2({
2561
2166
  name,
2562
2167
  label,
@@ -2571,7 +2176,7 @@ function RadioGroup2({
2571
2176
  const form = useFormContext();
2572
2177
  const controlId = useId4();
2573
2178
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
2574
- useEffect9(() => {
2179
+ useEffect8(() => {
2575
2180
  if (inForm && form && name) {
2576
2181
  form.registerField(name, rules, value);
2577
2182
  return () => form.unregisterField(name);
@@ -2586,7 +2191,7 @@ function RadioGroup2({
2586
2191
  onChange?.(next);
2587
2192
  };
2588
2193
  const groupValue = current ?? "";
2589
- const group = /* @__PURE__ */ jsx52(
2194
+ const group = /* @__PURE__ */ jsx49(
2590
2195
  RadioGroup,
2591
2196
  {
2592
2197
  value: groupValue,
@@ -2597,8 +2202,8 @@ function RadioGroup2({
2597
2202
  style: inForm ? void 0 : style,
2598
2203
  children: options.map((option, index) => {
2599
2204
  const optionId = `${controlId}-${index}`;
2600
- return /* @__PURE__ */ jsxs37("span", { className: "inline-flex items-center gap-2", children: [
2601
- /* @__PURE__ */ jsx52(
2205
+ return /* @__PURE__ */ jsxs34("span", { className: "inline-flex items-center gap-2", children: [
2206
+ /* @__PURE__ */ jsx49(
2602
2207
  RadioGroupItem,
2603
2208
  {
2604
2209
  id: optionId,
@@ -2606,13 +2211,13 @@ function RadioGroup2({
2606
2211
  disabled: option.disabled
2607
2212
  }
2608
2213
  ),
2609
- /* @__PURE__ */ jsx52("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
2214
+ /* @__PURE__ */ jsx49("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
2610
2215
  ] }, String(option.value));
2611
2216
  })
2612
2217
  }
2613
2218
  );
2614
2219
  if (inForm && form && name) {
2615
- return /* @__PURE__ */ jsx52(
2220
+ return /* @__PURE__ */ jsx49(
2616
2221
  FieldShell,
2617
2222
  {
2618
2223
  layout: form.layout,
@@ -2628,22 +2233,24 @@ function RadioGroup2({
2628
2233
  }
2629
2234
 
2630
2235
  // src/components/components/Resizable/index.tsx
2631
- import { useRenderer as useRenderer13 } from "@pactor-app/runtime";
2632
- import { Fragment as Fragment5 } from "react";
2633
- import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
2236
+ import { useRenderer as useRenderer12 } from "@pactor-app/runtime";
2237
+ import { Fragment as Fragment4 } from "react";
2238
+ import { jsx as jsx50, jsxs as jsxs35 } from "react/jsx-runtime";
2634
2239
  function Resizable({
2635
2240
  panels = [],
2636
2241
  direction = "horizontal",
2637
2242
  className,
2638
2243
  style
2639
2244
  }) {
2640
- const { renderChildren } = useRenderer13();
2641
- return /* @__PURE__ */ jsx53(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ jsxs38(Fragment5, { children: [
2642
- index > 0 ? /* @__PURE__ */ jsx53(ResizableHandle, { withHandle: true }) : null,
2643
- /* @__PURE__ */ jsx53(
2245
+ const { renderChildren } = useRenderer12();
2246
+ return /* @__PURE__ */ jsx50(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ jsxs35(Fragment4, { children: [
2247
+ index > 0 ? /* @__PURE__ */ jsx50(ResizableHandle, { withHandle: true }) : null,
2248
+ /* @__PURE__ */ jsx50(
2644
2249
  Panel,
2645
2250
  {
2646
- defaultSize: typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
2251
+ defaultSize: typeof panel.defaultSizePx === "number" ? `${panel.defaultSizePx}px` : typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
2252
+ minSize: typeof panel.minSizePx === "number" ? `${panel.minSizePx}px` : void 0,
2253
+ maxSize: typeof panel.maxSizePx === "number" ? `${panel.maxSizePx}px` : void 0,
2647
2254
  children: renderChildren(panel.children)
2648
2255
  }
2649
2256
  )
@@ -2651,7 +2258,7 @@ function Resizable({
2651
2258
  }
2652
2259
 
2653
2260
  // src/components/components/ScrollArea/index.tsx
2654
- import { jsx as jsx54 } from "react/jsx-runtime";
2261
+ import { jsx as jsx51 } from "react/jsx-runtime";
2655
2262
  function ScrollArea2({
2656
2263
  maxHeight,
2657
2264
  maxWidth,
@@ -2659,7 +2266,7 @@ function ScrollArea2({
2659
2266
  style,
2660
2267
  children
2661
2268
  }) {
2662
- return /* @__PURE__ */ jsx54(
2269
+ return /* @__PURE__ */ jsx51(
2663
2270
  ScrollArea,
2664
2271
  {
2665
2272
  className,
@@ -2670,9 +2277,9 @@ function ScrollArea2({
2670
2277
  }
2671
2278
 
2672
2279
  // src/components/components/Select/index.tsx
2673
- import { useI18n as useI18n6 } from "@pactor-app/runtime";
2674
- import { useEffect as useEffect10, useId as useId5 } from "react";
2675
- import { jsx as jsx55, jsxs as jsxs39 } from "react/jsx-runtime";
2280
+ import { useI18n as useI18n5 } from "@pactor-app/runtime";
2281
+ import { useEffect as useEffect9, useId as useId5 } from "react";
2282
+ import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
2676
2283
  function Select2({
2677
2284
  name,
2678
2285
  label,
@@ -2687,10 +2294,10 @@ function Select2({
2687
2294
  style
2688
2295
  }) {
2689
2296
  const form = useFormContext();
2690
- const { t } = useI18n6();
2297
+ const { t } = useI18n5();
2691
2298
  const controlId = useId5();
2692
2299
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
2693
- useEffect10(() => {
2300
+ useEffect9(() => {
2694
2301
  if (inForm && form && name) {
2695
2302
  form.registerField(name, rules, value);
2696
2303
  return () => form.unregisterField(name);
@@ -2706,13 +2313,13 @@ function Select2({
2706
2313
  onChange?.(next ?? void 0);
2707
2314
  };
2708
2315
  const inFormRoot = inForm === true;
2709
- const select = /* @__PURE__ */ jsxs39(
2316
+ const select = /* @__PURE__ */ jsxs36(
2710
2317
  "span",
2711
2318
  {
2712
2319
  className: cn("inline-flex items-center gap-1", !inFormRoot && className),
2713
2320
  style: inFormRoot ? void 0 : style,
2714
2321
  children: [
2715
- /* @__PURE__ */ jsxs39(
2322
+ /* @__PURE__ */ jsxs36(
2716
2323
  Select,
2717
2324
  {
2718
2325
  items: options,
@@ -2721,8 +2328,8 @@ function Select2({
2721
2328
  disabled,
2722
2329
  name: inForm ? name : void 0,
2723
2330
  children: [
2724
- /* @__PURE__ */ jsx55(SelectTrigger, { id: controlId, children: /* @__PURE__ */ jsx55(SelectValue, { placeholder }) }),
2725
- /* @__PURE__ */ jsx55(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx55(
2331
+ /* @__PURE__ */ jsx52(SelectTrigger, { id: controlId, children: /* @__PURE__ */ jsx52(SelectValue, { placeholder }) }),
2332
+ /* @__PURE__ */ jsx52(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx52(
2726
2333
  SelectItem,
2727
2334
  {
2728
2335
  value: option.value,
@@ -2734,7 +2341,7 @@ function Select2({
2734
2341
  ]
2735
2342
  }
2736
2343
  ),
2737
- allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ jsx55(
2344
+ allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ jsx52(
2738
2345
  "button",
2739
2346
  {
2740
2347
  type: "button",
@@ -2754,14 +2361,14 @@ function Select2({
2754
2361
  );
2755
2362
  if (inForm && form && name) {
2756
2363
  const error = form.errors[name];
2757
- return /* @__PURE__ */ jsxs39(
2364
+ return /* @__PURE__ */ jsxs36(
2758
2365
  "div",
2759
2366
  {
2760
2367
  "data-slot": "form-item",
2761
2368
  className: cn(formItemClass(form.layout), className),
2762
2369
  style,
2763
2370
  children: [
2764
- label ? /* @__PURE__ */ jsx55(
2371
+ label ? /* @__PURE__ */ jsx52(
2765
2372
  "label",
2766
2373
  {
2767
2374
  htmlFor: controlId,
@@ -2770,7 +2377,7 @@ function Select2({
2770
2377
  }
2771
2378
  ) : null,
2772
2379
  select,
2773
- error ? /* @__PURE__ */ jsx55("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
2380
+ error ? /* @__PURE__ */ jsx52("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
2774
2381
  ]
2775
2382
  }
2776
2383
  );
@@ -2779,13 +2386,13 @@ function Select2({
2779
2386
  }
2780
2387
 
2781
2388
  // src/components/components/Separator/index.tsx
2782
- import { jsx as jsx56 } from "react/jsx-runtime";
2389
+ import { jsx as jsx53 } from "react/jsx-runtime";
2783
2390
  function Separator2({ orientation = "horizontal", className, style }) {
2784
- return /* @__PURE__ */ jsx56(Separator, { orientation, className, style });
2391
+ return /* @__PURE__ */ jsx53(Separator, { orientation, className, style });
2785
2392
  }
2786
2393
 
2787
2394
  // src/components/components/Sheet/index.tsx
2788
- import { jsx as jsx57, jsxs as jsxs40 } from "react/jsx-runtime";
2395
+ import { jsx as jsx54, jsxs as jsxs37 } from "react/jsx-runtime";
2789
2396
  function Sheet2({
2790
2397
  title,
2791
2398
  open,
@@ -2795,7 +2402,7 @@ function Sheet2({
2795
2402
  className,
2796
2403
  style
2797
2404
  }) {
2798
- return /* @__PURE__ */ jsx57(
2405
+ return /* @__PURE__ */ jsx54(
2799
2406
  Sheet,
2800
2407
  {
2801
2408
  open: open ?? false,
@@ -2804,17 +2411,17 @@ function Sheet2({
2804
2411
  onClose?.();
2805
2412
  }
2806
2413
  },
2807
- children: /* @__PURE__ */ jsxs40(SheetContent, { side, className, style, children: [
2808
- title ? /* @__PURE__ */ jsx57(SheetHeader, { children: /* @__PURE__ */ jsx57(SheetTitle, { children: title }) }) : null,
2809
- /* @__PURE__ */ jsx57("div", { className: "flex-1 overflow-auto px-4", children })
2414
+ children: /* @__PURE__ */ jsxs37(SheetContent, { side, className, style, children: [
2415
+ title ? /* @__PURE__ */ jsx54(SheetHeader, { children: /* @__PURE__ */ jsx54(SheetTitle, { children: title }) }) : null,
2416
+ /* @__PURE__ */ jsx54("div", { className: "flex-1 overflow-auto px-4", children })
2810
2417
  ] })
2811
2418
  }
2812
2419
  );
2813
2420
  }
2814
2421
 
2815
2422
  // src/components/components/Sider/index.tsx
2816
- import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight2 } from "lucide-react";
2817
- import { jsx as jsx58, jsxs as jsxs41 } from "react/jsx-runtime";
2423
+ import { ChevronLeft, ChevronRight } from "lucide-react";
2424
+ import { jsx as jsx55, jsxs as jsxs38 } from "react/jsx-runtime";
2818
2425
  function Sider({
2819
2426
  width = 200,
2820
2427
  collapsible,
@@ -2826,26 +2433,26 @@ function Sider({
2826
2433
  children
2827
2434
  }) {
2828
2435
  const current = collapsed ? collapsedWidth : width;
2829
- return /* @__PURE__ */ jsxs41(
2436
+ return /* @__PURE__ */ jsxs38(
2830
2437
  "aside",
2831
2438
  {
2832
2439
  "data-slot": "layout-sider",
2833
2440
  "data-collapsed": collapsed || void 0,
2834
2441
  className: cn(
2835
- "flex min-h-0 shrink-0 flex-col border-r bg-background transition-[width]",
2442
+ "flex min-h-0 shrink-0 flex-col border-r bg-sidebar transition-[width]",
2836
2443
  className
2837
2444
  ),
2838
2445
  style: { width: current, ...style },
2839
2446
  children: [
2840
- /* @__PURE__ */ jsx58("div", { className: "min-h-0 flex-1 overflow-auto", children }),
2841
- collapsible ? /* @__PURE__ */ jsx58(
2447
+ /* @__PURE__ */ jsx55("div", { className: "min-h-0 flex-1 overflow-auto", children }),
2448
+ collapsible ? /* @__PURE__ */ jsx55(
2842
2449
  "button",
2843
2450
  {
2844
2451
  type: "button",
2845
2452
  "aria-label": collapsed ? "expand sider" : "collapse sider",
2846
2453
  className: "flex h-10 shrink-0 items-center justify-center border-t text-muted-foreground hover:text-foreground",
2847
2454
  onClick: () => onCollapse?.(!collapsed),
2848
- children: collapsed ? /* @__PURE__ */ jsx58(ChevronRight2, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ jsx58(ChevronLeft2, { "aria-hidden": true, className: "size-4" })
2455
+ children: collapsed ? /* @__PURE__ */ jsx55(ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ jsx55(ChevronLeft, { "aria-hidden": true, className: "size-4" })
2849
2456
  }
2850
2457
  ) : null
2851
2458
  ]
@@ -2854,7 +2461,7 @@ function Sider({
2854
2461
  }
2855
2462
 
2856
2463
  // src/components/components/Skeleton/index.tsx
2857
- import { jsx as jsx59 } from "react/jsx-runtime";
2464
+ import { jsx as jsx56 } from "react/jsx-runtime";
2858
2465
  var shapeDefaults = {
2859
2466
  line: { className: "h-4 w-full", style: {} },
2860
2467
  circle: { className: "rounded-full", style: { width: 40, height: 40 } },
@@ -2865,7 +2472,7 @@ function toSize(value) {
2865
2472
  }
2866
2473
  function Skeleton2({ shape = "line", width, height, className, style }) {
2867
2474
  const defaults = shapeDefaults[shape];
2868
- return /* @__PURE__ */ jsx59(
2475
+ return /* @__PURE__ */ jsx56(
2869
2476
  Skeleton,
2870
2477
  {
2871
2478
  className: cn(defaults.className, className),
@@ -2880,8 +2487,8 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
2880
2487
  }
2881
2488
 
2882
2489
  // src/components/components/Slider/index.tsx
2883
- import { useEffect as useEffect11 } from "react";
2884
- import { jsx as jsx60, jsxs as jsxs42 } from "react/jsx-runtime";
2490
+ import { useEffect as useEffect10 } from "react";
2491
+ import { jsx as jsx57, jsxs as jsxs39 } from "react/jsx-runtime";
2885
2492
  function Slider2({
2886
2493
  name,
2887
2494
  label,
@@ -2897,7 +2504,7 @@ function Slider2({
2897
2504
  }) {
2898
2505
  const form = useFormContext();
2899
2506
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
2900
- useEffect11(() => {
2507
+ useEffect10(() => {
2901
2508
  if (inForm && form && name) {
2902
2509
  form.registerField(name, rules, value);
2903
2510
  return () => form.unregisterField(name);
@@ -2912,7 +2519,7 @@ function Slider2({
2912
2519
  }
2913
2520
  onChange?.(next);
2914
2521
  };
2915
- const slider = /* @__PURE__ */ jsx60(
2522
+ const slider = /* @__PURE__ */ jsx57(
2916
2523
  Slider,
2917
2524
  {
2918
2525
  value: numberValue,
@@ -2924,14 +2531,14 @@ function Slider2({
2924
2531
  onValueChange: handleChange,
2925
2532
  className: inForm ? void 0 : className,
2926
2533
  style: inForm ? void 0 : style,
2927
- children: /* @__PURE__ */ jsx60(SliderControl, { children: /* @__PURE__ */ jsxs42(SliderTrack, { children: [
2928
- /* @__PURE__ */ jsx60(SliderIndicator, {}),
2929
- /* @__PURE__ */ jsx60(SliderThumb, {})
2930
- ] }) })
2534
+ children: /* @__PURE__ */ jsxs39(SliderControl, { children: [
2535
+ /* @__PURE__ */ jsx57(SliderTrack, { children: /* @__PURE__ */ jsx57(SliderIndicator, {}) }),
2536
+ /* @__PURE__ */ jsx57(SliderThumb, {})
2537
+ ] })
2931
2538
  }
2932
2539
  );
2933
2540
  if (inForm && form && name) {
2934
- return /* @__PURE__ */ jsx60(
2541
+ return /* @__PURE__ */ jsx57(
2935
2542
  FieldShell,
2936
2543
  {
2937
2544
  layout: form.layout,
@@ -2947,12 +2554,12 @@ function Slider2({
2947
2554
  }
2948
2555
 
2949
2556
  // src/components/components/Sonner/index.tsx
2950
- import { useRenderer as useRenderer14 } from "@pactor-app/runtime";
2951
- import { useEffect as useEffect12 } from "react";
2952
- import { jsx as jsx61 } from "react/jsx-runtime";
2557
+ import { useRenderer as useRenderer13 } from "@pactor-app/runtime";
2558
+ import { useEffect as useEffect11 } from "react";
2559
+ import { jsx as jsx58 } from "react/jsx-runtime";
2953
2560
  function Sonner({ className, style }) {
2954
- const { context } = useRenderer14();
2955
- useEffect12(() => {
2561
+ const { context } = useRenderer13();
2562
+ useEffect11(() => {
2956
2563
  const { actions } = context;
2957
2564
  if (actions.has("toast")) {
2958
2565
  return;
@@ -2966,36 +2573,36 @@ function Sonner({ className, style }) {
2966
2573
  return { ok: true };
2967
2574
  });
2968
2575
  }, [context]);
2969
- return /* @__PURE__ */ jsx61("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ jsx61(Toaster, {}) });
2576
+ return /* @__PURE__ */ jsx58("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ jsx58(Toaster, {}) });
2970
2577
  }
2971
2578
 
2972
2579
  // src/components/components/Spinner/index.tsx
2973
- import { jsx as jsx62 } from "react/jsx-runtime";
2580
+ import { jsx as jsx59 } from "react/jsx-runtime";
2974
2581
  var sizeClass = {
2975
2582
  sm: "size-3",
2976
2583
  default: "size-4",
2977
2584
  lg: "size-6"
2978
2585
  };
2979
2586
  function Spinner2({ size = "default", className, style }) {
2980
- return /* @__PURE__ */ jsx62(Spinner, { className: cn(sizeClass[size], className), style });
2587
+ return /* @__PURE__ */ jsx59(Spinner, { className: cn(sizeClass[size], className), style });
2981
2588
  }
2982
2589
 
2983
2590
  // src/components/components/Statistic/index.tsx
2984
- import { jsx as jsx63, jsxs as jsxs43 } from "react/jsx-runtime";
2591
+ import { jsx as jsx60, jsxs as jsxs40 } from "react/jsx-runtime";
2985
2592
  function Statistic({ title, value, precision, suffix, className, style }) {
2986
2593
  const display = typeof value === "number" && precision !== void 0 ? value.toFixed(precision) : value;
2987
- return /* @__PURE__ */ jsxs43("div", { "data-slot": "statistic", className: cn(className), style, children: [
2988
- title ? /* @__PURE__ */ jsx63("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
2989
- /* @__PURE__ */ jsxs43("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
2594
+ return /* @__PURE__ */ jsxs40("div", { "data-slot": "statistic", className: cn(className), style, children: [
2595
+ title ? /* @__PURE__ */ jsx60("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
2596
+ /* @__PURE__ */ jsxs40("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
2990
2597
  display,
2991
- suffix ? /* @__PURE__ */ jsx63("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
2598
+ suffix ? /* @__PURE__ */ jsx60("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
2992
2599
  ] })
2993
2600
  ] });
2994
2601
  }
2995
2602
 
2996
2603
  // src/components/components/Switch/index.tsx
2997
- import { useEffect as useEffect13, useId as useId6 } from "react";
2998
- import { jsx as jsx64, jsxs as jsxs44 } from "react/jsx-runtime";
2604
+ import { useEffect as useEffect12, useId as useId6 } from "react";
2605
+ import { jsx as jsx61, jsxs as jsxs41 } from "react/jsx-runtime";
2999
2606
  function Switch2({
3000
2607
  name,
3001
2608
  label,
@@ -3009,7 +2616,7 @@ function Switch2({
3009
2616
  const form = useFormContext();
3010
2617
  const controlId = useId6();
3011
2618
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
3012
- useEffect13(() => {
2619
+ useEffect12(() => {
3013
2620
  if (inForm && form && name) {
3014
2621
  form.registerField(name, rules, value);
3015
2622
  return () => form.unregisterField(name);
@@ -3024,13 +2631,13 @@ function Switch2({
3024
2631
  }
3025
2632
  onChange?.(next);
3026
2633
  };
3027
- const control = /* @__PURE__ */ jsxs44(
2634
+ const control = /* @__PURE__ */ jsxs41(
3028
2635
  "span",
3029
2636
  {
3030
2637
  className: cn("inline-flex items-center gap-2", !inForm && className),
3031
2638
  style: inForm ? void 0 : style,
3032
2639
  children: [
3033
- /* @__PURE__ */ jsx64(
2640
+ /* @__PURE__ */ jsx61(
3034
2641
  Switch,
3035
2642
  {
3036
2643
  id: controlId,
@@ -3040,12 +2647,12 @@ function Switch2({
3040
2647
  onCheckedChange: handleChange
3041
2648
  }
3042
2649
  ),
3043
- label ? /* @__PURE__ */ jsx64("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
2650
+ label ? /* @__PURE__ */ jsx61("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
3044
2651
  ]
3045
2652
  }
3046
2653
  );
3047
2654
  if (inForm && form && name) {
3048
- return /* @__PURE__ */ jsxs44(
2655
+ return /* @__PURE__ */ jsxs41(
3049
2656
  "div",
3050
2657
  {
3051
2658
  "data-slot": "form-item",
@@ -3053,7 +2660,7 @@ function Switch2({
3053
2660
  style,
3054
2661
  children: [
3055
2662
  control,
3056
- form.errors[name] ? /* @__PURE__ */ jsx64("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
2663
+ form.errors[name] ? /* @__PURE__ */ jsx61("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
3057
2664
  ]
3058
2665
  }
3059
2666
  );
@@ -3062,9 +2669,9 @@ function Switch2({
3062
2669
  }
3063
2670
 
3064
2671
  // src/components/components/Table/index.tsx
3065
- import { useI18n as useI18n7, useRenderer as useRenderer15 } from "@pactor-app/runtime";
3066
- import { useState as useState12 } from "react";
3067
- import { jsx as jsx65, jsxs as jsxs45 } from "react/jsx-runtime";
2672
+ import { useI18n as useI18n6, useRenderer as useRenderer14 } from "@pactor-app/runtime";
2673
+ import { useState as useState11 } from "react";
2674
+ import { jsx as jsx62, jsxs as jsxs42 } from "react/jsx-runtime";
3068
2675
  function renderCellValue2(value) {
3069
2676
  if (value === void 0 || value === null) {
3070
2677
  return "";
@@ -3084,9 +2691,9 @@ function Table2({
3084
2691
  className,
3085
2692
  style
3086
2693
  }) {
3087
- const { renderChildren } = useRenderer15();
3088
- const { t } = useI18n7();
3089
- const [current, setCurrent] = useState12(1);
2694
+ const { renderChildren } = useRenderer14();
2695
+ const { t } = useI18n6();
2696
+ const [current, setCurrent] = useState11(1);
3090
2697
  const pageSize = pagination === false ? void 0 : pagination?.pageSize;
3091
2698
  const total = dataSource.length;
3092
2699
  const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
@@ -3095,17 +2702,17 @@ function Table2({
3095
2702
  setCurrent(page);
3096
2703
  onChange?.({ current: page, pageSize, total });
3097
2704
  };
3098
- return /* @__PURE__ */ jsxs45("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
3099
- loading ? /* @__PURE__ */ jsx65(
2705
+ return /* @__PURE__ */ jsxs42("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
2706
+ loading ? /* @__PURE__ */ jsx62(
3100
2707
  "div",
3101
2708
  {
3102
2709
  "data-slot": "table-loading",
3103
- className: "absolute inset-0 z-10 flex items-center justify-center bg-background/60 text-sm text-muted-foreground",
2710
+ className: "absolute inset-0 z-10 flex items-center justify-center bg-card/60 text-sm text-muted-foreground",
3104
2711
  children: t("pactor.table.loading")
3105
2712
  }
3106
2713
  ) : null,
3107
- /* @__PURE__ */ jsxs45(Table, { children: [
3108
- /* @__PURE__ */ jsx65(TableHeader, { children: /* @__PURE__ */ jsx65(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ jsx65(
2714
+ /* @__PURE__ */ jsxs42(Table, { children: [
2715
+ /* @__PURE__ */ jsx62(TableHeader, { children: /* @__PURE__ */ jsx62(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ jsx62(
3109
2716
  TableHead,
3110
2717
  {
3111
2718
  style: column.width !== void 0 ? { width: column.width } : void 0,
@@ -3113,7 +2720,7 @@ function Table2({
3113
2720
  },
3114
2721
  column.dataIndex ?? String(index)
3115
2722
  )) }) }),
3116
- /* @__PURE__ */ jsx65(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ jsx65(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx65(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ jsx65(
2723
+ /* @__PURE__ */ jsx62(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ jsx62(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ jsx62(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ jsx62(
3117
2724
  "div",
3118
2725
  {
3119
2726
  "data-slot": "table-empty",
@@ -3122,10 +2729,10 @@ function Table2({
3122
2729
  }
3123
2730
  ) }) }) : pageRows.map((row, rowIndex) => {
3124
2731
  const key = row[rowKey];
3125
- return /* @__PURE__ */ jsx65(
2732
+ return /* @__PURE__ */ jsx62(
3126
2733
  TableRow,
3127
2734
  {
3128
- children: columns.map((column, columnIndex) => /* @__PURE__ */ jsx65(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
2735
+ children: columns.map((column, columnIndex) => /* @__PURE__ */ jsx62(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
3129
2736
  column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
3130
2737
  ) }, column.dataIndex ?? String(columnIndex)))
3131
2738
  },
@@ -3133,8 +2740,8 @@ function Table2({
3133
2740
  );
3134
2741
  }) })
3135
2742
  ] }),
3136
- pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ jsx65("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
3137
- (page) => /* @__PURE__ */ jsx65(
2743
+ pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ jsx62("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
2744
+ (page) => /* @__PURE__ */ jsx62(
3138
2745
  Button,
3139
2746
  {
3140
2747
  type: "button",
@@ -3151,11 +2758,11 @@ function Table2({
3151
2758
  }
3152
2759
 
3153
2760
  // src/components/components/Tabs/index.tsx
3154
- import { useRenderer as useRenderer16 } from "@pactor-app/runtime";
3155
- import { jsx as jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
2761
+ import { useRenderer as useRenderer15 } from "@pactor-app/runtime";
2762
+ import { jsx as jsx63, jsxs as jsxs43 } from "react/jsx-runtime";
3156
2763
  function Tabs2({ items = [], activeKey, onChange, className, style }) {
3157
- const { renderChildren } = useRenderer16();
3158
- return /* @__PURE__ */ jsxs46(
2764
+ const { renderChildren } = useRenderer15();
2765
+ return /* @__PURE__ */ jsxs43(
3159
2766
  Tabs,
3160
2767
  {
3161
2768
  value: activeKey,
@@ -3164,20 +2771,20 @@ function Tabs2({ items = [], activeKey, onChange, className, style }) {
3164
2771
  className,
3165
2772
  style,
3166
2773
  children: [
3167
- /* @__PURE__ */ jsx66(TabsList, { children: items.map((item) => /* @__PURE__ */ jsx66(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
3168
- items.map((item) => /* @__PURE__ */ jsx66(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
2774
+ /* @__PURE__ */ jsx63(TabsList, { children: items.map((item) => /* @__PURE__ */ jsx63(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
2775
+ items.map((item) => /* @__PURE__ */ jsx63(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
3169
2776
  ]
3170
2777
  }
3171
2778
  );
3172
2779
  }
3173
2780
 
3174
2781
  // src/components/components/Text/index.tsx
3175
- import { jsx as jsx67 } from "react/jsx-runtime";
2782
+ import { jsx as jsx64 } from "react/jsx-runtime";
3176
2783
  var typeClassMap = {
3177
2784
  default: "",
3178
2785
  secondary: "text-muted-foreground",
3179
- success: "text-green-600 dark:text-green-400",
3180
- warning: "text-amber-600 dark:text-amber-400",
2786
+ success: "text-success",
2787
+ warning: "text-warning",
3181
2788
  danger: "text-destructive"
3182
2789
  };
3183
2790
  function Text({
@@ -3191,7 +2798,7 @@ function Text({
3191
2798
  style,
3192
2799
  children
3193
2800
  }) {
3194
- return /* @__PURE__ */ jsx67(
2801
+ return /* @__PURE__ */ jsx64(
3195
2802
  "span",
3196
2803
  {
3197
2804
  "data-slot": "text",
@@ -3211,8 +2818,8 @@ function Text({
3211
2818
  }
3212
2819
 
3213
2820
  // src/components/components/Textarea/index.tsx
3214
- import { useEffect as useEffect14, useId as useId7 } from "react";
3215
- import { jsx as jsx68 } from "react/jsx-runtime";
2821
+ import { useEffect as useEffect13, useId as useId7 } from "react";
2822
+ import { jsx as jsx65 } from "react/jsx-runtime";
3216
2823
  function Textarea2({
3217
2824
  name,
3218
2825
  label,
@@ -3228,7 +2835,7 @@ function Textarea2({
3228
2835
  const form = useFormContext();
3229
2836
  const controlId = useId7();
3230
2837
  const inForm = form?.inForm === true && typeof name === "string" && name !== "";
3231
- useEffect14(() => {
2838
+ useEffect13(() => {
3232
2839
  if (inForm && form && name) {
3233
2840
  form.registerField(name, rules, value);
3234
2841
  return () => form.unregisterField(name);
@@ -3237,7 +2844,7 @@ function Textarea2({
3237
2844
  });
3238
2845
  if (inForm && form && name) {
3239
2846
  const fieldValue = form.values[name];
3240
- return /* @__PURE__ */ jsx68(
2847
+ return /* @__PURE__ */ jsx65(
3241
2848
  FieldShell,
3242
2849
  {
3243
2850
  layout: form.layout,
@@ -3246,7 +2853,7 @@ function Textarea2({
3246
2853
  error: form.errors[name],
3247
2854
  className,
3248
2855
  style,
3249
- children: /* @__PURE__ */ jsx68(
2856
+ children: /* @__PURE__ */ jsx65(
3250
2857
  Textarea,
3251
2858
  {
3252
2859
  id: controlId,
@@ -3263,7 +2870,7 @@ function Textarea2({
3263
2870
  }
3264
2871
  );
3265
2872
  }
3266
- return /* @__PURE__ */ jsx68(
2873
+ return /* @__PURE__ */ jsx65(
3267
2874
  Textarea,
3268
2875
  {
3269
2876
  value: value ?? "",
@@ -3278,7 +2885,7 @@ function Textarea2({
3278
2885
  }
3279
2886
 
3280
2887
  // src/components/components/Toggle/index.tsx
3281
- import { jsx as jsx69 } from "react/jsx-runtime";
2888
+ import { jsx as jsx66 } from "react/jsx-runtime";
3282
2889
  function Toggle2({
3283
2890
  text,
3284
2891
  pressed,
@@ -3289,7 +2896,7 @@ function Toggle2({
3289
2896
  className,
3290
2897
  style
3291
2898
  }) {
3292
- return /* @__PURE__ */ jsx69(
2899
+ return /* @__PURE__ */ jsx66(
3293
2900
  Toggle,
3294
2901
  {
3295
2902
  pressed,
@@ -3305,7 +2912,7 @@ function Toggle2({
3305
2912
  }
3306
2913
 
3307
2914
  // src/components/components/ToggleGroup/index.tsx
3308
- import { jsx as jsx70 } from "react/jsx-runtime";
2915
+ import { jsx as jsx67 } from "react/jsx-runtime";
3309
2916
  function ToggleGroup2({
3310
2917
  options = [],
3311
2918
  value,
@@ -3325,7 +2932,7 @@ function ToggleGroup2({
3325
2932
  onChange?.(added ?? void 0);
3326
2933
  }
3327
2934
  };
3328
- return /* @__PURE__ */ jsx70(
2935
+ return /* @__PURE__ */ jsx67(
3329
2936
  ToggleGroup,
3330
2937
  {
3331
2938
  value: groupValue,
@@ -3334,7 +2941,7 @@ function ToggleGroup2({
3334
2941
  onValueChange: (next) => handleChange(next),
3335
2942
  className,
3336
2943
  style,
3337
- children: options.map((option) => /* @__PURE__ */ jsx70(
2944
+ children: options.map((option) => /* @__PURE__ */ jsx67(
3338
2945
  ToggleGroupItem,
3339
2946
  {
3340
2947
  value: option.value,
@@ -3348,27 +2955,27 @@ function ToggleGroup2({
3348
2955
  }
3349
2956
 
3350
2957
  // src/components/components/Tooltip/index.tsx
3351
- import { jsx as jsx71, jsxs as jsxs47 } from "react/jsx-runtime";
2958
+ import { jsx as jsx68, jsxs as jsxs44 } from "react/jsx-runtime";
3352
2959
  function Tooltip3({ content, children, className, style }) {
3353
- return /* @__PURE__ */ jsxs47(Tooltip, { children: [
3354
- /* @__PURE__ */ jsx71(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
3355
- /* @__PURE__ */ jsx71(TooltipContent, { className, style, children: content })
2960
+ return /* @__PURE__ */ jsxs44(Tooltip, { children: [
2961
+ /* @__PURE__ */ jsx68(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
2962
+ /* @__PURE__ */ jsx68(TooltipContent, { className, style, children: content })
3356
2963
  ] });
3357
2964
  }
3358
2965
 
3359
2966
  // src/components/components/Typography/index.tsx
3360
- import { jsx as jsx72 } from "react/jsx-runtime";
2967
+ import { jsx as jsx69 } from "react/jsx-runtime";
3361
2968
  function Typography2({
3362
2969
  variant = "p",
3363
2970
  text,
3364
2971
  className,
3365
2972
  style
3366
2973
  }) {
3367
- return /* @__PURE__ */ jsx72(Typography, { variant, className, style, children: text });
2974
+ return /* @__PURE__ */ jsx69(Typography, { variant, className, style, children: text });
3368
2975
  }
3369
2976
 
3370
2977
  // src/components/register.ts
3371
- var shadcnComponents = {
2978
+ var builtinComponents = {
3372
2979
  Page,
3373
2980
  Grid,
3374
2981
  Flex,
@@ -3448,14 +3055,14 @@ var shadcnComponents = {
3448
3055
  // 图标(lucide 白名单)
3449
3056
  Icon
3450
3057
  };
3451
- function registerShadcnComponents(registry) {
3452
- for (const [type, component] of Object.entries(shadcnComponents)) {
3058
+ function registerBuiltinComponents(registry) {
3059
+ for (const [type, component] of Object.entries(builtinComponents)) {
3453
3060
  registry.register(type, component);
3454
3061
  }
3455
3062
  }
3456
- function createShadcnComponentRegistry() {
3063
+ function createComponentRegistry() {
3457
3064
  const registry = new Registry("ComponentRegistry");
3458
- registerShadcnComponents(registry);
3065
+ registerBuiltinComponents(registry);
3459
3066
  return registry;
3460
3067
  }
3461
3068
 
@@ -3478,6 +3085,7 @@ export {
3478
3085
  Combobox2 as Combobox,
3479
3086
  Command2 as Command,
3480
3087
  Chart,
3088
+ ChatInput,
3481
3089
  Content,
3482
3090
  ContextMenu2 as ContextMenu,
3483
3091
  DataTable,
@@ -3500,10 +3108,6 @@ export {
3500
3108
  Label2 as Label,
3501
3109
  Layout,
3502
3110
  Link,
3503
- RailTooltip,
3504
- useSidebarDrawer,
3505
- Sidebar,
3506
- Menu,
3507
3111
  Menubar2 as Menubar,
3508
3112
  NavigationMenu2 as NavigationMenu,
3509
3113
  Page,
@@ -3531,7 +3135,7 @@ export {
3531
3135
  ToggleGroup2 as ToggleGroup,
3532
3136
  Tooltip3 as Tooltip,
3533
3137
  Typography2 as Typography,
3534
- shadcnComponents,
3535
- registerShadcnComponents,
3536
- createShadcnComponentRegistry
3138
+ builtinComponents,
3139
+ registerBuiltinComponents,
3140
+ createComponentRegistry
3537
3141
  };