@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.
- package/README.md +27 -31
- package/dist/{chunk-BZSRLTQQ.js → chunk-7KC6DMKH.js} +8 -8
- package/dist/chunk-EVGIS2ZE.js +614 -0
- package/dist/{chunk-F3H23KYG.js → chunk-F42SGQNW.js} +31 -93
- package/dist/chunk-L4Z7MNYY.js +1197 -0
- package/dist/{chunk-6B5ZX7L3.js → chunk-P54Y23AP.js} +201 -597
- package/dist/{chunk-GV5R6TUT.js → chunk-TDVG7MZ5.js} +180 -49
- package/dist/{chunk-BVHAP22U.js → chunk-UKA7C3JP.js} +213 -486
- package/dist/chunk-WKJUCGV4.js +78 -0
- package/dist/components/index.cjs +1023 -695
- package/dist/components/index.d.cts +37 -19
- package/dist/components/index.d.ts +37 -19
- package/dist/components/index.js +20 -18
- package/dist/index.cjs +1359 -913
- package/dist/index.d.cts +3 -36
- package/dist/index.d.ts +3 -36
- package/dist/index.js +40 -47
- package/dist/interaction/index.cjs +17 -13
- package/dist/interaction/index.d.cts +13 -16
- package/dist/interaction/index.d.ts +13 -16
- package/dist/interaction/index.js +7 -7
- package/dist/layout/index.cjs +1084 -63
- package/dist/layout/index.d.cts +98 -20
- package/dist/layout/index.d.ts +98 -20
- package/dist/layout/index.js +18 -16
- package/dist/ui/index.cjs +1688 -533
- package/dist/ui/index.d.cts +130 -16
- package/dist/ui/index.d.ts +130 -16
- package/dist/ui/index.js +485 -26
- package/package.json +6 -5
- package/styles.css +936 -107
- package/dist/chunk-6JNCDPGS.js +0 -257
- package/dist/chunk-GL7IO22L.js +0 -225
- package/dist/chunk-RQHJBTEU.js +0 -10
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Icon
|
|
3
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
1306
|
-
middle: "gap-
|
|
1307
|
-
large: "gap-
|
|
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-
|
|
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
|
|
1954
|
+
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2350
1955
|
function Menubar2({ menus = [], onSelect, className, style }) {
|
|
2351
|
-
return /* @__PURE__ */
|
|
2352
|
-
/* @__PURE__ */
|
|
2353
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2372
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1982
|
+
item.icon ? /* @__PURE__ */ jsx43(Icon, { name: item.icon, size: "sm" }) : null,
|
|
2378
1983
|
item.label
|
|
2379
1984
|
]
|
|
2380
1985
|
}
|
|
2381
1986
|
),
|
|
2382
|
-
/* @__PURE__ */
|
|
2383
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1998
|
+
child.description ? /* @__PURE__ */ jsx43("span", { className: "text-muted-foreground", children: child.description }) : null
|
|
2394
1999
|
] }) }, child.href)) }) })
|
|
2395
|
-
] }) : /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2017
|
+
import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
2413
2018
|
function Page({ title, className, style, children }) {
|
|
2414
|
-
return /* @__PURE__ */
|
|
2415
|
-
title ? /* @__PURE__ */
|
|
2416
|
-
/* @__PURE__ */
|
|
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
|
|
2422
|
-
import { jsx as
|
|
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] =
|
|
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__ */
|
|
2457
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2496
|
-
import { jsx as
|
|
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 } =
|
|
2502
|
-
return /* @__PURE__ */
|
|
2503
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
2601
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2632
|
-
import { Fragment as
|
|
2633
|
-
import { jsx as
|
|
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 } =
|
|
2641
|
-
return /* @__PURE__ */
|
|
2642
|
-
index > 0 ? /* @__PURE__ */
|
|
2643
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
2674
|
-
import { useEffect as
|
|
2675
|
-
import { jsx as
|
|
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 } =
|
|
2297
|
+
const { t } = useI18n5();
|
|
2691
2298
|
const controlId = useId5();
|
|
2692
2299
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
2693
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2725
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2389
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2783
2390
|
function Separator2({ orientation = "horizontal", className, style }) {
|
|
2784
|
-
return /* @__PURE__ */
|
|
2391
|
+
return /* @__PURE__ */ jsx53(Separator, { orientation, className, style });
|
|
2785
2392
|
}
|
|
2786
2393
|
|
|
2787
2394
|
// src/components/components/Sheet/index.tsx
|
|
2788
|
-
import { jsx as
|
|
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__ */
|
|
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__ */
|
|
2808
|
-
title ? /* @__PURE__ */
|
|
2809
|
-
/* @__PURE__ */
|
|
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
|
|
2817
|
-
import { jsx as
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
2841
|
-
collapsible ? /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
2884
|
-
import { jsx as
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
2928
|
-
/* @__PURE__ */
|
|
2929
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2951
|
-
import { useEffect as
|
|
2952
|
-
import { jsx as
|
|
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 } =
|
|
2955
|
-
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2988
|
-
title ? /* @__PURE__ */
|
|
2989
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2998
|
-
import { jsx as
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3066
|
-
import { useState as
|
|
3067
|
-
import { jsx as
|
|
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 } =
|
|
3088
|
-
const { t } =
|
|
3089
|
-
const [current, setCurrent] =
|
|
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__ */
|
|
3099
|
-
loading ? /* @__PURE__ */
|
|
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-
|
|
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__ */
|
|
3108
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2732
|
+
return /* @__PURE__ */ jsx62(
|
|
3126
2733
|
TableRow,
|
|
3127
2734
|
{
|
|
3128
|
-
children: columns.map((column, columnIndex) => /* @__PURE__ */
|
|
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__ */
|
|
3137
|
-
(page) => /* @__PURE__ */
|
|
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
|
|
3155
|
-
import { jsx as
|
|
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 } =
|
|
3158
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
3168
|
-
items.map((item) => /* @__PURE__ */
|
|
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
|
|
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-
|
|
3180
|
-
warning: "text-
|
|
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__ */
|
|
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
|
|
3215
|
-
import { jsx as
|
|
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
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2958
|
+
import { jsx as jsx68, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
3352
2959
|
function Tooltip3({ content, children, className, style }) {
|
|
3353
|
-
return /* @__PURE__ */
|
|
3354
|
-
/* @__PURE__ */
|
|
3355
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2974
|
+
return /* @__PURE__ */ jsx69(Typography, { variant, className, style, children: text });
|
|
3368
2975
|
}
|
|
3369
2976
|
|
|
3370
2977
|
// src/components/register.ts
|
|
3371
|
-
var
|
|
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
|
|
3452
|
-
for (const [type, component] of Object.entries(
|
|
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
|
|
3063
|
+
function createComponentRegistry() {
|
|
3457
3064
|
const registry = new Registry("ComponentRegistry");
|
|
3458
|
-
|
|
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
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3138
|
+
builtinComponents,
|
|
3139
|
+
registerBuiltinComponents,
|
|
3140
|
+
createComponentRegistry
|
|
3537
3141
|
};
|