@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
|
@@ -43,6 +43,7 @@ __export(components_exports, {
|
|
|
43
43
|
Card: () => Card2,
|
|
44
44
|
Carousel: () => Carousel2,
|
|
45
45
|
Chart: () => Chart,
|
|
46
|
+
ChatInput: () => ChatInput,
|
|
46
47
|
Checkbox: () => Checkbox2,
|
|
47
48
|
Collapsible: () => Collapsible2,
|
|
48
49
|
Combobox: () => Combobox2,
|
|
@@ -101,10 +102,10 @@ __export(components_exports, {
|
|
|
101
102
|
ToggleGroup: () => ToggleGroup2,
|
|
102
103
|
Tooltip: () => Tooltip3,
|
|
103
104
|
Typography: () => Typography2,
|
|
104
|
-
|
|
105
|
+
builtinComponents: () => builtinComponents,
|
|
106
|
+
createComponentRegistry: () => createComponentRegistry,
|
|
105
107
|
normalizeIconName: () => normalizeIconName,
|
|
106
|
-
|
|
107
|
-
shadcnComponents: () => shadcnComponents,
|
|
108
|
+
registerBuiltinComponents: () => registerBuiltinComponents,
|
|
108
109
|
useFormContext: () => useFormContext,
|
|
109
110
|
useSidebarDrawer: () => useSidebarDrawer
|
|
110
111
|
});
|
|
@@ -326,16 +327,20 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
|
|
|
326
327
|
variant: {
|
|
327
328
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
328
329
|
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
|
|
329
|
-
outline: "border border-border bg-
|
|
330
|
+
outline: "border border-border bg-card hover:bg-accent hover:text-accent-foreground",
|
|
330
331
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
331
332
|
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
332
333
|
link: "text-primary underline-offset-4 hover:underline"
|
|
333
334
|
},
|
|
334
335
|
size: {
|
|
335
336
|
default: "h-9 px-4 py-2",
|
|
337
|
+
xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
336
338
|
sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
|
|
337
339
|
lg: "h-10 rounded-md px-6",
|
|
338
|
-
icon: "size-9"
|
|
340
|
+
icon: "size-9",
|
|
341
|
+
"icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
|
|
342
|
+
"icon-sm": "size-8",
|
|
343
|
+
"icon-lg": "size-10"
|
|
339
344
|
}
|
|
340
345
|
},
|
|
341
346
|
defaultVariants: {
|
|
@@ -400,7 +405,7 @@ function AlertDialogOverlay({
|
|
|
400
405
|
{
|
|
401
406
|
"data-slot": "alert-dialog-overlay",
|
|
402
407
|
className: cn(
|
|
403
|
-
"fixed inset-0 z-50 bg-
|
|
408
|
+
"fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
404
409
|
className
|
|
405
410
|
),
|
|
406
411
|
...props
|
|
@@ -418,7 +423,7 @@ function AlertDialogContent({
|
|
|
418
423
|
{
|
|
419
424
|
"data-slot": "alert-dialog-content",
|
|
420
425
|
className: cn(
|
|
421
|
-
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-
|
|
426
|
+
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
|
|
422
427
|
className
|
|
423
428
|
),
|
|
424
429
|
...props
|
|
@@ -861,7 +866,7 @@ function Calendar({
|
|
|
861
866
|
import_react_day_picker.DayPicker,
|
|
862
867
|
{
|
|
863
868
|
showOutsideDays,
|
|
864
|
-
className: cn("bg-
|
|
869
|
+
className: cn("bg-card p-3", className),
|
|
865
870
|
classNames: {
|
|
866
871
|
root: cn("w-fit", defaultClassNames.root),
|
|
867
872
|
months: cn("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
|
|
@@ -894,15 +899,15 @@ function Calendar({
|
|
|
894
899
|
week: cn("mt-2 flex w-full", defaultClassNames.week),
|
|
895
900
|
day: cn("h-8 w-8 p-0 text-center text-sm", defaultClassNames.day),
|
|
896
901
|
day_button: cn(
|
|
897
|
-
"size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-
|
|
902
|
+
"size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-(--calendar-day-hover-background) hover:text-(--calendar-day-hover-foreground) aria-selected:opacity-100",
|
|
898
903
|
defaultClassNames.day_button
|
|
899
904
|
),
|
|
900
905
|
selected: cn(
|
|
901
|
-
"[&>button]:bg-
|
|
906
|
+
"[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background)",
|
|
902
907
|
defaultClassNames.selected
|
|
903
908
|
),
|
|
904
909
|
today: cn(
|
|
905
|
-
"[&>button]:bg-
|
|
910
|
+
"[&>button]:bg-(--calendar-today-background) [&>button]:text-(--calendar-today-foreground)",
|
|
906
911
|
defaultClassNames.today
|
|
907
912
|
),
|
|
908
913
|
outside: cn(
|
|
@@ -1012,7 +1017,7 @@ function Card({ className, ...props }) {
|
|
|
1012
1017
|
{
|
|
1013
1018
|
"data-slot": "card",
|
|
1014
1019
|
className: cn(
|
|
1015
|
-
"flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-
|
|
1020
|
+
"flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-(--card-shadow)",
|
|
1016
1021
|
className
|
|
1017
1022
|
),
|
|
1018
1023
|
...props
|
|
@@ -1513,7 +1518,7 @@ function PopoverContent({
|
|
|
1513
1518
|
{
|
|
1514
1519
|
"data-slot": "popover-content",
|
|
1515
1520
|
className: cn(
|
|
1516
|
-
"z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
1521
|
+
"z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
1517
1522
|
className
|
|
1518
1523
|
),
|
|
1519
1524
|
...props
|
|
@@ -1668,7 +1673,7 @@ function CommandItem({
|
|
|
1668
1673
|
{
|
|
1669
1674
|
"data-slot": "command-item",
|
|
1670
1675
|
className: cn(
|
|
1671
|
-
"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-
|
|
1676
|
+
"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-(--menu-active-background) data-[selected=true]:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1672
1677
|
className
|
|
1673
1678
|
),
|
|
1674
1679
|
...props
|
|
@@ -1970,11 +1975,11 @@ var import_recharts2 = require("recharts");
|
|
|
1970
1975
|
var import_recharts = require("recharts");
|
|
1971
1976
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
1972
1977
|
var CHART_TOKEN_COLORS = [
|
|
1973
|
-
"
|
|
1974
|
-
"
|
|
1975
|
-
"
|
|
1976
|
-
"
|
|
1977
|
-
"
|
|
1978
|
+
"var(--chart-1)",
|
|
1979
|
+
"var(--chart-2)",
|
|
1980
|
+
"var(--chart-3)",
|
|
1981
|
+
"var(--chart-4)",
|
|
1982
|
+
"var(--chart-5)"
|
|
1978
1983
|
];
|
|
1979
1984
|
function chartColor(index, colors) {
|
|
1980
1985
|
if (colors && colors.length > 0) {
|
|
@@ -2165,7 +2170,7 @@ function ChatInput({
|
|
|
2165
2170
|
{
|
|
2166
2171
|
"data-slot": "chat-input",
|
|
2167
2172
|
className: cn(
|
|
2168
|
-
"rounded-xl border border-border bg-
|
|
2173
|
+
"rounded-xl border border-border bg-card transition-shadow focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50",
|
|
2169
2174
|
className
|
|
2170
2175
|
),
|
|
2171
2176
|
style,
|
|
@@ -2244,7 +2249,7 @@ function ContextMenuContent({
|
|
|
2244
2249
|
{
|
|
2245
2250
|
"data-slot": "context-menu-content",
|
|
2246
2251
|
className: cn(
|
|
2247
|
-
"z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2252
|
+
"z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2248
2253
|
className
|
|
2249
2254
|
),
|
|
2250
2255
|
...props
|
|
@@ -2262,7 +2267,7 @@ function ContextMenuItem({
|
|
|
2262
2267
|
"data-slot": "context-menu-item",
|
|
2263
2268
|
"data-variant": variant,
|
|
2264
2269
|
className: cn(
|
|
2265
|
-
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-
|
|
2270
|
+
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2266
2271
|
className
|
|
2267
2272
|
),
|
|
2268
2273
|
...props
|
|
@@ -2577,7 +2582,7 @@ function DialogOverlay({
|
|
|
2577
2582
|
{
|
|
2578
2583
|
"data-slot": "dialog-overlay",
|
|
2579
2584
|
className: cn(
|
|
2580
|
-
"fixed inset-0 z-50 bg-
|
|
2585
|
+
"fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
2581
2586
|
className
|
|
2582
2587
|
),
|
|
2583
2588
|
...props
|
|
@@ -2597,7 +2602,7 @@ function DialogContent({
|
|
|
2597
2602
|
{
|
|
2598
2603
|
"data-slot": "dialog-content",
|
|
2599
2604
|
className: cn(
|
|
2600
|
-
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-
|
|
2605
|
+
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
|
|
2601
2606
|
className
|
|
2602
2607
|
),
|
|
2603
2608
|
...props,
|
|
@@ -2732,7 +2737,7 @@ function DrawerOverlay({
|
|
|
2732
2737
|
import_vaul.Drawer.Overlay,
|
|
2733
2738
|
{
|
|
2734
2739
|
"data-slot": "drawer-overlay",
|
|
2735
|
-
className: cn("fixed inset-0 z-50 bg-
|
|
2740
|
+
className: cn("fixed inset-0 z-50 bg-(--overlay-background)", className),
|
|
2736
2741
|
...props
|
|
2737
2742
|
}
|
|
2738
2743
|
);
|
|
@@ -2749,7 +2754,7 @@ function DrawerContent({
|
|
|
2749
2754
|
{
|
|
2750
2755
|
"data-slot": "drawer-content",
|
|
2751
2756
|
className: cn(
|
|
2752
|
-
"group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-
|
|
2757
|
+
"group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-popover",
|
|
2753
2758
|
"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
|
|
2754
2759
|
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
|
|
2755
2760
|
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
@@ -2851,7 +2856,7 @@ function DropdownMenuContent({
|
|
|
2851
2856
|
{
|
|
2852
2857
|
"data-slot": "dropdown-menu-content",
|
|
2853
2858
|
className: cn(
|
|
2854
|
-
"z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2859
|
+
"z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2855
2860
|
className
|
|
2856
2861
|
),
|
|
2857
2862
|
...props
|
|
@@ -2871,7 +2876,7 @@ function DropdownMenuItem({
|
|
|
2871
2876
|
"data-slot": "dropdown-menu-item",
|
|
2872
2877
|
"data-variant": variant,
|
|
2873
2878
|
className: cn(
|
|
2874
|
-
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-
|
|
2879
|
+
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2875
2880
|
className
|
|
2876
2881
|
),
|
|
2877
2882
|
...props
|
|
@@ -2893,7 +2898,7 @@ function DropdownMenuSubTrigger({
|
|
|
2893
2898
|
{
|
|
2894
2899
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
2895
2900
|
className: cn(
|
|
2896
|
-
"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-
|
|
2901
|
+
"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2897
2902
|
className
|
|
2898
2903
|
),
|
|
2899
2904
|
...props,
|
|
@@ -2914,7 +2919,7 @@ function DropdownMenuSubContent({
|
|
|
2914
2919
|
{
|
|
2915
2920
|
"data-slot": "dropdown-menu-sub-content",
|
|
2916
2921
|
className: cn(
|
|
2917
|
-
"z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2922
|
+
"z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
2918
2923
|
className
|
|
2919
2924
|
),
|
|
2920
2925
|
...props
|
|
@@ -3085,9 +3090,9 @@ function Field2({ label, description, error, children, className, style }) {
|
|
|
3085
3090
|
// src/components/components/Flex/index.tsx
|
|
3086
3091
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3087
3092
|
var gapClass = {
|
|
3088
|
-
small: "gap-
|
|
3089
|
-
middle: "gap-
|
|
3090
|
-
large: "gap-
|
|
3093
|
+
small: "gap-(--flex-gap-sm)",
|
|
3094
|
+
middle: "gap-(--flex-gap-md)",
|
|
3095
|
+
large: "gap-(--flex-gap-lg)"
|
|
3091
3096
|
};
|
|
3092
3097
|
var justifyClass = {
|
|
3093
3098
|
start: "justify-start",
|
|
@@ -3120,6 +3125,7 @@ function Flex({
|
|
|
3120
3125
|
className: cn(
|
|
3121
3126
|
"flex",
|
|
3122
3127
|
direction === "vertical" && "flex-col",
|
|
3128
|
+
gap === void 0 && "gap-(--flex-gap)",
|
|
3123
3129
|
typeof gap === "string" && gapClass[gap],
|
|
3124
3130
|
justify && justifyClass[justify],
|
|
3125
3131
|
align && alignClass[align],
|
|
@@ -3254,7 +3260,7 @@ function Grid({ columns = 1, gap, className, style, children }) {
|
|
|
3254
3260
|
{
|
|
3255
3261
|
"data-slot": "grid",
|
|
3256
3262
|
"data-columns": cols,
|
|
3257
|
-
className: cn("grid", className),
|
|
3263
|
+
className: cn("grid", gap === void 0 && "gap-(--grid-gap)", className),
|
|
3258
3264
|
style: {
|
|
3259
3265
|
gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,
|
|
3260
3266
|
...gap !== void 0 ? { gap } : {},
|
|
@@ -3295,7 +3301,7 @@ function Header({
|
|
|
3295
3301
|
const hasLocales = locales !== void 0 && locales.length > 0;
|
|
3296
3302
|
const hasUser = user !== void 0;
|
|
3297
3303
|
const rootClass = cn(
|
|
3298
|
-
"flex h-14 shrink-0 items-center gap-4 border-b bg-
|
|
3304
|
+
"flex h-14 shrink-0 items-center gap-4 border-b bg-card px-4",
|
|
3299
3305
|
className
|
|
3300
3306
|
);
|
|
3301
3307
|
if (!hasBrand && !dropdown && !hasMenu && !hasUser && !hasLocales) {
|
|
@@ -3340,7 +3346,7 @@ function HeaderDropdownArea({
|
|
|
3340
3346
|
DropdownMenuTrigger,
|
|
3341
3347
|
{
|
|
3342
3348
|
"data-slot": "header-dropdown",
|
|
3343
|
-
className: cn(menuItemClass, "outline-hidden"),
|
|
3349
|
+
className: cn(menuItemClass, "outline-hidden cursor-pointer"),
|
|
3344
3350
|
children: [
|
|
3345
3351
|
dropdown.label,
|
|
3346
3352
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
|
|
@@ -3372,7 +3378,7 @@ function HeaderMenuArea({
|
|
|
3372
3378
|
{
|
|
3373
3379
|
"data-slot": "header-menu-item",
|
|
3374
3380
|
"data-key": item.key,
|
|
3375
|
-
className: cn(menuItemClass, "outline-hidden"),
|
|
3381
|
+
className: cn(menuItemClass, "outline-hidden cursor-pointer"),
|
|
3376
3382
|
children: [
|
|
3377
3383
|
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
3378
3384
|
item.label,
|
|
@@ -3404,7 +3410,7 @@ function HeaderMenuEntry({
|
|
|
3404
3410
|
}) {
|
|
3405
3411
|
if (item.children !== void 0 && item.children.length > 0) {
|
|
3406
3412
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSub, { children: [
|
|
3407
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, children: [
|
|
3413
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(DropdownMenuSubTrigger, { "data-key": item.key, className: "cursor-pointer", children: [
|
|
3408
3414
|
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
3409
3415
|
item.label
|
|
3410
3416
|
] }),
|
|
@@ -3435,7 +3441,7 @@ function HeaderUserArea({
|
|
|
3435
3441
|
DropdownMenuTrigger,
|
|
3436
3442
|
{
|
|
3437
3443
|
"data-slot": "header-user",
|
|
3438
|
-
className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50",
|
|
3444
|
+
className: "flex items-center gap-2 rounded-md px-2 py-1.5 transition-colors outline-hidden hover:bg-accent/50 cursor-pointer",
|
|
3439
3445
|
children: identity
|
|
3440
3446
|
}
|
|
3441
3447
|
),
|
|
@@ -3456,7 +3462,7 @@ function HeaderLocalesArea({
|
|
|
3456
3462
|
DropdownMenuTrigger,
|
|
3457
3463
|
{
|
|
3458
3464
|
"data-slot": "header-locales",
|
|
3459
|
-
className: cn(menuItemClass, "outline-hidden"),
|
|
3465
|
+
className: cn(menuItemClass, "outline-hidden cursor-pointer"),
|
|
3460
3466
|
children: [
|
|
3461
3467
|
current?.label ?? locale,
|
|
3462
3468
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_lucide_react15.ChevronDownIcon, { className: "size-3.5", "aria-hidden": "true" })
|
|
@@ -3509,7 +3515,7 @@ function HoverCardContent({
|
|
|
3509
3515
|
{
|
|
3510
3516
|
"data-slot": "hover-card-content",
|
|
3511
3517
|
className: cn(
|
|
3512
|
-
"z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
3518
|
+
"z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
3513
3519
|
className
|
|
3514
3520
|
),
|
|
3515
3521
|
...props
|
|
@@ -4029,15 +4035,17 @@ function RailTooltip({
|
|
|
4029
4035
|
|
|
4030
4036
|
// src/components/components/Sidebar/index.tsx
|
|
4031
4037
|
var import_runtime13 = require("@pactor-app/runtime");
|
|
4032
|
-
var
|
|
4038
|
+
var import_react17 = require("react");
|
|
4039
|
+
|
|
4040
|
+
// src/ui/sidebar.tsx
|
|
4041
|
+
var React4 = __toESM(require("react"), 1);
|
|
4042
|
+
var import_class_variance_authority5 = require("class-variance-authority");
|
|
4043
|
+
var import_lucide_react18 = require("lucide-react");
|
|
4044
|
+
|
|
4045
|
+
// src/hooks/use-mobile.ts
|
|
4033
4046
|
var import_react16 = require("react");
|
|
4034
|
-
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
4035
|
-
var SidebarDrawerContext = (0, import_react16.createContext)(null);
|
|
4036
|
-
function useSidebarDrawer() {
|
|
4037
|
-
return (0, import_react16.useContext)(SidebarDrawerContext);
|
|
4038
|
-
}
|
|
4039
4047
|
var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
|
|
4040
|
-
function
|
|
4048
|
+
function useIsMobile() {
|
|
4041
4049
|
const [isMobile, setIsMobile] = (0, import_react16.useState)(
|
|
4042
4050
|
() => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
|
|
4043
4051
|
);
|
|
@@ -4055,6 +4063,512 @@ function useIsMobileViewport() {
|
|
|
4055
4063
|
}, []);
|
|
4056
4064
|
return isMobile;
|
|
4057
4065
|
}
|
|
4066
|
+
|
|
4067
|
+
// src/ui/separator.tsx
|
|
4068
|
+
var import_separator = require("@base-ui/react/separator");
|
|
4069
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
4070
|
+
function Separator({
|
|
4071
|
+
className,
|
|
4072
|
+
orientation = "horizontal",
|
|
4073
|
+
decorative: _decorative,
|
|
4074
|
+
...props
|
|
4075
|
+
}) {
|
|
4076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4077
|
+
import_separator.Separator,
|
|
4078
|
+
{
|
|
4079
|
+
"data-slot": "separator",
|
|
4080
|
+
orientation,
|
|
4081
|
+
className: cn(
|
|
4082
|
+
"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
4083
|
+
className
|
|
4084
|
+
),
|
|
4085
|
+
...props
|
|
4086
|
+
}
|
|
4087
|
+
);
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
// src/ui/sheet.tsx
|
|
4091
|
+
var import_dialog3 = require("@base-ui/react/dialog");
|
|
4092
|
+
var import_lucide_react17 = require("lucide-react");
|
|
4093
|
+
var import_class_variance_authority4 = require("class-variance-authority");
|
|
4094
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
4095
|
+
function Sheet({
|
|
4096
|
+
...props
|
|
4097
|
+
}) {
|
|
4098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
|
|
4099
|
+
}
|
|
4100
|
+
function SheetPortal({
|
|
4101
|
+
...props
|
|
4102
|
+
}) {
|
|
4103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
|
|
4104
|
+
}
|
|
4105
|
+
function SheetOverlay({
|
|
4106
|
+
className,
|
|
4107
|
+
...props
|
|
4108
|
+
}) {
|
|
4109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
4110
|
+
import_dialog3.Dialog.Backdrop,
|
|
4111
|
+
{
|
|
4112
|
+
"data-slot": "sheet-overlay",
|
|
4113
|
+
className: cn(
|
|
4114
|
+
"fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
4115
|
+
className
|
|
4116
|
+
),
|
|
4117
|
+
...props
|
|
4118
|
+
}
|
|
4119
|
+
);
|
|
4120
|
+
}
|
|
4121
|
+
var sheetVariants = (0, import_class_variance_authority4.cva)(
|
|
4122
|
+
"fixed z-50 flex flex-col gap-4 border-border bg-popover shadow-lg shadow-(color:--shadow-color) transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
|
|
4123
|
+
{
|
|
4124
|
+
variants: {
|
|
4125
|
+
side: {
|
|
4126
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-open:slide-in-from-right data-closed:slide-out-to-right sm:max-w-sm",
|
|
4127
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-open:slide-in-from-left data-closed:slide-out-to-left sm:max-w-sm",
|
|
4128
|
+
top: "inset-x-0 top-0 border-b data-open:slide-in-from-top data-closed:slide-out-to-top",
|
|
4129
|
+
bottom: "inset-x-0 bottom-0 border-t data-open:slide-in-from-bottom data-closed:slide-out-to-bottom"
|
|
4130
|
+
}
|
|
4131
|
+
},
|
|
4132
|
+
defaultVariants: {
|
|
4133
|
+
side: "right"
|
|
4134
|
+
}
|
|
4135
|
+
}
|
|
4136
|
+
);
|
|
4137
|
+
function SheetContent({
|
|
4138
|
+
className,
|
|
4139
|
+
children,
|
|
4140
|
+
side = "right",
|
|
4141
|
+
...props
|
|
4142
|
+
}) {
|
|
4143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
|
|
4144
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetOverlay, {}),
|
|
4145
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
4146
|
+
import_dialog3.Dialog.Popup,
|
|
4147
|
+
{
|
|
4148
|
+
"data-slot": "sheet-content",
|
|
4149
|
+
className: cn(sheetVariants({ side }), className),
|
|
4150
|
+
...props,
|
|
4151
|
+
children: [
|
|
4152
|
+
children,
|
|
4153
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
4154
|
+
import_dialog3.Dialog.Close,
|
|
4155
|
+
{
|
|
4156
|
+
"data-slot": "sheet-close",
|
|
4157
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
4158
|
+
"button",
|
|
4159
|
+
{
|
|
4160
|
+
type: "button",
|
|
4161
|
+
className: "absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
4162
|
+
}
|
|
4163
|
+
),
|
|
4164
|
+
children: [
|
|
4165
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react17.XIcon, {}),
|
|
4166
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "sr-only", children: "Close" })
|
|
4167
|
+
]
|
|
4168
|
+
}
|
|
4169
|
+
)
|
|
4170
|
+
]
|
|
4171
|
+
}
|
|
4172
|
+
)
|
|
4173
|
+
] });
|
|
4174
|
+
}
|
|
4175
|
+
function SheetHeader({ className, ...props }) {
|
|
4176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
4177
|
+
"div",
|
|
4178
|
+
{
|
|
4179
|
+
"data-slot": "sheet-header",
|
|
4180
|
+
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
4181
|
+
...props
|
|
4182
|
+
}
|
|
4183
|
+
);
|
|
4184
|
+
}
|
|
4185
|
+
function SheetTitle({
|
|
4186
|
+
className,
|
|
4187
|
+
...props
|
|
4188
|
+
}) {
|
|
4189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
4190
|
+
import_dialog3.Dialog.Title,
|
|
4191
|
+
{
|
|
4192
|
+
"data-slot": "sheet-title",
|
|
4193
|
+
className: cn("font-semibold text-foreground", className),
|
|
4194
|
+
...props
|
|
4195
|
+
}
|
|
4196
|
+
);
|
|
4197
|
+
}
|
|
4198
|
+
function SheetDescription({
|
|
4199
|
+
className,
|
|
4200
|
+
...props
|
|
4201
|
+
}) {
|
|
4202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
4203
|
+
import_dialog3.Dialog.Description,
|
|
4204
|
+
{
|
|
4205
|
+
"data-slot": "sheet-description",
|
|
4206
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
4207
|
+
...props
|
|
4208
|
+
}
|
|
4209
|
+
);
|
|
4210
|
+
}
|
|
4211
|
+
|
|
4212
|
+
// src/ui/skeleton.tsx
|
|
4213
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
4214
|
+
function Skeleton({ className, ...props }) {
|
|
4215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
4216
|
+
"div",
|
|
4217
|
+
{
|
|
4218
|
+
"data-slot": "skeleton",
|
|
4219
|
+
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
4220
|
+
...props
|
|
4221
|
+
}
|
|
4222
|
+
);
|
|
4223
|
+
}
|
|
4224
|
+
|
|
4225
|
+
// src/ui/sidebar.tsx
|
|
4226
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
4227
|
+
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
4228
|
+
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
4229
|
+
var SIDEBAR_WIDTH = "16rem";
|
|
4230
|
+
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
4231
|
+
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
4232
|
+
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
4233
|
+
var SidebarContext = React4.createContext(null);
|
|
4234
|
+
function useSidebar() {
|
|
4235
|
+
const context = React4.useContext(SidebarContext);
|
|
4236
|
+
if (!context) {
|
|
4237
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
4238
|
+
}
|
|
4239
|
+
return context;
|
|
4240
|
+
}
|
|
4241
|
+
function SidebarProvider({
|
|
4242
|
+
defaultOpen = true,
|
|
4243
|
+
open: openProp,
|
|
4244
|
+
onOpenChange: setOpenProp,
|
|
4245
|
+
className,
|
|
4246
|
+
style,
|
|
4247
|
+
children,
|
|
4248
|
+
...props
|
|
4249
|
+
}) {
|
|
4250
|
+
const isMobile = useIsMobile();
|
|
4251
|
+
const [openMobile, setOpenMobile] = React4.useState(false);
|
|
4252
|
+
const [_open, _setOpen] = React4.useState(defaultOpen);
|
|
4253
|
+
const open = openProp ?? _open;
|
|
4254
|
+
const setOpen = React4.useCallback(
|
|
4255
|
+
(value) => {
|
|
4256
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
4257
|
+
if (setOpenProp) {
|
|
4258
|
+
setOpenProp(openState);
|
|
4259
|
+
} else {
|
|
4260
|
+
_setOpen(openState);
|
|
4261
|
+
}
|
|
4262
|
+
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
4263
|
+
},
|
|
4264
|
+
[setOpenProp, open]
|
|
4265
|
+
);
|
|
4266
|
+
const toggleSidebar = React4.useCallback(() => {
|
|
4267
|
+
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
4268
|
+
}, [isMobile, setOpen, setOpenMobile]);
|
|
4269
|
+
React4.useEffect(() => {
|
|
4270
|
+
const handleKeyDown = (event) => {
|
|
4271
|
+
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
4272
|
+
event.preventDefault();
|
|
4273
|
+
toggleSidebar();
|
|
4274
|
+
}
|
|
4275
|
+
};
|
|
4276
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
4277
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
4278
|
+
}, [toggleSidebar]);
|
|
4279
|
+
const state = open ? "expanded" : "collapsed";
|
|
4280
|
+
const contextValue = React4.useMemo(
|
|
4281
|
+
() => ({
|
|
4282
|
+
state,
|
|
4283
|
+
open,
|
|
4284
|
+
setOpen,
|
|
4285
|
+
isMobile,
|
|
4286
|
+
openMobile,
|
|
4287
|
+
setOpenMobile,
|
|
4288
|
+
toggleSidebar
|
|
4289
|
+
}),
|
|
4290
|
+
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
4291
|
+
);
|
|
4292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4293
|
+
"div",
|
|
4294
|
+
{
|
|
4295
|
+
"data-slot": "sidebar-wrapper",
|
|
4296
|
+
style: {
|
|
4297
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
4298
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
4299
|
+
...style
|
|
4300
|
+
},
|
|
4301
|
+
className: cn(
|
|
4302
|
+
"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
|
|
4303
|
+
className
|
|
4304
|
+
),
|
|
4305
|
+
...props,
|
|
4306
|
+
children
|
|
4307
|
+
}
|
|
4308
|
+
) }) });
|
|
4309
|
+
}
|
|
4310
|
+
function SidebarRoot({
|
|
4311
|
+
side = "left",
|
|
4312
|
+
variant = "sidebar",
|
|
4313
|
+
collapsible = "offcanvas",
|
|
4314
|
+
className,
|
|
4315
|
+
children,
|
|
4316
|
+
...props
|
|
4317
|
+
}) {
|
|
4318
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
4319
|
+
if (collapsible === "none") {
|
|
4320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4321
|
+
"div",
|
|
4322
|
+
{
|
|
4323
|
+
"data-slot": "sidebar",
|
|
4324
|
+
className: cn(
|
|
4325
|
+
"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
|
|
4326
|
+
className
|
|
4327
|
+
),
|
|
4328
|
+
...props,
|
|
4329
|
+
children
|
|
4330
|
+
}
|
|
4331
|
+
);
|
|
4332
|
+
}
|
|
4333
|
+
if (isMobile) {
|
|
4334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
4335
|
+
SheetContent,
|
|
4336
|
+
{
|
|
4337
|
+
"data-sidebar": "sidebar",
|
|
4338
|
+
"data-slot": "sidebar",
|
|
4339
|
+
"data-mobile": "true",
|
|
4340
|
+
className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
|
|
4341
|
+
style: {
|
|
4342
|
+
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
4343
|
+
},
|
|
4344
|
+
side,
|
|
4345
|
+
children: [
|
|
4346
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
4347
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
4348
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
4349
|
+
] }),
|
|
4350
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
4351
|
+
]
|
|
4352
|
+
}
|
|
4353
|
+
) });
|
|
4354
|
+
}
|
|
4355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
4356
|
+
"div",
|
|
4357
|
+
{
|
|
4358
|
+
className: "group peer hidden text-sidebar-foreground md:block",
|
|
4359
|
+
"data-state": state,
|
|
4360
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
4361
|
+
"data-variant": variant,
|
|
4362
|
+
"data-side": side,
|
|
4363
|
+
"data-slot": "sidebar",
|
|
4364
|
+
children: [
|
|
4365
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4366
|
+
"div",
|
|
4367
|
+
{
|
|
4368
|
+
"data-slot": "sidebar-gap",
|
|
4369
|
+
className: cn(
|
|
4370
|
+
"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
|
|
4371
|
+
"group-data-[collapsible=offcanvas]:w-0",
|
|
4372
|
+
"group-data-[side=right]:rotate-180",
|
|
4373
|
+
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
|
|
4374
|
+
)
|
|
4375
|
+
}
|
|
4376
|
+
),
|
|
4377
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4378
|
+
"div",
|
|
4379
|
+
{
|
|
4380
|
+
"data-slot": "sidebar-container",
|
|
4381
|
+
className: cn(
|
|
4382
|
+
"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
4383
|
+
side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
4384
|
+
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
4385
|
+
className
|
|
4386
|
+
),
|
|
4387
|
+
...props,
|
|
4388
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4389
|
+
"div",
|
|
4390
|
+
{
|
|
4391
|
+
"data-sidebar": "sidebar",
|
|
4392
|
+
"data-slot": "sidebar-inner",
|
|
4393
|
+
className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
|
|
4394
|
+
children
|
|
4395
|
+
}
|
|
4396
|
+
)
|
|
4397
|
+
}
|
|
4398
|
+
)
|
|
4399
|
+
]
|
|
4400
|
+
}
|
|
4401
|
+
);
|
|
4402
|
+
}
|
|
4403
|
+
function SidebarInset({ className, ...props }) {
|
|
4404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4405
|
+
"main",
|
|
4406
|
+
{
|
|
4407
|
+
"data-slot": "sidebar-inset",
|
|
4408
|
+
className: cn(
|
|
4409
|
+
"relative flex w-full flex-1 flex-col bg-background",
|
|
4410
|
+
"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
|
|
4411
|
+
className
|
|
4412
|
+
),
|
|
4413
|
+
...props
|
|
4414
|
+
}
|
|
4415
|
+
);
|
|
4416
|
+
}
|
|
4417
|
+
function SidebarHeader({ className, ...props }) {
|
|
4418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4419
|
+
"div",
|
|
4420
|
+
{
|
|
4421
|
+
"data-slot": "sidebar-header",
|
|
4422
|
+
"data-sidebar": "header",
|
|
4423
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
4424
|
+
...props
|
|
4425
|
+
}
|
|
4426
|
+
);
|
|
4427
|
+
}
|
|
4428
|
+
function SidebarFooter({ className, ...props }) {
|
|
4429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4430
|
+
"div",
|
|
4431
|
+
{
|
|
4432
|
+
"data-slot": "sidebar-footer",
|
|
4433
|
+
"data-sidebar": "footer",
|
|
4434
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
4435
|
+
...props
|
|
4436
|
+
}
|
|
4437
|
+
);
|
|
4438
|
+
}
|
|
4439
|
+
function SidebarContent({ className, ...props }) {
|
|
4440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4441
|
+
"div",
|
|
4442
|
+
{
|
|
4443
|
+
"data-slot": "sidebar-content",
|
|
4444
|
+
"data-sidebar": "content",
|
|
4445
|
+
className: cn(
|
|
4446
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
4447
|
+
className
|
|
4448
|
+
),
|
|
4449
|
+
...props
|
|
4450
|
+
}
|
|
4451
|
+
);
|
|
4452
|
+
}
|
|
4453
|
+
function renderAsChild(children, dataSlot, className, rest) {
|
|
4454
|
+
if (!React4.isValidElement(children)) {
|
|
4455
|
+
return null;
|
|
4456
|
+
}
|
|
4457
|
+
return React4.cloneElement(children, {
|
|
4458
|
+
"data-slot": dataSlot,
|
|
4459
|
+
className: cn(
|
|
4460
|
+
className,
|
|
4461
|
+
children.props.className
|
|
4462
|
+
),
|
|
4463
|
+
...rest
|
|
4464
|
+
});
|
|
4465
|
+
}
|
|
4466
|
+
function SidebarMenu({ className, ...props }) {
|
|
4467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4468
|
+
"ul",
|
|
4469
|
+
{
|
|
4470
|
+
"data-slot": "sidebar-menu",
|
|
4471
|
+
"data-sidebar": "menu",
|
|
4472
|
+
className: cn("flex w-full min-w-0 flex-col gap-1", className),
|
|
4473
|
+
...props
|
|
4474
|
+
}
|
|
4475
|
+
);
|
|
4476
|
+
}
|
|
4477
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
4478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4479
|
+
"li",
|
|
4480
|
+
{
|
|
4481
|
+
"data-slot": "sidebar-menu-item",
|
|
4482
|
+
"data-sidebar": "menu-item",
|
|
4483
|
+
className: cn("group/menu-item relative", className),
|
|
4484
|
+
...props
|
|
4485
|
+
}
|
|
4486
|
+
);
|
|
4487
|
+
}
|
|
4488
|
+
var sidebarMenuButtonVariants = (0, import_class_variance_authority5.cva)(
|
|
4489
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
4490
|
+
{
|
|
4491
|
+
variants: {
|
|
4492
|
+
variant: {
|
|
4493
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
4494
|
+
outline: "bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
|
|
4495
|
+
},
|
|
4496
|
+
size: {
|
|
4497
|
+
default: "h-8 text-sm",
|
|
4498
|
+
sm: "h-7 text-xs",
|
|
4499
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
|
|
4500
|
+
}
|
|
4501
|
+
},
|
|
4502
|
+
defaultVariants: {
|
|
4503
|
+
variant: "default",
|
|
4504
|
+
size: "default"
|
|
4505
|
+
}
|
|
4506
|
+
}
|
|
4507
|
+
);
|
|
4508
|
+
function SidebarMenuButton({
|
|
4509
|
+
asChild = false,
|
|
4510
|
+
isActive = false,
|
|
4511
|
+
variant = "default",
|
|
4512
|
+
size = "default",
|
|
4513
|
+
tooltip,
|
|
4514
|
+
className,
|
|
4515
|
+
children,
|
|
4516
|
+
...props
|
|
4517
|
+
}) {
|
|
4518
|
+
const { isMobile, state } = useSidebar();
|
|
4519
|
+
const cls = cn(sidebarMenuButtonVariants({ variant, size }), className);
|
|
4520
|
+
const button = asChild ? renderAsChild(children, "sidebar-menu-button", cls, {
|
|
4521
|
+
"data-sidebar": "menu-button",
|
|
4522
|
+
"data-size": size,
|
|
4523
|
+
"data-active": isActive,
|
|
4524
|
+
...props
|
|
4525
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4526
|
+
"button",
|
|
4527
|
+
{
|
|
4528
|
+
"data-slot": "sidebar-menu-button",
|
|
4529
|
+
"data-sidebar": "menu-button",
|
|
4530
|
+
"data-size": size,
|
|
4531
|
+
"data-active": isActive,
|
|
4532
|
+
className: cls,
|
|
4533
|
+
...props,
|
|
4534
|
+
children
|
|
4535
|
+
}
|
|
4536
|
+
);
|
|
4537
|
+
if (!tooltip) {
|
|
4538
|
+
return button;
|
|
4539
|
+
}
|
|
4540
|
+
if (typeof tooltip === "string") {
|
|
4541
|
+
tooltip = {
|
|
4542
|
+
children: tooltip
|
|
4543
|
+
};
|
|
4544
|
+
}
|
|
4545
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Tooltip2, { children: [
|
|
4546
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TooltipTrigger, { render: button }),
|
|
4547
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4548
|
+
TooltipContent,
|
|
4549
|
+
{
|
|
4550
|
+
side: "right",
|
|
4551
|
+
align: "center",
|
|
4552
|
+
hidden: state !== "collapsed" || isMobile,
|
|
4553
|
+
...tooltip
|
|
4554
|
+
}
|
|
4555
|
+
)
|
|
4556
|
+
] });
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
// src/components/components/Sidebar/index.tsx
|
|
4560
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
4561
|
+
function useSidebarDrawer() {
|
|
4562
|
+
try {
|
|
4563
|
+
const ctx = useSidebar();
|
|
4564
|
+
return {
|
|
4565
|
+
close: () => ctx.setOpenMobile(false),
|
|
4566
|
+
collapsed: ctx.state === "collapsed"
|
|
4567
|
+
};
|
|
4568
|
+
} catch {
|
|
4569
|
+
return null;
|
|
4570
|
+
}
|
|
4571
|
+
}
|
|
4058
4572
|
function useOptionalRenderer() {
|
|
4059
4573
|
try {
|
|
4060
4574
|
return (0, import_runtime13.useRenderer)();
|
|
@@ -4062,16 +4576,61 @@ function useOptionalRenderer() {
|
|
|
4062
4576
|
return null;
|
|
4063
4577
|
}
|
|
4064
4578
|
}
|
|
4065
|
-
function
|
|
4579
|
+
function SidebarContentSlot({ content }) {
|
|
4066
4580
|
const renderer = useOptionalRenderer();
|
|
4067
4581
|
if (renderer !== null && typeof content === "object" && content !== null && !("$$typeof" in content) && "type" in content) {
|
|
4068
|
-
return /* @__PURE__ */ (0,
|
|
4582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: renderer.renderChildren([content]) });
|
|
4069
4583
|
}
|
|
4070
|
-
return /* @__PURE__ */ (0,
|
|
4584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: content });
|
|
4071
4585
|
}
|
|
4072
4586
|
function isBrandObject(brand) {
|
|
4073
4587
|
return typeof brand === "object" && brand !== null && !("$$typeof" in brand) && "title" in brand;
|
|
4074
4588
|
}
|
|
4589
|
+
function BrandNode({ brand, collapsed }) {
|
|
4590
|
+
if (brand === void 0 || brand === null) {
|
|
4591
|
+
return null;
|
|
4592
|
+
}
|
|
4593
|
+
if (isBrandObject(brand)) {
|
|
4594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
|
|
4595
|
+
brand.logo ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4596
|
+
"img",
|
|
4597
|
+
{
|
|
4598
|
+
"data-slot": "sidebar-brand-logo",
|
|
4599
|
+
src: brand.logo,
|
|
4600
|
+
alt: brand.title,
|
|
4601
|
+
className: "size-6 shrink-0"
|
|
4602
|
+
}
|
|
4603
|
+
) : null,
|
|
4604
|
+
collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "truncate text-sm font-semibold", children: brand.title })
|
|
4605
|
+
] });
|
|
4606
|
+
}
|
|
4607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_jsx_runtime82.Fragment, { children: brand });
|
|
4608
|
+
}
|
|
4609
|
+
function SidebarNavItems({ items }) {
|
|
4610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarMenu, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarNavEntry, { item, depth: 0 }, item.href ?? item.label ?? index)) });
|
|
4611
|
+
}
|
|
4612
|
+
function SidebarNavEntry({ item, depth }) {
|
|
4613
|
+
const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
|
|
4614
|
+
const labelNode = item.label;
|
|
4615
|
+
const button = item.href ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarMenuButton, { asChild: true, tooltip: item.label, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("a", { href: item.href, children: [
|
|
4616
|
+
iconNode,
|
|
4617
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
|
|
4618
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuButton, { tooltip: item.label, children: [
|
|
4619
|
+
iconNode,
|
|
4620
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: labelNode })
|
|
4621
|
+
] });
|
|
4622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarMenuItem, { children: [
|
|
4623
|
+
button,
|
|
4624
|
+
item.children && item.children.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: cn("ml-4"), children: item.children.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4625
|
+
SidebarNavEntry,
|
|
4626
|
+
{
|
|
4627
|
+
item: child,
|
|
4628
|
+
depth: depth + 1
|
|
4629
|
+
},
|
|
4630
|
+
child.href ?? child.label ?? index
|
|
4631
|
+
)) })
|
|
4632
|
+
] });
|
|
4633
|
+
}
|
|
4075
4634
|
function Sidebar({
|
|
4076
4635
|
brand,
|
|
4077
4636
|
items = [],
|
|
@@ -4084,215 +4643,125 @@ function Sidebar({
|
|
|
4084
4643
|
className,
|
|
4085
4644
|
style,
|
|
4086
4645
|
children
|
|
4646
|
+
}) {
|
|
4647
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4648
|
+
SidebarProvider,
|
|
4649
|
+
{
|
|
4650
|
+
defaultOpen: true,
|
|
4651
|
+
className,
|
|
4652
|
+
style,
|
|
4653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4654
|
+
SidebarInner,
|
|
4655
|
+
{
|
|
4656
|
+
brand,
|
|
4657
|
+
items,
|
|
4658
|
+
content,
|
|
4659
|
+
sidebarFooter,
|
|
4660
|
+
collapsible,
|
|
4661
|
+
onCollapse,
|
|
4662
|
+
locationKey,
|
|
4663
|
+
drawer,
|
|
4664
|
+
children
|
|
4665
|
+
}
|
|
4666
|
+
)
|
|
4667
|
+
}
|
|
4668
|
+
);
|
|
4669
|
+
}
|
|
4670
|
+
function SidebarInner({
|
|
4671
|
+
brand,
|
|
4672
|
+
items = [],
|
|
4673
|
+
content,
|
|
4674
|
+
sidebarFooter,
|
|
4675
|
+
collapsible,
|
|
4676
|
+
onCollapse,
|
|
4677
|
+
locationKey,
|
|
4678
|
+
drawer = true,
|
|
4679
|
+
children
|
|
4087
4680
|
}) {
|
|
4088
4681
|
const { t } = (0, import_runtime13.useI18n)();
|
|
4089
|
-
const isMobile =
|
|
4090
|
-
const
|
|
4091
|
-
const
|
|
4682
|
+
const isMobile = useIsMobile();
|
|
4683
|
+
const { state, setOpenMobile, toggleSidebar } = useSidebar();
|
|
4684
|
+
const collapsed = state === "collapsed";
|
|
4685
|
+
const prevCollapsed = (0, import_react17.useRef)(collapsed);
|
|
4686
|
+
(0, import_react17.useEffect)(() => {
|
|
4687
|
+
if (prevCollapsed.current !== collapsed) {
|
|
4688
|
+
prevCollapsed.current = collapsed;
|
|
4689
|
+
onCollapse?.(collapsed);
|
|
4690
|
+
}
|
|
4691
|
+
}, [collapsed, onCollapse]);
|
|
4692
|
+
(0, import_react17.useEffect)(() => {
|
|
4693
|
+
if (locationKey !== void 0) {
|
|
4694
|
+
setOpenMobile(false);
|
|
4695
|
+
}
|
|
4696
|
+
}, [locationKey, setOpenMobile]);
|
|
4092
4697
|
const collapsedEffective = collapsible === true && collapsed && !isMobile;
|
|
4093
|
-
const
|
|
4094
|
-
const
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
};
|
|
4099
|
-
const [trackedLocationKey, setTrackedLocationKey] = (0, import_react16.useState)(locationKey);
|
|
4100
|
-
if (trackedLocationKey !== locationKey) {
|
|
4101
|
-
setTrackedLocationKey(locationKey);
|
|
4102
|
-
setDrawerOpen(false);
|
|
4103
|
-
}
|
|
4104
|
-
(0, import_react16.useEffect)(() => {
|
|
4105
|
-
if (!drawerOpen) {
|
|
4106
|
-
return;
|
|
4107
|
-
}
|
|
4108
|
-
const onKeyDown = (event) => {
|
|
4109
|
-
if (event.key === "Escape") {
|
|
4110
|
-
setDrawerOpen(false);
|
|
4111
|
-
}
|
|
4112
|
-
};
|
|
4113
|
-
window.addEventListener("keydown", onKeyDown);
|
|
4114
|
-
return () => window.removeEventListener("keydown", onKeyDown);
|
|
4115
|
-
}, [drawerOpen]);
|
|
4116
|
-
const brandNode = isBrandObject(brand) ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
|
|
4117
|
-
brand.logo ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4118
|
-
"img",
|
|
4698
|
+
const brandNode = /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(BrandNode, { brand, collapsed: collapsedEffective });
|
|
4699
|
+
const sidebarContent = content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarContentSlot, { content }) : items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarNavItems, { items }) : null;
|
|
4700
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
|
|
4701
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
4702
|
+
SidebarRoot,
|
|
4119
4703
|
{
|
|
4120
|
-
"
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4704
|
+
collapsible: collapsible ? "icon" : "offcanvas",
|
|
4705
|
+
children: [
|
|
4706
|
+
(brand !== void 0 || collapsible) && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
4707
|
+
"div",
|
|
4708
|
+
{
|
|
4709
|
+
"data-slot": "sidebar-brand",
|
|
4710
|
+
className: cn(
|
|
4711
|
+
"flex h-14 shrink-0 items-center gap-2 px-2",
|
|
4712
|
+
collapsedEffective && "justify-center px-0"
|
|
4713
|
+
),
|
|
4714
|
+
children: [
|
|
4715
|
+
collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
|
|
4716
|
+
collapsible && !isMobile && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4717
|
+
"button",
|
|
4718
|
+
{
|
|
4719
|
+
type: "button",
|
|
4720
|
+
"data-slot": "sidebar-collapse-trigger",
|
|
4721
|
+
"aria-label": collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
|
|
4722
|
+
"aria-expanded": !collapsedEffective,
|
|
4723
|
+
className: "flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
|
|
4724
|
+
onClick: toggleSidebar,
|
|
4725
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: collapsedEffective ? "chevron-right" : "chevron-left", size: 16 })
|
|
4726
|
+
}
|
|
4727
|
+
)
|
|
4728
|
+
]
|
|
4729
|
+
}
|
|
4730
|
+
) }),
|
|
4731
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarContent, { children: sidebarContent }),
|
|
4732
|
+
sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarFooter, { children: sidebarFooter })
|
|
4733
|
+
]
|
|
4124
4734
|
}
|
|
4125
|
-
)
|
|
4126
|
-
|
|
4127
|
-
|
|
4128
|
-
const collapseTrigger = collapsible && !isMobile ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4129
|
-
"button",
|
|
4130
|
-
{
|
|
4131
|
-
type: "button",
|
|
4132
|
-
"data-slot": "sidebar-collapse-trigger",
|
|
4133
|
-
"aria-label": collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
|
|
4134
|
-
"aria-expanded": !collapsedEffective,
|
|
4135
|
-
title: collapsedEffective ? t("pactor.layout.expandSidebar") : t("pactor.layout.collapseSidebar"),
|
|
4136
|
-
className: cn(
|
|
4137
|
-
"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"
|
|
4138
|
-
),
|
|
4139
|
-
onClick: toggleCollapsed,
|
|
4140
|
-
children: collapsedEffective ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react17.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react17.ChevronLeft, { "aria-hidden": true, className: "size-4" })
|
|
4141
|
-
}
|
|
4142
|
-
) : null;
|
|
4143
|
-
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4144
|
-
SidebarDrawerContext.Provider,
|
|
4145
|
-
{
|
|
4146
|
-
value: { close, collapsed: collapsedEffective },
|
|
4147
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
4735
|
+
),
|
|
4736
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(SidebarInset, { children: [
|
|
4737
|
+
drawer && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
4148
4738
|
"div",
|
|
4149
4739
|
{
|
|
4150
|
-
"data-slot": "sidebar-
|
|
4151
|
-
className:
|
|
4152
|
-
style,
|
|
4740
|
+
"data-slot": "sidebar-topbar",
|
|
4741
|
+
className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
|
|
4153
4742
|
children: [
|
|
4154
|
-
|
|
4155
|
-
"
|
|
4743
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4744
|
+
"button",
|
|
4156
4745
|
{
|
|
4157
|
-
|
|
4158
|
-
"
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
/* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
4164
|
-
"aside",
|
|
4165
|
-
{
|
|
4166
|
-
"data-slot": "sidebar",
|
|
4167
|
-
"data-collapsed": collapsedEffective || void 0,
|
|
4168
|
-
"data-open": drawerOpen ? "true" : "false",
|
|
4169
|
-
inert: drawer && isMobile && !drawerOpen ? true : void 0,
|
|
4170
|
-
className: cn(
|
|
4171
|
-
"flex shrink-0 flex-col border-r border-sidebar-border bg-sidebar text-sidebar-foreground transition-[width,transform]",
|
|
4172
|
-
collapsedEffective ? "w-16" : "w-60",
|
|
4173
|
-
// 移动端覆盖抽屉:退出文档流,关闭时移出屏幕
|
|
4174
|
-
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"
|
|
4175
|
-
),
|
|
4176
|
-
children: [
|
|
4177
|
-
brand !== void 0 || collapseTrigger !== null ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
4178
|
-
"div",
|
|
4179
|
-
{
|
|
4180
|
-
"data-slot": "sidebar-brand",
|
|
4181
|
-
className: cn(
|
|
4182
|
-
"flex h-14 shrink-0 items-center gap-2 border-b border-sidebar-border px-4",
|
|
4183
|
-
// 移动端品牌维持顶栏现状:抽屉内不重复渲染品牌行
|
|
4184
|
-
"max-md:hidden",
|
|
4185
|
-
collapsedEffective && "justify-center px-2"
|
|
4186
|
-
),
|
|
4187
|
-
children: [
|
|
4188
|
-
collapsedEffective ? null : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: brandNode }),
|
|
4189
|
-
collapseTrigger
|
|
4190
|
-
]
|
|
4191
|
-
}
|
|
4192
|
-
) : null,
|
|
4193
|
-
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4194
|
-
"nav",
|
|
4195
|
-
{
|
|
4196
|
-
"data-slot": "sidebar-nav",
|
|
4197
|
-
className: "min-h-0 flex-1 overflow-auto p-2",
|
|
4198
|
-
children: content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SidebarContent, { content }) : items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4199
|
-
SidebarEntry,
|
|
4200
|
-
{
|
|
4201
|
-
item,
|
|
4202
|
-
depth: 0,
|
|
4203
|
-
collapsed: collapsedEffective
|
|
4204
|
-
},
|
|
4205
|
-
item.href ?? item.label ?? index
|
|
4206
|
-
))
|
|
4207
|
-
}
|
|
4208
|
-
),
|
|
4209
|
-
sidebarFooter !== void 0 && sidebarFooter !== null && !collapsedEffective ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4210
|
-
"div",
|
|
4211
|
-
{
|
|
4212
|
-
"data-slot": "sidebar-footer",
|
|
4213
|
-
className: "shrink-0 border-t border-sidebar-border p-2",
|
|
4214
|
-
children: sidebarFooter
|
|
4215
|
-
}
|
|
4216
|
-
) : null
|
|
4217
|
-
]
|
|
4746
|
+
type: "button",
|
|
4747
|
+
"data-slot": "sidebar-menu-trigger",
|
|
4748
|
+
"aria-label": t("pactor.layout.openNavigation"),
|
|
4749
|
+
className: "flex size-8 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
|
|
4750
|
+
onClick: toggleSidebar,
|
|
4751
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Icon, { name: "menu", size: 18 })
|
|
4218
4752
|
}
|
|
4219
4753
|
),
|
|
4220
|
-
|
|
4221
|
-
drawer ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
4222
|
-
"div",
|
|
4223
|
-
{
|
|
4224
|
-
"data-slot": "sidebar-topbar",
|
|
4225
|
-
className: "flex h-14 items-center gap-2 border-b border-sidebar-border bg-sidebar px-3 md:hidden",
|
|
4226
|
-
children: [
|
|
4227
|
-
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4228
|
-
"button",
|
|
4229
|
-
{
|
|
4230
|
-
type: "button",
|
|
4231
|
-
"data-slot": "sidebar-menu-trigger",
|
|
4232
|
-
"aria-label": t("pactor.layout.openNavigation"),
|
|
4233
|
-
"aria-expanded": drawerOpen,
|
|
4234
|
-
className: "flex size-8 items-center justify-center rounded-md text-sidebar-foreground/60 transition-colors hover:bg-sidebar-accent hover:text-sidebar-foreground",
|
|
4235
|
-
onClick: () => setDrawerOpen(true),
|
|
4236
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: "menu", size: 18 })
|
|
4237
|
-
}
|
|
4238
|
-
),
|
|
4239
|
-
brandNode
|
|
4240
|
-
]
|
|
4241
|
-
}
|
|
4242
|
-
) : null,
|
|
4243
|
-
children
|
|
4244
|
-
] })
|
|
4754
|
+
brandNode
|
|
4245
4755
|
]
|
|
4246
4756
|
}
|
|
4247
|
-
)
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
}
|
|
4251
|
-
function SidebarEntry({
|
|
4252
|
-
item,
|
|
4253
|
-
depth,
|
|
4254
|
-
collapsed
|
|
4255
|
-
}) {
|
|
4256
|
-
const entryClass = cn(
|
|
4257
|
-
"flex w-full items-center gap-2 rounded-md px-3 py-2 text-left text-sm transition-colors",
|
|
4258
|
-
"text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
4259
|
-
collapsed && "justify-center px-0"
|
|
4260
|
-
);
|
|
4261
|
-
const indentStyle = !collapsed && depth > 0 ? { paddingLeft: 12 + depth * 16 } : void 0;
|
|
4262
|
-
const labelNode = collapsed ? null : item.label;
|
|
4263
|
-
const iconNode = item.icon ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Icon, { name: item.icon, size: "sm" }) : null;
|
|
4264
|
-
const entry = item.href ? /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
4265
|
-
"a",
|
|
4266
|
-
{
|
|
4267
|
-
"data-slot": "sidebar-item",
|
|
4268
|
-
href: item.href,
|
|
4269
|
-
className: entryClass,
|
|
4270
|
-
style: indentStyle,
|
|
4271
|
-
children: [
|
|
4272
|
-
iconNode,
|
|
4273
|
-
labelNode
|
|
4274
|
-
]
|
|
4275
|
-
}
|
|
4276
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("span", { "data-slot": "sidebar-item", className: entryClass, style: indentStyle, children: [
|
|
4277
|
-
iconNode,
|
|
4278
|
-
labelNode
|
|
4279
|
-
] });
|
|
4280
|
-
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { "data-slot": "sidebar-entry", children: [
|
|
4281
|
-
collapsed ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(RailTooltip, { label: item.label, children: entry }) : entry,
|
|
4282
|
-
item.children?.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
4283
|
-
SidebarEntry,
|
|
4284
|
-
{
|
|
4285
|
-
item: child,
|
|
4286
|
-
depth: depth + 1,
|
|
4287
|
-
collapsed
|
|
4288
|
-
},
|
|
4289
|
-
child.href ?? child.label ?? index
|
|
4290
|
-
))
|
|
4757
|
+
),
|
|
4758
|
+
children
|
|
4759
|
+
] })
|
|
4291
4760
|
] });
|
|
4292
4761
|
}
|
|
4293
4762
|
|
|
4294
4763
|
// src/components/components/Menu/index.tsx
|
|
4295
|
-
var
|
|
4764
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
4296
4765
|
function Menu2({
|
|
4297
4766
|
items = [],
|
|
4298
4767
|
mode = "inline",
|
|
@@ -4304,7 +4773,7 @@ function Menu2({
|
|
|
4304
4773
|
const drawer = useSidebarDrawer();
|
|
4305
4774
|
const collapsed = mode === "inline" && drawer?.collapsed === true;
|
|
4306
4775
|
let previousGroup;
|
|
4307
|
-
return /* @__PURE__ */ (0,
|
|
4776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4308
4777
|
"nav",
|
|
4309
4778
|
{
|
|
4310
4779
|
"data-slot": "menu",
|
|
@@ -4321,8 +4790,8 @@ function Menu2({
|
|
|
4321
4790
|
groupLabel = item.group;
|
|
4322
4791
|
}
|
|
4323
4792
|
previousGroup = item.group;
|
|
4324
|
-
return /* @__PURE__ */ (0,
|
|
4325
|
-
groupLabel !== void 0 && /* @__PURE__ */ (0,
|
|
4793
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { "data-slot": "menu-group-entry", children: [
|
|
4794
|
+
groupLabel !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4326
4795
|
"div",
|
|
4327
4796
|
{
|
|
4328
4797
|
"data-slot": "menu-group",
|
|
@@ -4330,7 +4799,7 @@ function Menu2({
|
|
|
4330
4799
|
children: groupLabel
|
|
4331
4800
|
}
|
|
4332
4801
|
),
|
|
4333
|
-
/* @__PURE__ */ (0,
|
|
4802
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4334
4803
|
MenuEntry,
|
|
4335
4804
|
{
|
|
4336
4805
|
item,
|
|
@@ -4355,7 +4824,7 @@ function MenuEntry({
|
|
|
4355
4824
|
collapsed = false
|
|
4356
4825
|
}) {
|
|
4357
4826
|
const selected = item.key === selectedKey;
|
|
4358
|
-
const button = /* @__PURE__ */ (0,
|
|
4827
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
|
|
4359
4828
|
"button",
|
|
4360
4829
|
{
|
|
4361
4830
|
type: "button",
|
|
@@ -4366,7 +4835,7 @@ function MenuEntry({
|
|
|
4366
4835
|
"flex w-full items-center gap-2 rounded-md text-sm transition-colors",
|
|
4367
4836
|
mode === "horizontal" ? "px-3 py-2" : "px-3 py-2 text-left",
|
|
4368
4837
|
collapsed && "justify-center px-0",
|
|
4369
|
-
selected ? "bg-
|
|
4838
|
+
selected ? "bg-(--menu-active-background) font-medium text-(--menu-active-foreground)" : "cursor-pointer text-muted-foreground hover:bg-(--menu-hover-background)/50 hover:text-foreground",
|
|
4370
4839
|
item.disabled && "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-muted-foreground"
|
|
4371
4840
|
),
|
|
4372
4841
|
style: mode === "inline" && depth > 0 && !collapsed ? { paddingLeft: 12 + depth * 16 } : void 0,
|
|
@@ -4376,10 +4845,10 @@ function MenuEntry({
|
|
|
4376
4845
|
}
|
|
4377
4846
|
},
|
|
4378
4847
|
children: [
|
|
4379
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
4380
|
-
collapsed ? null : /* @__PURE__ */ (0,
|
|
4381
|
-
item.dot && !collapsed ? /* @__PURE__ */ (0,
|
|
4382
|
-
item.badge !== void 0 && !collapsed ? /* @__PURE__ */ (0,
|
|
4848
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
4849
|
+
collapsed ? null : /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: item.label }),
|
|
4850
|
+
item.dot && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { "data-slot": "menu-item-dot", className: "size-1.5 shrink-0 rounded-full bg-destructive" }) : null,
|
|
4851
|
+
item.badge !== void 0 && !collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4383
4852
|
"span",
|
|
4384
4853
|
{
|
|
4385
4854
|
"data-slot": "menu-item-badge",
|
|
@@ -4390,9 +4859,9 @@ function MenuEntry({
|
|
|
4390
4859
|
]
|
|
4391
4860
|
}
|
|
4392
4861
|
);
|
|
4393
|
-
return /* @__PURE__ */ (0,
|
|
4394
|
-
collapsed ? /* @__PURE__ */ (0,
|
|
4395
|
-
item.children?.map((child) => /* @__PURE__ */ (0,
|
|
4862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { "data-slot": "menu-entry", "data-key": item.key, children: [
|
|
4863
|
+
collapsed ? /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(RailTooltip, { label: item.label, children: button }) : button,
|
|
4864
|
+
item.children?.map((child) => /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4396
4865
|
MenuEntry,
|
|
4397
4866
|
{
|
|
4398
4867
|
item: child,
|
|
@@ -4410,17 +4879,17 @@ function MenuEntry({
|
|
|
4410
4879
|
// src/ui/menubar.tsx
|
|
4411
4880
|
var import_menu2 = require("@base-ui/react/menu");
|
|
4412
4881
|
var import_menubar = require("@base-ui/react/menubar");
|
|
4413
|
-
var
|
|
4882
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
4414
4883
|
function Menubar({
|
|
4415
4884
|
className,
|
|
4416
4885
|
...props
|
|
4417
4886
|
}) {
|
|
4418
|
-
return /* @__PURE__ */ (0,
|
|
4887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4419
4888
|
import_menubar.Menubar,
|
|
4420
4889
|
{
|
|
4421
4890
|
"data-slot": "menubar",
|
|
4422
4891
|
className: cn(
|
|
4423
|
-
"flex h-9 items-center gap-1 rounded-md border border-border bg-
|
|
4892
|
+
"flex h-9 items-center gap-1 rounded-md border border-border bg-card p-1 shadow-xs",
|
|
4424
4893
|
className
|
|
4425
4894
|
),
|
|
4426
4895
|
...props
|
|
@@ -4430,18 +4899,18 @@ function Menubar({
|
|
|
4430
4899
|
function MenubarMenu({
|
|
4431
4900
|
...props
|
|
4432
4901
|
}) {
|
|
4433
|
-
return /* @__PURE__ */ (0,
|
|
4902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
|
|
4434
4903
|
}
|
|
4435
4904
|
function MenubarTrigger({
|
|
4436
4905
|
className,
|
|
4437
4906
|
...props
|
|
4438
4907
|
}) {
|
|
4439
|
-
return /* @__PURE__ */ (0,
|
|
4908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4440
4909
|
import_menu2.Menu.Trigger,
|
|
4441
4910
|
{
|
|
4442
4911
|
"data-slot": "menubar-trigger",
|
|
4443
4912
|
className: cn(
|
|
4444
|
-
"flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-
|
|
4913
|
+
"flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground)",
|
|
4445
4914
|
className
|
|
4446
4915
|
),
|
|
4447
4916
|
...props
|
|
@@ -4455,19 +4924,19 @@ function MenubarContent({
|
|
|
4455
4924
|
sideOffset = 8,
|
|
4456
4925
|
...props
|
|
4457
4926
|
}) {
|
|
4458
|
-
return /* @__PURE__ */ (0,
|
|
4927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4459
4928
|
import_menu2.Menu.Positioner,
|
|
4460
4929
|
{
|
|
4461
4930
|
align,
|
|
4462
4931
|
side,
|
|
4463
4932
|
sideOffset,
|
|
4464
4933
|
className: "isolate z-50",
|
|
4465
|
-
children: /* @__PURE__ */ (0,
|
|
4934
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4466
4935
|
import_menu2.Menu.Popup,
|
|
4467
4936
|
{
|
|
4468
4937
|
"data-slot": "menubar-content",
|
|
4469
4938
|
className: cn(
|
|
4470
|
-
"z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
4939
|
+
"z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
4471
4940
|
className
|
|
4472
4941
|
),
|
|
4473
4942
|
...props
|
|
@@ -4481,13 +4950,13 @@ function MenubarItem({
|
|
|
4481
4950
|
variant = "default",
|
|
4482
4951
|
...props
|
|
4483
4952
|
}) {
|
|
4484
|
-
return /* @__PURE__ */ (0,
|
|
4953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4485
4954
|
import_menu2.Menu.Item,
|
|
4486
4955
|
{
|
|
4487
4956
|
"data-slot": "menubar-item",
|
|
4488
4957
|
"data-variant": variant,
|
|
4489
4958
|
className: cn(
|
|
4490
|
-
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-
|
|
4959
|
+
"relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4491
4960
|
className
|
|
4492
4961
|
),
|
|
4493
4962
|
...props
|
|
@@ -4496,17 +4965,17 @@ function MenubarItem({
|
|
|
4496
4965
|
}
|
|
4497
4966
|
|
|
4498
4967
|
// src/components/components/Menubar/index.tsx
|
|
4499
|
-
var
|
|
4968
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
4500
4969
|
function Menubar2({ menus = [], onSelect, className, style }) {
|
|
4501
|
-
return /* @__PURE__ */ (0,
|
|
4502
|
-
/* @__PURE__ */ (0,
|
|
4503
|
-
/* @__PURE__ */ (0,
|
|
4970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Menubar, { className, style, children: menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(MenubarMenu, { children: [
|
|
4971
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MenubarTrigger, { children: menu.label }),
|
|
4972
|
+
/* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MenubarContent, { children: menu.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
|
|
4504
4973
|
MenubarItem,
|
|
4505
4974
|
{
|
|
4506
4975
|
disabled: item.disabled,
|
|
4507
4976
|
onClick: () => onSelect?.(item.value),
|
|
4508
4977
|
children: [
|
|
4509
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
4978
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
4510
4979
|
item.label
|
|
4511
4980
|
]
|
|
4512
4981
|
},
|
|
@@ -4517,15 +4986,15 @@ function Menubar2({ menus = [], onSelect, className, style }) {
|
|
|
4517
4986
|
|
|
4518
4987
|
// src/ui/navigation-menu.tsx
|
|
4519
4988
|
var import_navigation_menu = require("@base-ui/react/navigation-menu");
|
|
4520
|
-
var
|
|
4521
|
-
var
|
|
4522
|
-
var
|
|
4989
|
+
var import_lucide_react19 = require("lucide-react");
|
|
4990
|
+
var import_class_variance_authority6 = require("class-variance-authority");
|
|
4991
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
4523
4992
|
function NavigationMenu({
|
|
4524
4993
|
className,
|
|
4525
4994
|
children,
|
|
4526
4995
|
...props
|
|
4527
4996
|
}) {
|
|
4528
|
-
return /* @__PURE__ */ (0,
|
|
4997
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
4529
4998
|
import_navigation_menu.NavigationMenu.Root,
|
|
4530
4999
|
{
|
|
4531
5000
|
"data-slot": "navigation-menu",
|
|
@@ -4533,7 +5002,7 @@ function NavigationMenu({
|
|
|
4533
5002
|
...props,
|
|
4534
5003
|
children: [
|
|
4535
5004
|
children,
|
|
4536
|
-
/* @__PURE__ */ (0,
|
|
5005
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(NavigationMenuViewport, {})
|
|
4537
5006
|
]
|
|
4538
5007
|
}
|
|
4539
5008
|
);
|
|
@@ -4542,7 +5011,7 @@ function NavigationMenuList({
|
|
|
4542
5011
|
className,
|
|
4543
5012
|
...props
|
|
4544
5013
|
}) {
|
|
4545
|
-
return /* @__PURE__ */ (0,
|
|
5014
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4546
5015
|
import_navigation_menu.NavigationMenu.List,
|
|
4547
5016
|
{
|
|
4548
5017
|
"data-slot": "navigation-menu-list",
|
|
@@ -4555,7 +5024,7 @@ function NavigationMenuItem({
|
|
|
4555
5024
|
className,
|
|
4556
5025
|
...props
|
|
4557
5026
|
}) {
|
|
4558
|
-
return /* @__PURE__ */ (0,
|
|
5027
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4559
5028
|
import_navigation_menu.NavigationMenu.Item,
|
|
4560
5029
|
{
|
|
4561
5030
|
"data-slot": "navigation-menu-item",
|
|
@@ -4564,15 +5033,15 @@ function NavigationMenuItem({
|
|
|
4564
5033
|
}
|
|
4565
5034
|
);
|
|
4566
5035
|
}
|
|
4567
|
-
var navigationMenuTriggerStyle = (0,
|
|
4568
|
-
"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-
|
|
5036
|
+
var navigationMenuTriggerStyle = (0, import_class_variance_authority6.cva)(
|
|
5037
|
+
"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-open:bg-(--menu-active-background)/50 data-open:text-(--menu-active-foreground)"
|
|
4569
5038
|
);
|
|
4570
5039
|
function NavigationMenuTrigger({
|
|
4571
5040
|
className,
|
|
4572
5041
|
children,
|
|
4573
5042
|
...props
|
|
4574
5043
|
}) {
|
|
4575
|
-
return /* @__PURE__ */ (0,
|
|
5044
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
4576
5045
|
import_navigation_menu.NavigationMenu.Trigger,
|
|
4577
5046
|
{
|
|
4578
5047
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -4580,8 +5049,8 @@ function NavigationMenuTrigger({
|
|
|
4580
5049
|
...props,
|
|
4581
5050
|
children: [
|
|
4582
5051
|
children,
|
|
4583
|
-
/* @__PURE__ */ (0,
|
|
4584
|
-
|
|
5052
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
5053
|
+
import_lucide_react19.ChevronDownIcon,
|
|
4585
5054
|
{
|
|
4586
5055
|
className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
|
|
4587
5056
|
"aria-hidden": "true"
|
|
@@ -4595,7 +5064,7 @@ function NavigationMenuContent({
|
|
|
4595
5064
|
className,
|
|
4596
5065
|
...props
|
|
4597
5066
|
}) {
|
|
4598
|
-
return /* @__PURE__ */ (0,
|
|
5067
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4599
5068
|
import_navigation_menu.NavigationMenu.Content,
|
|
4600
5069
|
{
|
|
4601
5070
|
"data-slot": "navigation-menu-content",
|
|
@@ -4608,21 +5077,21 @@ function NavigationMenuContent({
|
|
|
4608
5077
|
);
|
|
4609
5078
|
}
|
|
4610
5079
|
function NavigationMenuViewport({ className }) {
|
|
4611
|
-
return /* @__PURE__ */ (0,
|
|
5080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4612
5081
|
import_navigation_menu.NavigationMenu.Positioner,
|
|
4613
5082
|
{
|
|
4614
5083
|
side: "bottom",
|
|
4615
5084
|
align: "start",
|
|
4616
5085
|
className: "isolate z-50",
|
|
4617
|
-
children: /* @__PURE__ */ (0,
|
|
5086
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4618
5087
|
import_navigation_menu.NavigationMenu.Popup,
|
|
4619
5088
|
{
|
|
4620
5089
|
"data-slot": "navigation-menu-popup",
|
|
4621
5090
|
className: cn(
|
|
4622
|
-
"origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
5091
|
+
"origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
4623
5092
|
className
|
|
4624
5093
|
),
|
|
4625
|
-
children: /* @__PURE__ */ (0,
|
|
5094
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
|
|
4626
5095
|
}
|
|
4627
5096
|
)
|
|
4628
5097
|
}
|
|
@@ -4632,12 +5101,12 @@ function NavigationMenuLink({
|
|
|
4632
5101
|
className,
|
|
4633
5102
|
...props
|
|
4634
5103
|
}) {
|
|
4635
|
-
return /* @__PURE__ */ (0,
|
|
5104
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4636
5105
|
import_navigation_menu.NavigationMenu.Link,
|
|
4637
5106
|
{
|
|
4638
5107
|
"data-slot": "navigation-menu-link",
|
|
4639
5108
|
className: cn(
|
|
4640
|
-
"flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-
|
|
5109
|
+
"flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 data-active:bg-(--menu-active-background)/50 data-active:text-(--menu-active-foreground) [&_svg:not([class*='size-'])]:size-4",
|
|
4641
5110
|
className
|
|
4642
5111
|
),
|
|
4643
5112
|
...props
|
|
@@ -4646,33 +5115,33 @@ function NavigationMenuLink({
|
|
|
4646
5115
|
}
|
|
4647
5116
|
|
|
4648
5117
|
// src/components/components/NavigationMenu/index.tsx
|
|
4649
|
-
var
|
|
5118
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
4650
5119
|
function NavigationMenu2({ items = [], className, style }) {
|
|
4651
|
-
return /* @__PURE__ */ (0,
|
|
4652
|
-
/* @__PURE__ */ (0,
|
|
5120
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenu, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuList, { children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuItem, { value: `item-${index}`, children: item.children && item.children.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(import_jsx_runtime87.Fragment, { children: [
|
|
5121
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
4653
5122
|
NavigationMenuTrigger,
|
|
4654
5123
|
{
|
|
4655
5124
|
className: item.icon !== void 0 ? "gap-2" : void 0,
|
|
4656
5125
|
children: [
|
|
4657
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
5126
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
4658
5127
|
item.label
|
|
4659
5128
|
]
|
|
4660
5129
|
}
|
|
4661
5130
|
),
|
|
4662
|
-
/* @__PURE__ */ (0,
|
|
4663
|
-
/* @__PURE__ */ (0,
|
|
5131
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(NavigationMenuContent, { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("ul", { className: "grid w-64 gap-1", children: item.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(NavigationMenuLink, { href: child.href, children: [
|
|
5132
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
4664
5133
|
"span",
|
|
4665
5134
|
{
|
|
4666
5135
|
className: child.icon !== void 0 ? "flex items-center gap-2 font-medium" : "font-medium",
|
|
4667
5136
|
children: [
|
|
4668
|
-
child.icon ? /* @__PURE__ */ (0,
|
|
5137
|
+
child.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: child.icon, size: "sm" }) : null,
|
|
4669
5138
|
child.label
|
|
4670
5139
|
]
|
|
4671
5140
|
}
|
|
4672
5141
|
),
|
|
4673
|
-
child.description ? /* @__PURE__ */ (0,
|
|
5142
|
+
child.description ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-muted-foreground", children: child.description }) : null
|
|
4674
5143
|
] }) }, child.href)) }) })
|
|
4675
|
-
] }) : /* @__PURE__ */ (0,
|
|
5144
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
4676
5145
|
NavigationMenuLink,
|
|
4677
5146
|
{
|
|
4678
5147
|
href: item.href,
|
|
@@ -4681,7 +5150,7 @@ function NavigationMenu2({ items = [], className, style }) {
|
|
|
4681
5150
|
item.icon !== void 0 && "gap-2"
|
|
4682
5151
|
),
|
|
4683
5152
|
children: [
|
|
4684
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
5153
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Icon, { name: item.icon, size: "sm" }) : null,
|
|
4685
5154
|
item.label
|
|
4686
5155
|
]
|
|
4687
5156
|
}
|
|
@@ -4689,22 +5158,22 @@ function NavigationMenu2({ items = [], className, style }) {
|
|
|
4689
5158
|
}
|
|
4690
5159
|
|
|
4691
5160
|
// src/components/components/Page/index.tsx
|
|
4692
|
-
var
|
|
5161
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
4693
5162
|
function Page({ title, className, style, children }) {
|
|
4694
|
-
return /* @__PURE__ */ (0,
|
|
4695
|
-
title ? /* @__PURE__ */ (0,
|
|
4696
|
-
/* @__PURE__ */ (0,
|
|
5163
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { "data-slot": "page", className: cn("p-6", className), style, children: [
|
|
5164
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("h2", { "data-slot": "page-title", className: "mb-5 text-xl font-semibold", children: title }) : null,
|
|
5165
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { "data-slot": "page-content", className: "space-y-5", children })
|
|
4697
5166
|
] });
|
|
4698
5167
|
}
|
|
4699
5168
|
|
|
4700
5169
|
// src/components/components/Pagination/index.tsx
|
|
4701
|
-
var
|
|
5170
|
+
var import_react18 = require("react");
|
|
4702
5171
|
|
|
4703
5172
|
// src/ui/pagination.tsx
|
|
4704
|
-
var
|
|
4705
|
-
var
|
|
5173
|
+
var import_lucide_react20 = require("lucide-react");
|
|
5174
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
4706
5175
|
function Pagination({ className, ...props }) {
|
|
4707
|
-
return /* @__PURE__ */ (0,
|
|
5176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
4708
5177
|
"nav",
|
|
4709
5178
|
{
|
|
4710
5179
|
role: "navigation",
|
|
@@ -4716,7 +5185,7 @@ function Pagination({ className, ...props }) {
|
|
|
4716
5185
|
);
|
|
4717
5186
|
}
|
|
4718
5187
|
function PaginationContent({ className, ...props }) {
|
|
4719
|
-
return /* @__PURE__ */ (0,
|
|
5188
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
4720
5189
|
"ul",
|
|
4721
5190
|
{
|
|
4722
5191
|
"data-slot": "pagination-content",
|
|
@@ -4726,7 +5195,7 @@ function PaginationContent({ className, ...props }) {
|
|
|
4726
5195
|
);
|
|
4727
5196
|
}
|
|
4728
5197
|
function PaginationItem({ ...props }) {
|
|
4729
|
-
return /* @__PURE__ */ (0,
|
|
5198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("li", { "data-slot": "pagination-item", ...props });
|
|
4730
5199
|
}
|
|
4731
5200
|
function PaginationLink({
|
|
4732
5201
|
className,
|
|
@@ -4734,7 +5203,7 @@ function PaginationLink({
|
|
|
4734
5203
|
disabled,
|
|
4735
5204
|
...props
|
|
4736
5205
|
}) {
|
|
4737
|
-
return /* @__PURE__ */ (0,
|
|
5206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
4738
5207
|
"a",
|
|
4739
5208
|
{
|
|
4740
5209
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -4746,6 +5215,7 @@ function PaginationLink({
|
|
|
4746
5215
|
buttonVariants({
|
|
4747
5216
|
variant: isActive ? "outline" : "ghost"
|
|
4748
5217
|
}),
|
|
5218
|
+
isActive && "border-(color:--pagination-active-border) bg-(--pagination-active-background) rounded-(--pagination-active-radius)",
|
|
4749
5219
|
disabled && "pointer-events-none opacity-50",
|
|
4750
5220
|
className
|
|
4751
5221
|
),
|
|
@@ -4757,15 +5227,15 @@ function PaginationPrevious({
|
|
|
4757
5227
|
className,
|
|
4758
5228
|
...props
|
|
4759
5229
|
}) {
|
|
4760
|
-
return /* @__PURE__ */ (0,
|
|
5230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
4761
5231
|
PaginationLink,
|
|
4762
5232
|
{
|
|
4763
5233
|
"aria-label": "Go to previous page",
|
|
4764
5234
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
4765
5235
|
...props,
|
|
4766
5236
|
children: [
|
|
4767
|
-
/* @__PURE__ */ (0,
|
|
4768
|
-
/* @__PURE__ */ (0,
|
|
5237
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.ChevronLeftIcon, {}),
|
|
5238
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "hidden sm:block", children: "Previous" })
|
|
4769
5239
|
]
|
|
4770
5240
|
}
|
|
4771
5241
|
);
|
|
@@ -4774,21 +5244,21 @@ function PaginationNext({
|
|
|
4774
5244
|
className,
|
|
4775
5245
|
...props
|
|
4776
5246
|
}) {
|
|
4777
|
-
return /* @__PURE__ */ (0,
|
|
5247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
4778
5248
|
PaginationLink,
|
|
4779
5249
|
{
|
|
4780
5250
|
"aria-label": "Go to next page",
|
|
4781
5251
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
4782
5252
|
...props,
|
|
4783
5253
|
children: [
|
|
4784
|
-
/* @__PURE__ */ (0,
|
|
4785
|
-
/* @__PURE__ */ (0,
|
|
5254
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "hidden sm:block", children: "Next" }),
|
|
5255
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.ChevronRightIcon, {})
|
|
4786
5256
|
]
|
|
4787
5257
|
}
|
|
4788
5258
|
);
|
|
4789
5259
|
}
|
|
4790
5260
|
function PaginationEllipsis({ className, ...props }) {
|
|
4791
|
-
return /* @__PURE__ */ (0,
|
|
5261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
|
|
4792
5262
|
"span",
|
|
4793
5263
|
{
|
|
4794
5264
|
"aria-hidden": true,
|
|
@@ -4796,15 +5266,15 @@ function PaginationEllipsis({ className, ...props }) {
|
|
|
4796
5266
|
className: cn("flex size-9 items-center justify-center", className),
|
|
4797
5267
|
...props,
|
|
4798
5268
|
children: [
|
|
4799
|
-
/* @__PURE__ */ (0,
|
|
4800
|
-
/* @__PURE__ */ (0,
|
|
5269
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react20.MoreHorizontalIcon, { className: "size-4" }),
|
|
5270
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
4801
5271
|
]
|
|
4802
5272
|
}
|
|
4803
5273
|
);
|
|
4804
5274
|
}
|
|
4805
5275
|
|
|
4806
5276
|
// src/components/components/Pagination/index.tsx
|
|
4807
|
-
var
|
|
5277
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
4808
5278
|
function pageItems(current, count) {
|
|
4809
5279
|
if (count <= 7) {
|
|
4810
5280
|
return Array.from({ length: count }, (_, i) => i + 1);
|
|
@@ -4825,7 +5295,7 @@ function Pagination2({
|
|
|
4825
5295
|
className,
|
|
4826
5296
|
style
|
|
4827
5297
|
}) {
|
|
4828
|
-
const [innerPage, setInnerPage] = (0,
|
|
5298
|
+
const [innerPage, setInnerPage] = (0, import_react18.useState)(1);
|
|
4829
5299
|
const pageCount = Math.max(1, Math.ceil(total / Math.max(1, pageSize)));
|
|
4830
5300
|
const current = Math.min(Math.max(1, page ?? innerPage), pageCount);
|
|
4831
5301
|
const goTo = (next) => {
|
|
@@ -4838,8 +5308,8 @@ function Pagination2({
|
|
|
4838
5308
|
}
|
|
4839
5309
|
onChange?.(target);
|
|
4840
5310
|
};
|
|
4841
|
-
return /* @__PURE__ */ (0,
|
|
4842
|
-
/* @__PURE__ */ (0,
|
|
5311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Pagination, { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(PaginationContent, { children: [
|
|
5312
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
4843
5313
|
PaginationPrevious,
|
|
4844
5314
|
{
|
|
4845
5315
|
href: "#",
|
|
@@ -4850,7 +5320,7 @@ function Pagination2({
|
|
|
4850
5320
|
}
|
|
4851
5321
|
}
|
|
4852
5322
|
) }),
|
|
4853
|
-
pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0,
|
|
5323
|
+
pageItems(current, pageCount).map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: item === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
4854
5324
|
PaginationLink,
|
|
4855
5325
|
{
|
|
4856
5326
|
href: "#",
|
|
@@ -4862,7 +5332,7 @@ function Pagination2({
|
|
|
4862
5332
|
children: item
|
|
4863
5333
|
}
|
|
4864
5334
|
) }, item === "ellipsis" ? `ellipsis-${index}` : item)),
|
|
4865
|
-
/* @__PURE__ */ (0,
|
|
5335
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
4866
5336
|
PaginationNext,
|
|
4867
5337
|
{
|
|
4868
5338
|
href: "#",
|
|
@@ -4878,14 +5348,14 @@ function Pagination2({
|
|
|
4878
5348
|
|
|
4879
5349
|
// src/components/components/Popover/index.tsx
|
|
4880
5350
|
var import_runtime14 = require("@pactor-app/runtime");
|
|
4881
|
-
var
|
|
5351
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
4882
5352
|
function isDslNode3(value) {
|
|
4883
5353
|
return typeof value === "object" && value !== null && typeof value.type === "string";
|
|
4884
5354
|
}
|
|
4885
5355
|
function Popover2({ content, children, className, style }) {
|
|
4886
5356
|
const { renderChildren } = (0, import_runtime14.useRenderer)();
|
|
4887
|
-
return /* @__PURE__ */ (0,
|
|
4888
|
-
/* @__PURE__ */ (0,
|
|
5357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Popover, { children: [
|
|
5358
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
4889
5359
|
PopoverTrigger,
|
|
4890
5360
|
{
|
|
4891
5361
|
nativeButton: false,
|
|
@@ -4893,15 +5363,15 @@ function Popover2({ content, children, className, style }) {
|
|
|
4893
5363
|
children
|
|
4894
5364
|
}
|
|
4895
5365
|
),
|
|
4896
|
-
/* @__PURE__ */ (0,
|
|
5366
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(PopoverContent, { className, style, children: isDslNode3(content) ? renderChildren([content]) : content })
|
|
4897
5367
|
] });
|
|
4898
5368
|
}
|
|
4899
5369
|
|
|
4900
5370
|
// src/ui/progress.tsx
|
|
4901
5371
|
var import_progress = require("@base-ui/react/progress");
|
|
4902
|
-
var
|
|
5372
|
+
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
4903
5373
|
function Progress({ className, ...props }) {
|
|
4904
|
-
return /* @__PURE__ */ (0,
|
|
5374
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
4905
5375
|
import_progress.Progress.Root,
|
|
4906
5376
|
{
|
|
4907
5377
|
"data-slot": "progress",
|
|
@@ -4911,11 +5381,11 @@ function Progress({ className, ...props }) {
|
|
|
4911
5381
|
);
|
|
4912
5382
|
}
|
|
4913
5383
|
function ProgressTrack({ className, ...props }) {
|
|
4914
|
-
return /* @__PURE__ */ (0,
|
|
5384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
4915
5385
|
import_progress.Progress.Track,
|
|
4916
5386
|
{
|
|
4917
5387
|
"data-slot": "progress-track",
|
|
4918
|
-
className: cn("h-2 w-full overflow-hidden rounded-full bg-
|
|
5388
|
+
className: cn("h-2 w-full overflow-hidden rounded-full bg-(--progress-track)", className),
|
|
4919
5389
|
...props
|
|
4920
5390
|
}
|
|
4921
5391
|
);
|
|
@@ -4924,12 +5394,12 @@ function ProgressIndicator({
|
|
|
4924
5394
|
className,
|
|
4925
5395
|
...props
|
|
4926
5396
|
}) {
|
|
4927
|
-
return /* @__PURE__ */ (0,
|
|
5397
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
|
|
4928
5398
|
import_progress.Progress.Indicator,
|
|
4929
5399
|
{
|
|
4930
5400
|
"data-slot": "progress-indicator",
|
|
4931
5401
|
className: cn(
|
|
4932
|
-
"h-full bg-
|
|
5402
|
+
"h-full bg-(--progress-indicator) transition-[width] duration-300 ease-in-out",
|
|
4933
5403
|
className
|
|
4934
5404
|
),
|
|
4935
5405
|
...props
|
|
@@ -4938,21 +5408,21 @@ function ProgressIndicator({
|
|
|
4938
5408
|
}
|
|
4939
5409
|
|
|
4940
5410
|
// src/components/components/Progress/index.tsx
|
|
4941
|
-
var
|
|
5411
|
+
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
4942
5412
|
function Progress2({ value, className, style }) {
|
|
4943
5413
|
const resolved = typeof value === "number" && Number.isFinite(value) ? Math.min(100, Math.max(0, value)) : null;
|
|
4944
|
-
return /* @__PURE__ */ (0,
|
|
5414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Progress, { value: resolved, className, style, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ProgressTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ProgressIndicator, {}) }) });
|
|
4945
5415
|
}
|
|
4946
5416
|
|
|
4947
5417
|
// src/components/components/RadioGroup/index.tsx
|
|
4948
|
-
var
|
|
5418
|
+
var import_react19 = require("react");
|
|
4949
5419
|
|
|
4950
5420
|
// src/ui/radio-group.tsx
|
|
4951
5421
|
var import_radio = require("@base-ui/react/radio");
|
|
4952
5422
|
var import_radio_group = require("@base-ui/react/radio-group");
|
|
4953
|
-
var
|
|
5423
|
+
var import_jsx_runtime94 = require("react/jsx-runtime");
|
|
4954
5424
|
function RadioGroup({ className, ...props }) {
|
|
4955
|
-
return /* @__PURE__ */ (0,
|
|
5425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
4956
5426
|
import_radio_group.RadioGroup,
|
|
4957
5427
|
{
|
|
4958
5428
|
"data-slot": "radio-group",
|
|
@@ -4962,21 +5432,21 @@ function RadioGroup({ className, ...props }) {
|
|
|
4962
5432
|
);
|
|
4963
5433
|
}
|
|
4964
5434
|
function RadioGroupItem({ className, ...props }) {
|
|
4965
|
-
return /* @__PURE__ */ (0,
|
|
5435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
4966
5436
|
import_radio.Radio.Root,
|
|
4967
5437
|
{
|
|
4968
5438
|
"data-slot": "radio-group-item",
|
|
4969
5439
|
className: cn(
|
|
4970
|
-
"aspect-square size-4 shrink-0 cursor-pointer rounded-full border border-
|
|
5440
|
+
"aspect-square size-4 shrink-0 cursor-pointer inline-flex items-center justify-center rounded-full border border-(color:--radio-border) shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-(color:--radio-checked)",
|
|
4971
5441
|
className
|
|
4972
5442
|
),
|
|
4973
5443
|
...props,
|
|
4974
|
-
children: /* @__PURE__ */ (0,
|
|
5444
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
4975
5445
|
import_radio.Radio.Indicator,
|
|
4976
5446
|
{
|
|
4977
5447
|
"data-slot": "radio-group-indicator",
|
|
4978
5448
|
className: "flex items-center justify-center",
|
|
4979
|
-
children: /* @__PURE__ */ (0,
|
|
5449
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
|
|
4980
5450
|
}
|
|
4981
5451
|
)
|
|
4982
5452
|
}
|
|
@@ -4984,7 +5454,7 @@ function RadioGroupItem({ className, ...props }) {
|
|
|
4984
5454
|
}
|
|
4985
5455
|
|
|
4986
5456
|
// src/components/components/Form/form-item.tsx
|
|
4987
|
-
var
|
|
5457
|
+
var import_jsx_runtime95 = require("react/jsx-runtime");
|
|
4988
5458
|
function FieldShell({
|
|
4989
5459
|
layout,
|
|
4990
5460
|
label,
|
|
@@ -4994,14 +5464,14 @@ function FieldShell({
|
|
|
4994
5464
|
style,
|
|
4995
5465
|
children
|
|
4996
5466
|
}) {
|
|
4997
|
-
return /* @__PURE__ */ (0,
|
|
5467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
|
|
4998
5468
|
"div",
|
|
4999
5469
|
{
|
|
5000
5470
|
"data-slot": "form-item",
|
|
5001
5471
|
className: cn(formItemClass(layout), className),
|
|
5002
5472
|
style,
|
|
5003
5473
|
children: [
|
|
5004
|
-
label ? /* @__PURE__ */ (0,
|
|
5474
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
|
|
5005
5475
|
"label",
|
|
5006
5476
|
{
|
|
5007
5477
|
htmlFor,
|
|
@@ -5010,14 +5480,14 @@ function FieldShell({
|
|
|
5010
5480
|
}
|
|
5011
5481
|
) : null,
|
|
5012
5482
|
children,
|
|
5013
|
-
error ? /* @__PURE__ */ (0,
|
|
5483
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
|
|
5014
5484
|
]
|
|
5015
5485
|
}
|
|
5016
5486
|
);
|
|
5017
5487
|
}
|
|
5018
5488
|
|
|
5019
5489
|
// src/components/components/RadioGroup/index.tsx
|
|
5020
|
-
var
|
|
5490
|
+
var import_jsx_runtime96 = require("react/jsx-runtime");
|
|
5021
5491
|
function RadioGroup2({
|
|
5022
5492
|
name,
|
|
5023
5493
|
label,
|
|
@@ -5030,9 +5500,9 @@ function RadioGroup2({
|
|
|
5030
5500
|
style
|
|
5031
5501
|
}) {
|
|
5032
5502
|
const form = useFormContext();
|
|
5033
|
-
const controlId = (0,
|
|
5503
|
+
const controlId = (0, import_react19.useId)();
|
|
5034
5504
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
5035
|
-
(0,
|
|
5505
|
+
(0, import_react19.useEffect)(() => {
|
|
5036
5506
|
if (inForm && form && name) {
|
|
5037
5507
|
form.registerField(name, rules, value);
|
|
5038
5508
|
return () => form.unregisterField(name);
|
|
@@ -5047,7 +5517,7 @@ function RadioGroup2({
|
|
|
5047
5517
|
onChange?.(next);
|
|
5048
5518
|
};
|
|
5049
5519
|
const groupValue = current ?? "";
|
|
5050
|
-
const group = /* @__PURE__ */ (0,
|
|
5520
|
+
const group = /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
5051
5521
|
RadioGroup,
|
|
5052
5522
|
{
|
|
5053
5523
|
value: groupValue,
|
|
@@ -5058,8 +5528,8 @@ function RadioGroup2({
|
|
|
5058
5528
|
style: inForm ? void 0 : style,
|
|
5059
5529
|
children: options.map((option, index) => {
|
|
5060
5530
|
const optionId = `${controlId}-${index}`;
|
|
5061
|
-
return /* @__PURE__ */ (0,
|
|
5062
|
-
/* @__PURE__ */ (0,
|
|
5531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { className: "inline-flex items-center gap-2", children: [
|
|
5532
|
+
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
5063
5533
|
RadioGroupItem,
|
|
5064
5534
|
{
|
|
5065
5535
|
id: optionId,
|
|
@@ -5067,13 +5537,13 @@ function RadioGroup2({
|
|
|
5067
5537
|
disabled: option.disabled
|
|
5068
5538
|
}
|
|
5069
5539
|
),
|
|
5070
|
-
/* @__PURE__ */ (0,
|
|
5540
|
+
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)("label", { htmlFor: optionId, className: "text-sm leading-none font-medium", children: option.label })
|
|
5071
5541
|
] }, String(option.value));
|
|
5072
5542
|
})
|
|
5073
5543
|
}
|
|
5074
5544
|
);
|
|
5075
5545
|
if (inForm && form && name) {
|
|
5076
|
-
return /* @__PURE__ */ (0,
|
|
5546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
5077
5547
|
FieldShell,
|
|
5078
5548
|
{
|
|
5079
5549
|
layout: form.layout,
|
|
@@ -5090,17 +5560,17 @@ function RadioGroup2({
|
|
|
5090
5560
|
|
|
5091
5561
|
// src/components/components/Resizable/index.tsx
|
|
5092
5562
|
var import_runtime15 = require("@pactor-app/runtime");
|
|
5093
|
-
var
|
|
5563
|
+
var import_react20 = require("react");
|
|
5094
5564
|
|
|
5095
5565
|
// src/ui/resizable.tsx
|
|
5096
|
-
var
|
|
5566
|
+
var import_lucide_react21 = require("lucide-react");
|
|
5097
5567
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
5098
|
-
var
|
|
5568
|
+
var import_jsx_runtime97 = require("react/jsx-runtime");
|
|
5099
5569
|
function PanelGroup({
|
|
5100
5570
|
className,
|
|
5101
5571
|
...props
|
|
5102
5572
|
}) {
|
|
5103
|
-
return /* @__PURE__ */ (0,
|
|
5573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
5104
5574
|
import_react_resizable_panels.Group,
|
|
5105
5575
|
{
|
|
5106
5576
|
"data-slot": "resizable-panel-group",
|
|
@@ -5113,14 +5583,14 @@ function PanelGroup({
|
|
|
5113
5583
|
);
|
|
5114
5584
|
}
|
|
5115
5585
|
function Panel({ ...props }) {
|
|
5116
|
-
return /* @__PURE__ */ (0,
|
|
5586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
|
|
5117
5587
|
}
|
|
5118
5588
|
function ResizableHandle({
|
|
5119
5589
|
withHandle,
|
|
5120
5590
|
className,
|
|
5121
5591
|
...props
|
|
5122
5592
|
}) {
|
|
5123
|
-
return /* @__PURE__ */ (0,
|
|
5593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
|
|
5124
5594
|
import_react_resizable_panels.Separator,
|
|
5125
5595
|
{
|
|
5126
5596
|
"data-slot": "resizable-handle",
|
|
@@ -5129,13 +5599,13 @@ function ResizableHandle({
|
|
|
5129
5599
|
className
|
|
5130
5600
|
),
|
|
5131
5601
|
...props,
|
|
5132
|
-
children: withHandle ? /* @__PURE__ */ (0,
|
|
5602
|
+
children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_lucide_react21.GripVerticalIcon, { className: "size-2.5" }) }) : null
|
|
5133
5603
|
}
|
|
5134
5604
|
);
|
|
5135
5605
|
}
|
|
5136
5606
|
|
|
5137
5607
|
// src/components/components/Resizable/index.tsx
|
|
5138
|
-
var
|
|
5608
|
+
var import_jsx_runtime98 = require("react/jsx-runtime");
|
|
5139
5609
|
function Resizable({
|
|
5140
5610
|
panels = [],
|
|
5141
5611
|
direction = "horizontal",
|
|
@@ -5143,12 +5613,14 @@ function Resizable({
|
|
|
5143
5613
|
style
|
|
5144
5614
|
}) {
|
|
5145
5615
|
const { renderChildren } = (0, import_runtime15.useRenderer)();
|
|
5146
|
-
return /* @__PURE__ */ (0,
|
|
5147
|
-
index > 0 ? /* @__PURE__ */ (0,
|
|
5148
|
-
/* @__PURE__ */ (0,
|
|
5616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(PanelGroup, { orientation: direction, className, style, children: panels.map((panel, index) => /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_react20.Fragment, { children: [
|
|
5617
|
+
index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(ResizableHandle, { withHandle: true }) : null,
|
|
5618
|
+
/* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
|
|
5149
5619
|
Panel,
|
|
5150
5620
|
{
|
|
5151
|
-
defaultSize: typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
|
|
5621
|
+
defaultSize: typeof panel.defaultSizePx === "number" ? `${panel.defaultSizePx}px` : typeof panel.defaultSize === "number" ? `${panel.defaultSize}%` : void 0,
|
|
5622
|
+
minSize: typeof panel.minSizePx === "number" ? `${panel.minSizePx}px` : void 0,
|
|
5623
|
+
maxSize: typeof panel.maxSizePx === "number" ? `${panel.maxSizePx}px` : void 0,
|
|
5152
5624
|
children: renderChildren(panel.children)
|
|
5153
5625
|
}
|
|
5154
5626
|
)
|
|
@@ -5157,20 +5629,20 @@ function Resizable({
|
|
|
5157
5629
|
|
|
5158
5630
|
// src/ui/scroll-area.tsx
|
|
5159
5631
|
var import_scroll_area = require("@base-ui/react/scroll-area");
|
|
5160
|
-
var
|
|
5632
|
+
var import_jsx_runtime99 = require("react/jsx-runtime");
|
|
5161
5633
|
function ScrollArea({
|
|
5162
5634
|
className,
|
|
5163
5635
|
children,
|
|
5164
5636
|
...props
|
|
5165
5637
|
}) {
|
|
5166
|
-
return /* @__PURE__ */ (0,
|
|
5638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
|
|
5167
5639
|
import_scroll_area.ScrollArea.Root,
|
|
5168
5640
|
{
|
|
5169
5641
|
"data-slot": "scroll-area",
|
|
5170
5642
|
className: cn("relative overflow-hidden", className),
|
|
5171
5643
|
...props,
|
|
5172
5644
|
children: [
|
|
5173
|
-
/* @__PURE__ */ (0,
|
|
5645
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
5174
5646
|
import_scroll_area.ScrollArea.Viewport,
|
|
5175
5647
|
{
|
|
5176
5648
|
"data-slot": "scroll-area-viewport",
|
|
@@ -5178,8 +5650,8 @@ function ScrollArea({
|
|
|
5178
5650
|
children
|
|
5179
5651
|
}
|
|
5180
5652
|
),
|
|
5181
|
-
/* @__PURE__ */ (0,
|
|
5182
|
-
/* @__PURE__ */ (0,
|
|
5653
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(ScrollBar, {}),
|
|
5654
|
+
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_scroll_area.ScrollArea.Corner, {})
|
|
5183
5655
|
]
|
|
5184
5656
|
}
|
|
5185
5657
|
);
|
|
@@ -5189,7 +5661,7 @@ function ScrollBar({
|
|
|
5189
5661
|
orientation = "vertical",
|
|
5190
5662
|
...props
|
|
5191
5663
|
}) {
|
|
5192
|
-
return /* @__PURE__ */ (0,
|
|
5664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
5193
5665
|
import_scroll_area.ScrollArea.Scrollbar,
|
|
5194
5666
|
{
|
|
5195
5667
|
"data-slot": "scroll-area-scrollbar",
|
|
@@ -5201,7 +5673,7 @@ function ScrollBar({
|
|
|
5201
5673
|
className
|
|
5202
5674
|
),
|
|
5203
5675
|
...props,
|
|
5204
|
-
children: /* @__PURE__ */ (0,
|
|
5676
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
5205
5677
|
import_scroll_area.ScrollArea.Thumb,
|
|
5206
5678
|
{
|
|
5207
5679
|
"data-slot": "scroll-area-thumb",
|
|
@@ -5213,7 +5685,7 @@ function ScrollBar({
|
|
|
5213
5685
|
}
|
|
5214
5686
|
|
|
5215
5687
|
// src/components/components/ScrollArea/index.tsx
|
|
5216
|
-
var
|
|
5688
|
+
var import_jsx_runtime100 = require("react/jsx-runtime");
|
|
5217
5689
|
function ScrollArea2({
|
|
5218
5690
|
maxHeight,
|
|
5219
5691
|
maxWidth,
|
|
@@ -5221,7 +5693,7 @@ function ScrollArea2({
|
|
|
5221
5693
|
style,
|
|
5222
5694
|
children
|
|
5223
5695
|
}) {
|
|
5224
|
-
return /* @__PURE__ */ (0,
|
|
5696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
|
|
5225
5697
|
ScrollArea,
|
|
5226
5698
|
{
|
|
5227
5699
|
className,
|
|
@@ -5233,17 +5705,17 @@ function ScrollArea2({
|
|
|
5233
5705
|
|
|
5234
5706
|
// src/components/components/Select/index.tsx
|
|
5235
5707
|
var import_runtime16 = require("@pactor-app/runtime");
|
|
5236
|
-
var
|
|
5708
|
+
var import_react21 = require("react");
|
|
5237
5709
|
|
|
5238
5710
|
// src/ui/select.tsx
|
|
5239
5711
|
var import_select = require("@base-ui/react/select");
|
|
5240
|
-
var
|
|
5241
|
-
var
|
|
5712
|
+
var import_lucide_react22 = require("lucide-react");
|
|
5713
|
+
var import_jsx_runtime101 = require("react/jsx-runtime");
|
|
5242
5714
|
var Select = import_select.Select.Root;
|
|
5243
5715
|
function SelectValue({
|
|
5244
5716
|
...props
|
|
5245
5717
|
}) {
|
|
5246
|
-
return /* @__PURE__ */ (0,
|
|
5718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
|
|
5247
5719
|
}
|
|
5248
5720
|
function SelectTrigger({
|
|
5249
5721
|
className,
|
|
@@ -5251,7 +5723,7 @@ function SelectTrigger({
|
|
|
5251
5723
|
children,
|
|
5252
5724
|
...props
|
|
5253
5725
|
}) {
|
|
5254
|
-
return /* @__PURE__ */ (0,
|
|
5726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
5255
5727
|
import_select.Select.Trigger,
|
|
5256
5728
|
{
|
|
5257
5729
|
"data-slot": "select-trigger",
|
|
@@ -5263,10 +5735,10 @@ function SelectTrigger({
|
|
|
5263
5735
|
...props,
|
|
5264
5736
|
children: [
|
|
5265
5737
|
children,
|
|
5266
|
-
/* @__PURE__ */ (0,
|
|
5738
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5267
5739
|
import_select.Select.Icon,
|
|
5268
5740
|
{
|
|
5269
|
-
render: /* @__PURE__ */ (0,
|
|
5741
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4 opacity-50" })
|
|
5270
5742
|
}
|
|
5271
5743
|
)
|
|
5272
5744
|
]
|
|
@@ -5282,7 +5754,7 @@ function SelectContent({
|
|
|
5282
5754
|
alignItemWithTrigger = false,
|
|
5283
5755
|
...props
|
|
5284
5756
|
}) {
|
|
5285
|
-
return /* @__PURE__ */ (0,
|
|
5757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5286
5758
|
import_select.Select.Positioner,
|
|
5287
5759
|
{
|
|
5288
5760
|
side,
|
|
@@ -5290,19 +5762,19 @@ function SelectContent({
|
|
|
5290
5762
|
align,
|
|
5291
5763
|
alignItemWithTrigger,
|
|
5292
5764
|
className: "isolate z-50",
|
|
5293
|
-
children: /* @__PURE__ */ (0,
|
|
5765
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
5294
5766
|
import_select.Select.Popup,
|
|
5295
5767
|
{
|
|
5296
5768
|
"data-slot": "select-content",
|
|
5297
5769
|
className: cn(
|
|
5298
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
5770
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
5299
5771
|
className
|
|
5300
5772
|
),
|
|
5301
5773
|
...props,
|
|
5302
5774
|
children: [
|
|
5303
|
-
/* @__PURE__ */ (0,
|
|
5304
|
-
/* @__PURE__ */ (0,
|
|
5305
|
-
/* @__PURE__ */ (0,
|
|
5775
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SelectScrollUpButton, {}),
|
|
5776
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.List, { className: "p-1", children }),
|
|
5777
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SelectScrollDownButton, {})
|
|
5306
5778
|
]
|
|
5307
5779
|
}
|
|
5308
5780
|
)
|
|
@@ -5314,18 +5786,18 @@ function SelectItem({
|
|
|
5314
5786
|
children,
|
|
5315
5787
|
...props
|
|
5316
5788
|
}) {
|
|
5317
|
-
return /* @__PURE__ */ (0,
|
|
5789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
5318
5790
|
import_select.Select.Item,
|
|
5319
5791
|
{
|
|
5320
5792
|
"data-slot": "select-item",
|
|
5321
5793
|
className: cn(
|
|
5322
|
-
"relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-
|
|
5794
|
+
"relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
5323
5795
|
className
|
|
5324
5796
|
),
|
|
5325
5797
|
...props,
|
|
5326
5798
|
children: [
|
|
5327
|
-
/* @__PURE__ */ (0,
|
|
5328
|
-
/* @__PURE__ */ (0,
|
|
5799
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.CheckIcon, { className: "size-4" }) }) }),
|
|
5800
|
+
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_select.Select.ItemText, { children })
|
|
5329
5801
|
]
|
|
5330
5802
|
}
|
|
5331
5803
|
);
|
|
@@ -5334,7 +5806,7 @@ function SelectScrollUpButton({
|
|
|
5334
5806
|
className,
|
|
5335
5807
|
...props
|
|
5336
5808
|
}) {
|
|
5337
|
-
return /* @__PURE__ */ (0,
|
|
5809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5338
5810
|
import_select.Select.ScrollUpArrow,
|
|
5339
5811
|
{
|
|
5340
5812
|
"data-slot": "select-scroll-up-button",
|
|
@@ -5343,7 +5815,7 @@ function SelectScrollUpButton({
|
|
|
5343
5815
|
className
|
|
5344
5816
|
),
|
|
5345
5817
|
...props,
|
|
5346
|
-
children: /* @__PURE__ */ (0,
|
|
5818
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronUpIcon, { className: "size-4" })
|
|
5347
5819
|
}
|
|
5348
5820
|
);
|
|
5349
5821
|
}
|
|
@@ -5351,7 +5823,7 @@ function SelectScrollDownButton({
|
|
|
5351
5823
|
className,
|
|
5352
5824
|
...props
|
|
5353
5825
|
}) {
|
|
5354
|
-
return /* @__PURE__ */ (0,
|
|
5826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5355
5827
|
import_select.Select.ScrollDownArrow,
|
|
5356
5828
|
{
|
|
5357
5829
|
"data-slot": "select-scroll-down-button",
|
|
@@ -5360,13 +5832,13 @@ function SelectScrollDownButton({
|
|
|
5360
5832
|
className
|
|
5361
5833
|
),
|
|
5362
5834
|
...props,
|
|
5363
|
-
children: /* @__PURE__ */ (0,
|
|
5835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.ChevronDownIcon, { className: "size-4" })
|
|
5364
5836
|
}
|
|
5365
5837
|
);
|
|
5366
5838
|
}
|
|
5367
5839
|
|
|
5368
5840
|
// src/components/components/Select/index.tsx
|
|
5369
|
-
var
|
|
5841
|
+
var import_jsx_runtime102 = require("react/jsx-runtime");
|
|
5370
5842
|
function Select2({
|
|
5371
5843
|
name,
|
|
5372
5844
|
label,
|
|
@@ -5382,9 +5854,9 @@ function Select2({
|
|
|
5382
5854
|
}) {
|
|
5383
5855
|
const form = useFormContext();
|
|
5384
5856
|
const { t } = (0, import_runtime16.useI18n)();
|
|
5385
|
-
const controlId = (0,
|
|
5857
|
+
const controlId = (0, import_react21.useId)();
|
|
5386
5858
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
5387
|
-
(0,
|
|
5859
|
+
(0, import_react21.useEffect)(() => {
|
|
5388
5860
|
if (inForm && form && name) {
|
|
5389
5861
|
form.registerField(name, rules, value);
|
|
5390
5862
|
return () => form.unregisterField(name);
|
|
@@ -5400,13 +5872,13 @@ function Select2({
|
|
|
5400
5872
|
onChange?.(next ?? void 0);
|
|
5401
5873
|
};
|
|
5402
5874
|
const inFormRoot = inForm === true;
|
|
5403
|
-
const select = /* @__PURE__ */ (0,
|
|
5875
|
+
const select = /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
|
|
5404
5876
|
"span",
|
|
5405
5877
|
{
|
|
5406
5878
|
className: cn("inline-flex items-center gap-1", !inFormRoot && className),
|
|
5407
5879
|
style: inFormRoot ? void 0 : style,
|
|
5408
5880
|
children: [
|
|
5409
|
-
/* @__PURE__ */ (0,
|
|
5881
|
+
/* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
|
|
5410
5882
|
Select,
|
|
5411
5883
|
{
|
|
5412
5884
|
items: options,
|
|
@@ -5415,8 +5887,8 @@ function Select2({
|
|
|
5415
5887
|
disabled,
|
|
5416
5888
|
name: inForm ? name : void 0,
|
|
5417
5889
|
children: [
|
|
5418
|
-
/* @__PURE__ */ (0,
|
|
5419
|
-
/* @__PURE__ */ (0,
|
|
5890
|
+
/* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectTrigger, { id: controlId, children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectValue, { placeholder }) }),
|
|
5891
|
+
/* @__PURE__ */ (0, import_jsx_runtime102.jsx)(SelectContent, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
5420
5892
|
SelectItem,
|
|
5421
5893
|
{
|
|
5422
5894
|
value: option.value,
|
|
@@ -5428,7 +5900,7 @@ function Select2({
|
|
|
5428
5900
|
]
|
|
5429
5901
|
}
|
|
5430
5902
|
),
|
|
5431
|
-
allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0,
|
|
5903
|
+
allowClear && selectedValue !== null && !disabled ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
5432
5904
|
"button",
|
|
5433
5905
|
{
|
|
5434
5906
|
type: "button",
|
|
@@ -5448,14 +5920,14 @@ function Select2({
|
|
|
5448
5920
|
);
|
|
5449
5921
|
if (inForm && form && name) {
|
|
5450
5922
|
const error = form.errors[name];
|
|
5451
|
-
return /* @__PURE__ */ (0,
|
|
5923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
|
|
5452
5924
|
"div",
|
|
5453
5925
|
{
|
|
5454
5926
|
"data-slot": "form-item",
|
|
5455
5927
|
className: cn(formItemClass(form.layout), className),
|
|
5456
5928
|
style,
|
|
5457
5929
|
children: [
|
|
5458
|
-
label ? /* @__PURE__ */ (0,
|
|
5930
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
|
|
5459
5931
|
"label",
|
|
5460
5932
|
{
|
|
5461
5933
|
htmlFor: controlId,
|
|
@@ -5464,7 +5936,7 @@ function Select2({
|
|
|
5464
5936
|
}
|
|
5465
5937
|
) : null,
|
|
5466
5938
|
select,
|
|
5467
|
-
error ? /* @__PURE__ */ (0,
|
|
5939
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { "data-slot": "form-error", className: "text-sm text-destructive", children: error }) : null
|
|
5468
5940
|
]
|
|
5469
5941
|
}
|
|
5470
5942
|
);
|
|
@@ -5472,146 +5944,14 @@ function Select2({
|
|
|
5472
5944
|
return select;
|
|
5473
5945
|
}
|
|
5474
5946
|
|
|
5475
|
-
// src/ui/separator.tsx
|
|
5476
|
-
var import_separator = require("@base-ui/react/separator");
|
|
5477
|
-
var import_jsx_runtime99 = require("react/jsx-runtime");
|
|
5478
|
-
function Separator({
|
|
5479
|
-
className,
|
|
5480
|
-
orientation = "horizontal",
|
|
5481
|
-
decorative: _decorative,
|
|
5482
|
-
...props
|
|
5483
|
-
}) {
|
|
5484
|
-
return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
5485
|
-
import_separator.Separator,
|
|
5486
|
-
{
|
|
5487
|
-
"data-slot": "separator",
|
|
5488
|
-
orientation,
|
|
5489
|
-
className: cn(
|
|
5490
|
-
"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
5491
|
-
className
|
|
5492
|
-
),
|
|
5493
|
-
...props
|
|
5494
|
-
}
|
|
5495
|
-
);
|
|
5496
|
-
}
|
|
5497
|
-
|
|
5498
5947
|
// src/components/components/Separator/index.tsx
|
|
5499
|
-
var
|
|
5948
|
+
var import_jsx_runtime103 = require("react/jsx-runtime");
|
|
5500
5949
|
function Separator2({ orientation = "horizontal", className, style }) {
|
|
5501
|
-
return /* @__PURE__ */ (0,
|
|
5502
|
-
}
|
|
5503
|
-
|
|
5504
|
-
// src/ui/sheet.tsx
|
|
5505
|
-
var import_dialog3 = require("@base-ui/react/dialog");
|
|
5506
|
-
var import_lucide_react22 = require("lucide-react");
|
|
5507
|
-
var import_class_variance_authority5 = require("class-variance-authority");
|
|
5508
|
-
var import_jsx_runtime101 = require("react/jsx-runtime");
|
|
5509
|
-
function Sheet({
|
|
5510
|
-
...props
|
|
5511
|
-
}) {
|
|
5512
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_dialog3.Dialog.Root, { "data-slot": "sheet", ...props });
|
|
5513
|
-
}
|
|
5514
|
-
function SheetPortal({
|
|
5515
|
-
...props
|
|
5516
|
-
}) {
|
|
5517
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_dialog3.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
|
|
5518
|
-
}
|
|
5519
|
-
function SheetOverlay({
|
|
5520
|
-
className,
|
|
5521
|
-
...props
|
|
5522
|
-
}) {
|
|
5523
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5524
|
-
import_dialog3.Dialog.Backdrop,
|
|
5525
|
-
{
|
|
5526
|
-
"data-slot": "sheet-overlay",
|
|
5527
|
-
className: cn(
|
|
5528
|
-
"fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
5529
|
-
className
|
|
5530
|
-
),
|
|
5531
|
-
...props
|
|
5532
|
-
}
|
|
5533
|
-
);
|
|
5534
|
-
}
|
|
5535
|
-
var sheetVariants = (0, import_class_variance_authority5.cva)(
|
|
5536
|
-
"fixed z-50 flex flex-col gap-4 border-border bg-background shadow-lg transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
|
|
5537
|
-
{
|
|
5538
|
-
variants: {
|
|
5539
|
-
side: {
|
|
5540
|
-
right: "inset-y-0 right-0 h-full w-3/4 border-l data-open:slide-in-from-right data-closed:slide-out-to-right sm:max-w-sm",
|
|
5541
|
-
left: "inset-y-0 left-0 h-full w-3/4 border-r data-open:slide-in-from-left data-closed:slide-out-to-left sm:max-w-sm",
|
|
5542
|
-
top: "inset-x-0 top-0 border-b data-open:slide-in-from-top data-closed:slide-out-to-top",
|
|
5543
|
-
bottom: "inset-x-0 bottom-0 border-t data-open:slide-in-from-bottom data-closed:slide-out-to-bottom"
|
|
5544
|
-
}
|
|
5545
|
-
},
|
|
5546
|
-
defaultVariants: {
|
|
5547
|
-
side: "right"
|
|
5548
|
-
}
|
|
5549
|
-
}
|
|
5550
|
-
);
|
|
5551
|
-
function SheetContent({
|
|
5552
|
-
className,
|
|
5553
|
-
children,
|
|
5554
|
-
side = "right",
|
|
5555
|
-
...props
|
|
5556
|
-
}) {
|
|
5557
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
|
|
5558
|
-
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(SheetOverlay, {}),
|
|
5559
|
-
/* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
5560
|
-
import_dialog3.Dialog.Popup,
|
|
5561
|
-
{
|
|
5562
|
-
"data-slot": "sheet-content",
|
|
5563
|
-
className: cn(sheetVariants({ side }), className),
|
|
5564
|
-
...props,
|
|
5565
|
-
children: [
|
|
5566
|
-
children,
|
|
5567
|
-
/* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
|
|
5568
|
-
import_dialog3.Dialog.Close,
|
|
5569
|
-
{
|
|
5570
|
-
"data-slot": "sheet-close",
|
|
5571
|
-
render: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5572
|
-
"button",
|
|
5573
|
-
{
|
|
5574
|
-
type: "button",
|
|
5575
|
-
className: "absolute top-4 right-4 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
5576
|
-
}
|
|
5577
|
-
),
|
|
5578
|
-
children: [
|
|
5579
|
-
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_lucide_react22.XIcon, {}),
|
|
5580
|
-
/* @__PURE__ */ (0, import_jsx_runtime101.jsx)("span", { className: "sr-only", children: "Close" })
|
|
5581
|
-
]
|
|
5582
|
-
}
|
|
5583
|
-
)
|
|
5584
|
-
]
|
|
5585
|
-
}
|
|
5586
|
-
)
|
|
5587
|
-
] });
|
|
5588
|
-
}
|
|
5589
|
-
function SheetHeader({ className, ...props }) {
|
|
5590
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5591
|
-
"div",
|
|
5592
|
-
{
|
|
5593
|
-
"data-slot": "sheet-header",
|
|
5594
|
-
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
5595
|
-
...props
|
|
5596
|
-
}
|
|
5597
|
-
);
|
|
5598
|
-
}
|
|
5599
|
-
function SheetTitle({
|
|
5600
|
-
className,
|
|
5601
|
-
...props
|
|
5602
|
-
}) {
|
|
5603
|
-
return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
|
|
5604
|
-
import_dialog3.Dialog.Title,
|
|
5605
|
-
{
|
|
5606
|
-
"data-slot": "sheet-title",
|
|
5607
|
-
className: cn("font-semibold text-foreground", className),
|
|
5608
|
-
...props
|
|
5609
|
-
}
|
|
5610
|
-
);
|
|
5950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(Separator, { orientation, className, style });
|
|
5611
5951
|
}
|
|
5612
5952
|
|
|
5613
5953
|
// src/components/components/Sheet/index.tsx
|
|
5614
|
-
var
|
|
5954
|
+
var import_jsx_runtime104 = require("react/jsx-runtime");
|
|
5615
5955
|
function Sheet2({
|
|
5616
5956
|
title,
|
|
5617
5957
|
open,
|
|
@@ -5621,7 +5961,7 @@ function Sheet2({
|
|
|
5621
5961
|
className,
|
|
5622
5962
|
style
|
|
5623
5963
|
}) {
|
|
5624
|
-
return /* @__PURE__ */ (0,
|
|
5964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
5625
5965
|
Sheet,
|
|
5626
5966
|
{
|
|
5627
5967
|
open: open ?? false,
|
|
@@ -5630,9 +5970,9 @@ function Sheet2({
|
|
|
5630
5970
|
onClose?.();
|
|
5631
5971
|
}
|
|
5632
5972
|
},
|
|
5633
|
-
children: /* @__PURE__ */ (0,
|
|
5634
|
-
title ? /* @__PURE__ */ (0,
|
|
5635
|
-
/* @__PURE__ */ (0,
|
|
5973
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(SheetContent, { side, className, style, children: [
|
|
5974
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SheetHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(SheetTitle, { children: title }) }) : null,
|
|
5975
|
+
/* @__PURE__ */ (0, import_jsx_runtime104.jsx)("div", { className: "flex-1 overflow-auto px-4", children })
|
|
5636
5976
|
] })
|
|
5637
5977
|
}
|
|
5638
5978
|
);
|
|
@@ -5640,7 +5980,7 @@ function Sheet2({
|
|
|
5640
5980
|
|
|
5641
5981
|
// src/components/components/Sider/index.tsx
|
|
5642
5982
|
var import_lucide_react23 = require("lucide-react");
|
|
5643
|
-
var
|
|
5983
|
+
var import_jsx_runtime105 = require("react/jsx-runtime");
|
|
5644
5984
|
function Sider({
|
|
5645
5985
|
width = 200,
|
|
5646
5986
|
collapsible,
|
|
@@ -5652,26 +5992,26 @@ function Sider({
|
|
|
5652
5992
|
children
|
|
5653
5993
|
}) {
|
|
5654
5994
|
const current = collapsed ? collapsedWidth : width;
|
|
5655
|
-
return /* @__PURE__ */ (0,
|
|
5995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
|
|
5656
5996
|
"aside",
|
|
5657
5997
|
{
|
|
5658
5998
|
"data-slot": "layout-sider",
|
|
5659
5999
|
"data-collapsed": collapsed || void 0,
|
|
5660
6000
|
className: cn(
|
|
5661
|
-
"flex min-h-0 shrink-0 flex-col border-r bg-
|
|
6001
|
+
"flex min-h-0 shrink-0 flex-col border-r bg-sidebar transition-[width]",
|
|
5662
6002
|
className
|
|
5663
6003
|
),
|
|
5664
6004
|
style: { width: current, ...style },
|
|
5665
6005
|
children: [
|
|
5666
|
-
/* @__PURE__ */ (0,
|
|
5667
|
-
collapsible ? /* @__PURE__ */ (0,
|
|
6006
|
+
/* @__PURE__ */ (0, import_jsx_runtime105.jsx)("div", { className: "min-h-0 flex-1 overflow-auto", children }),
|
|
6007
|
+
collapsible ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
|
|
5668
6008
|
"button",
|
|
5669
6009
|
{
|
|
5670
6010
|
type: "button",
|
|
5671
6011
|
"aria-label": collapsed ? "expand sider" : "collapse sider",
|
|
5672
6012
|
className: "flex h-10 shrink-0 items-center justify-center border-t text-muted-foreground hover:text-foreground",
|
|
5673
6013
|
onClick: () => onCollapse?.(!collapsed),
|
|
5674
|
-
children: collapsed ? /* @__PURE__ */ (0,
|
|
6014
|
+
children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react23.ChevronRight, { "aria-hidden": true, className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_lucide_react23.ChevronLeft, { "aria-hidden": true, className: "size-4" })
|
|
5675
6015
|
}
|
|
5676
6016
|
) : null
|
|
5677
6017
|
]
|
|
@@ -5679,21 +6019,8 @@ function Sider({
|
|
|
5679
6019
|
);
|
|
5680
6020
|
}
|
|
5681
6021
|
|
|
5682
|
-
// src/ui/skeleton.tsx
|
|
5683
|
-
var import_jsx_runtime104 = require("react/jsx-runtime");
|
|
5684
|
-
function Skeleton({ className, ...props }) {
|
|
5685
|
-
return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
|
|
5686
|
-
"div",
|
|
5687
|
-
{
|
|
5688
|
-
"data-slot": "skeleton",
|
|
5689
|
-
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
5690
|
-
...props
|
|
5691
|
-
}
|
|
5692
|
-
);
|
|
5693
|
-
}
|
|
5694
|
-
|
|
5695
6022
|
// src/components/components/Skeleton/index.tsx
|
|
5696
|
-
var
|
|
6023
|
+
var import_jsx_runtime106 = require("react/jsx-runtime");
|
|
5697
6024
|
var shapeDefaults = {
|
|
5698
6025
|
line: { className: "h-4 w-full", style: {} },
|
|
5699
6026
|
circle: { className: "rounded-full", style: { width: 40, height: 40 } },
|
|
@@ -5704,7 +6031,7 @@ function toSize(value) {
|
|
|
5704
6031
|
}
|
|
5705
6032
|
function Skeleton2({ shape = "line", width, height, className, style }) {
|
|
5706
6033
|
const defaults = shapeDefaults[shape];
|
|
5707
|
-
return /* @__PURE__ */ (0,
|
|
6034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
5708
6035
|
Skeleton,
|
|
5709
6036
|
{
|
|
5710
6037
|
className: cn(defaults.className, className),
|
|
@@ -5719,13 +6046,13 @@ function Skeleton2({ shape = "line", width, height, className, style }) {
|
|
|
5719
6046
|
}
|
|
5720
6047
|
|
|
5721
6048
|
// src/components/components/Slider/index.tsx
|
|
5722
|
-
var
|
|
6049
|
+
var import_react22 = require("react");
|
|
5723
6050
|
|
|
5724
6051
|
// src/ui/slider.tsx
|
|
5725
6052
|
var import_slider = require("@base-ui/react/slider");
|
|
5726
|
-
var
|
|
6053
|
+
var import_jsx_runtime107 = require("react/jsx-runtime");
|
|
5727
6054
|
function Slider({ className, ...props }) {
|
|
5728
|
-
return /* @__PURE__ */ (0,
|
|
6055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
5729
6056
|
import_slider.Slider.Root,
|
|
5730
6057
|
{
|
|
5731
6058
|
"data-slot": "slider",
|
|
@@ -5738,7 +6065,7 @@ function Slider({ className, ...props }) {
|
|
|
5738
6065
|
);
|
|
5739
6066
|
}
|
|
5740
6067
|
function SliderControl({ className, ...props }) {
|
|
5741
|
-
return /* @__PURE__ */ (0,
|
|
6068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
5742
6069
|
import_slider.Slider.Control,
|
|
5743
6070
|
{
|
|
5744
6071
|
"data-slot": "slider-control",
|
|
@@ -5748,12 +6075,12 @@ function SliderControl({ className, ...props }) {
|
|
|
5748
6075
|
);
|
|
5749
6076
|
}
|
|
5750
6077
|
function SliderTrack({ className, ...props }) {
|
|
5751
|
-
return /* @__PURE__ */ (0,
|
|
6078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
5752
6079
|
import_slider.Slider.Track,
|
|
5753
6080
|
{
|
|
5754
6081
|
"data-slot": "slider-track",
|
|
5755
6082
|
className: cn(
|
|
5756
|
-
"relative h-1.5 w-full grow overflow-hidden rounded-full bg-
|
|
6083
|
+
"relative h-1.5 w-full grow overflow-hidden rounded-full bg-(--slider-track)",
|
|
5757
6084
|
className
|
|
5758
6085
|
),
|
|
5759
6086
|
...props
|
|
@@ -5761,22 +6088,22 @@ function SliderTrack({ className, ...props }) {
|
|
|
5761
6088
|
);
|
|
5762
6089
|
}
|
|
5763
6090
|
function SliderIndicator({ className, ...props }) {
|
|
5764
|
-
return /* @__PURE__ */ (0,
|
|
6091
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
5765
6092
|
import_slider.Slider.Indicator,
|
|
5766
6093
|
{
|
|
5767
6094
|
"data-slot": "slider-indicator",
|
|
5768
|
-
className: cn("absolute h-full bg-
|
|
6095
|
+
className: cn("absolute h-full bg-(--slider-range)", className),
|
|
5769
6096
|
...props
|
|
5770
6097
|
}
|
|
5771
6098
|
);
|
|
5772
6099
|
}
|
|
5773
6100
|
function SliderThumb({ className, ...props }) {
|
|
5774
|
-
return /* @__PURE__ */ (0,
|
|
6101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
5775
6102
|
import_slider.Slider.Thumb,
|
|
5776
6103
|
{
|
|
5777
6104
|
"data-slot": "slider-thumb",
|
|
5778
6105
|
className: cn(
|
|
5779
|
-
"block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-
|
|
6106
|
+
"block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-(--slider-thumb) shadow-sm transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50",
|
|
5780
6107
|
className
|
|
5781
6108
|
),
|
|
5782
6109
|
...props
|
|
@@ -5785,7 +6112,7 @@ function SliderThumb({ className, ...props }) {
|
|
|
5785
6112
|
}
|
|
5786
6113
|
|
|
5787
6114
|
// src/components/components/Slider/index.tsx
|
|
5788
|
-
var
|
|
6115
|
+
var import_jsx_runtime108 = require("react/jsx-runtime");
|
|
5789
6116
|
function Slider2({
|
|
5790
6117
|
name,
|
|
5791
6118
|
label,
|
|
@@ -5801,7 +6128,7 @@ function Slider2({
|
|
|
5801
6128
|
}) {
|
|
5802
6129
|
const form = useFormContext();
|
|
5803
6130
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
5804
|
-
(0,
|
|
6131
|
+
(0, import_react22.useEffect)(() => {
|
|
5805
6132
|
if (inForm && form && name) {
|
|
5806
6133
|
form.registerField(name, rules, value);
|
|
5807
6134
|
return () => form.unregisterField(name);
|
|
@@ -5816,7 +6143,7 @@ function Slider2({
|
|
|
5816
6143
|
}
|
|
5817
6144
|
onChange?.(next);
|
|
5818
6145
|
};
|
|
5819
|
-
const slider = /* @__PURE__ */ (0,
|
|
6146
|
+
const slider = /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
5820
6147
|
Slider,
|
|
5821
6148
|
{
|
|
5822
6149
|
value: numberValue,
|
|
@@ -5828,14 +6155,14 @@ function Slider2({
|
|
|
5828
6155
|
onValueChange: handleChange,
|
|
5829
6156
|
className: inForm ? void 0 : className,
|
|
5830
6157
|
style: inForm ? void 0 : style,
|
|
5831
|
-
children: /* @__PURE__ */ (0,
|
|
5832
|
-
/* @__PURE__ */ (0,
|
|
5833
|
-
/* @__PURE__ */ (0,
|
|
5834
|
-
] })
|
|
6158
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(SliderControl, { children: [
|
|
6159
|
+
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderTrack, { children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderIndicator, {}) }),
|
|
6160
|
+
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SliderThumb, {})
|
|
6161
|
+
] })
|
|
5835
6162
|
}
|
|
5836
6163
|
);
|
|
5837
6164
|
if (inForm && form && name) {
|
|
5838
|
-
return /* @__PURE__ */ (0,
|
|
6165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
5839
6166
|
FieldShell,
|
|
5840
6167
|
{
|
|
5841
6168
|
layout: form.layout,
|
|
@@ -5852,12 +6179,12 @@ function Slider2({
|
|
|
5852
6179
|
|
|
5853
6180
|
// src/components/components/Sonner/index.tsx
|
|
5854
6181
|
var import_runtime17 = require("@pactor-app/runtime");
|
|
5855
|
-
var
|
|
6182
|
+
var import_react23 = require("react");
|
|
5856
6183
|
|
|
5857
6184
|
// src/ui/toast.tsx
|
|
5858
6185
|
var import_toast = require("@base-ui/react/toast");
|
|
5859
6186
|
var import_lucide_react24 = require("lucide-react");
|
|
5860
|
-
var
|
|
6187
|
+
var import_jsx_runtime109 = require("react/jsx-runtime");
|
|
5861
6188
|
var toastManager = import_toast.Toast.createToastManager();
|
|
5862
6189
|
function toast(message, options = {}) {
|
|
5863
6190
|
return toastManager.add({
|
|
@@ -5873,7 +6200,7 @@ var toastVariantClass = {
|
|
|
5873
6200
|
};
|
|
5874
6201
|
function ToasterViewport({ className }) {
|
|
5875
6202
|
const { toasts } = import_toast.Toast.useToastManager();
|
|
5876
|
-
return /* @__PURE__ */ (0,
|
|
6203
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
5877
6204
|
import_toast.Toast.Viewport,
|
|
5878
6205
|
{
|
|
5879
6206
|
"data-slot": "toast-viewport",
|
|
@@ -5881,26 +6208,26 @@ function ToasterViewport({ className }) {
|
|
|
5881
6208
|
"fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
|
|
5882
6209
|
className
|
|
5883
6210
|
),
|
|
5884
|
-
children: toasts.map((item) => /* @__PURE__ */ (0,
|
|
6211
|
+
children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
5885
6212
|
import_toast.Toast.Root,
|
|
5886
6213
|
{
|
|
5887
6214
|
toast: item,
|
|
5888
6215
|
"data-slot": "toast",
|
|
5889
6216
|
"data-type": item.type ?? "info",
|
|
5890
6217
|
className: cn(
|
|
5891
|
-
"rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
|
|
6218
|
+
"rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md shadow-(color:--shadow-color) transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
|
|
5892
6219
|
toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
|
|
5893
6220
|
),
|
|
5894
|
-
children: /* @__PURE__ */ (0,
|
|
5895
|
-
/* @__PURE__ */ (0,
|
|
5896
|
-
/* @__PURE__ */ (0,
|
|
6221
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
|
|
6222
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: "grid gap-0.5", children: [
|
|
6223
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
5897
6224
|
import_toast.Toast.Title,
|
|
5898
6225
|
{
|
|
5899
6226
|
"data-slot": "toast-title",
|
|
5900
6227
|
className: "font-medium"
|
|
5901
6228
|
}
|
|
5902
6229
|
),
|
|
5903
|
-
/* @__PURE__ */ (0,
|
|
6230
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
5904
6231
|
import_toast.Toast.Description,
|
|
5905
6232
|
{
|
|
5906
6233
|
"data-slot": "toast-description",
|
|
@@ -5908,13 +6235,13 @@ function ToasterViewport({ className }) {
|
|
|
5908
6235
|
}
|
|
5909
6236
|
)
|
|
5910
6237
|
] }),
|
|
5911
|
-
/* @__PURE__ */ (0,
|
|
6238
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
5912
6239
|
import_toast.Toast.Close,
|
|
5913
6240
|
{
|
|
5914
6241
|
"data-slot": "toast-close",
|
|
5915
6242
|
"aria-label": "Close",
|
|
5916
6243
|
className: "cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none [&_svg]:size-3.5",
|
|
5917
|
-
children: /* @__PURE__ */ (0,
|
|
6244
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_lucide_react24.XIcon, {})
|
|
5918
6245
|
}
|
|
5919
6246
|
)
|
|
5920
6247
|
] })
|
|
@@ -5925,14 +6252,14 @@ function ToasterViewport({ className }) {
|
|
|
5925
6252
|
) });
|
|
5926
6253
|
}
|
|
5927
6254
|
function Toaster({ className }) {
|
|
5928
|
-
return /* @__PURE__ */ (0,
|
|
6255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(ToasterViewport, { className }) });
|
|
5929
6256
|
}
|
|
5930
6257
|
|
|
5931
6258
|
// src/components/components/Sonner/index.tsx
|
|
5932
|
-
var
|
|
6259
|
+
var import_jsx_runtime110 = require("react/jsx-runtime");
|
|
5933
6260
|
function Sonner({ className, style }) {
|
|
5934
6261
|
const { context } = (0, import_runtime17.useRenderer)();
|
|
5935
|
-
(0,
|
|
6262
|
+
(0, import_react23.useEffect)(() => {
|
|
5936
6263
|
const { actions } = context;
|
|
5937
6264
|
if (actions.has("toast")) {
|
|
5938
6265
|
return;
|
|
@@ -5946,14 +6273,14 @@ function Sonner({ className, style }) {
|
|
|
5946
6273
|
return { ok: true };
|
|
5947
6274
|
});
|
|
5948
6275
|
}, [context]);
|
|
5949
|
-
return /* @__PURE__ */ (0,
|
|
6276
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)("div", { "data-slot": "sonner", className, style, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Toaster, {}) });
|
|
5950
6277
|
}
|
|
5951
6278
|
|
|
5952
6279
|
// src/ui/spinner.tsx
|
|
5953
6280
|
var import_lucide_react25 = require("lucide-react");
|
|
5954
|
-
var
|
|
6281
|
+
var import_jsx_runtime111 = require("react/jsx-runtime");
|
|
5955
6282
|
function Spinner({ className, ...props }) {
|
|
5956
|
-
return /* @__PURE__ */ (0,
|
|
6283
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
5957
6284
|
import_lucide_react25.Loader2Icon,
|
|
5958
6285
|
{
|
|
5959
6286
|
role: "status",
|
|
@@ -5966,50 +6293,50 @@ function Spinner({ className, ...props }) {
|
|
|
5966
6293
|
}
|
|
5967
6294
|
|
|
5968
6295
|
// src/components/components/Spinner/index.tsx
|
|
5969
|
-
var
|
|
6296
|
+
var import_jsx_runtime112 = require("react/jsx-runtime");
|
|
5970
6297
|
var sizeClass = {
|
|
5971
6298
|
sm: "size-3",
|
|
5972
6299
|
default: "size-4",
|
|
5973
6300
|
lg: "size-6"
|
|
5974
6301
|
};
|
|
5975
6302
|
function Spinner2({ size = "default", className, style }) {
|
|
5976
|
-
return /* @__PURE__ */ (0,
|
|
6303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Spinner, { className: cn(sizeClass[size], className), style });
|
|
5977
6304
|
}
|
|
5978
6305
|
|
|
5979
6306
|
// src/components/components/Statistic/index.tsx
|
|
5980
|
-
var
|
|
6307
|
+
var import_jsx_runtime113 = require("react/jsx-runtime");
|
|
5981
6308
|
function Statistic({ title, value, precision, suffix, className, style }) {
|
|
5982
6309
|
const display = typeof value === "number" && precision !== void 0 ? value.toFixed(precision) : value;
|
|
5983
|
-
return /* @__PURE__ */ (0,
|
|
5984
|
-
title ? /* @__PURE__ */ (0,
|
|
5985
|
-
/* @__PURE__ */ (0,
|
|
6310
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("div", { "data-slot": "statistic", className: cn(className), style, children: [
|
|
6311
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("div", { "data-slot": "statistic-title", className: "text-sm text-muted-foreground", children: title }) : null,
|
|
6312
|
+
/* @__PURE__ */ (0, import_jsx_runtime113.jsxs)("div", { "data-slot": "statistic-value", className: "text-2xl font-bold tabular-nums", children: [
|
|
5986
6313
|
display,
|
|
5987
|
-
suffix ? /* @__PURE__ */ (0,
|
|
6314
|
+
suffix ? /* @__PURE__ */ (0, import_jsx_runtime113.jsx)("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: suffix }) : null
|
|
5988
6315
|
] })
|
|
5989
6316
|
] });
|
|
5990
6317
|
}
|
|
5991
6318
|
|
|
5992
6319
|
// src/components/components/Switch/index.tsx
|
|
5993
|
-
var
|
|
6320
|
+
var import_react24 = require("react");
|
|
5994
6321
|
|
|
5995
6322
|
// src/ui/switch.tsx
|
|
5996
6323
|
var import_switch = require("@base-ui/react/switch");
|
|
5997
|
-
var
|
|
6324
|
+
var import_jsx_runtime114 = require("react/jsx-runtime");
|
|
5998
6325
|
function Switch({ className, ...props }) {
|
|
5999
|
-
return /* @__PURE__ */ (0,
|
|
6326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
6000
6327
|
import_switch.Switch.Root,
|
|
6001
6328
|
{
|
|
6002
6329
|
"data-slot": "switch",
|
|
6003
6330
|
className: cn(
|
|
6004
|
-
"inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-
|
|
6331
|
+
"inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-(--switch-track-checked) data-unchecked:bg-(--switch-track)",
|
|
6005
6332
|
className
|
|
6006
6333
|
),
|
|
6007
6334
|
...props,
|
|
6008
|
-
children: /* @__PURE__ */ (0,
|
|
6335
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
6009
6336
|
import_switch.Switch.Thumb,
|
|
6010
6337
|
{
|
|
6011
6338
|
"data-slot": "switch-thumb",
|
|
6012
|
-
className: "pointer-events-none block size-4 rounded-full bg-
|
|
6339
|
+
className: "pointer-events-none block size-4 rounded-full bg-(--switch-thumb) transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0"
|
|
6013
6340
|
}
|
|
6014
6341
|
)
|
|
6015
6342
|
}
|
|
@@ -6017,7 +6344,7 @@ function Switch({ className, ...props }) {
|
|
|
6017
6344
|
}
|
|
6018
6345
|
|
|
6019
6346
|
// src/components/components/Switch/index.tsx
|
|
6020
|
-
var
|
|
6347
|
+
var import_jsx_runtime115 = require("react/jsx-runtime");
|
|
6021
6348
|
function Switch2({
|
|
6022
6349
|
name,
|
|
6023
6350
|
label,
|
|
@@ -6029,9 +6356,9 @@ function Switch2({
|
|
|
6029
6356
|
style
|
|
6030
6357
|
}) {
|
|
6031
6358
|
const form = useFormContext();
|
|
6032
|
-
const controlId = (0,
|
|
6359
|
+
const controlId = (0, import_react24.useId)();
|
|
6033
6360
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
6034
|
-
(0,
|
|
6361
|
+
(0, import_react24.useEffect)(() => {
|
|
6035
6362
|
if (inForm && form && name) {
|
|
6036
6363
|
form.registerField(name, rules, value);
|
|
6037
6364
|
return () => form.unregisterField(name);
|
|
@@ -6046,13 +6373,13 @@ function Switch2({
|
|
|
6046
6373
|
}
|
|
6047
6374
|
onChange?.(next);
|
|
6048
6375
|
};
|
|
6049
|
-
const control = /* @__PURE__ */ (0,
|
|
6376
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
|
|
6050
6377
|
"span",
|
|
6051
6378
|
{
|
|
6052
6379
|
className: cn("inline-flex items-center gap-2", !inForm && className),
|
|
6053
6380
|
style: inForm ? void 0 : style,
|
|
6054
6381
|
children: [
|
|
6055
|
-
/* @__PURE__ */ (0,
|
|
6382
|
+
/* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
|
|
6056
6383
|
Switch,
|
|
6057
6384
|
{
|
|
6058
6385
|
id: controlId,
|
|
@@ -6062,12 +6389,12 @@ function Switch2({
|
|
|
6062
6389
|
onCheckedChange: handleChange
|
|
6063
6390
|
}
|
|
6064
6391
|
),
|
|
6065
|
-
label ? /* @__PURE__ */ (0,
|
|
6392
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("label", { htmlFor: controlId, className: "text-sm leading-none font-medium", children: label }) : null
|
|
6066
6393
|
]
|
|
6067
6394
|
}
|
|
6068
6395
|
);
|
|
6069
6396
|
if (inForm && form && name) {
|
|
6070
|
-
return /* @__PURE__ */ (0,
|
|
6397
|
+
return /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(
|
|
6071
6398
|
"div",
|
|
6072
6399
|
{
|
|
6073
6400
|
"data-slot": "form-item",
|
|
@@ -6075,7 +6402,7 @@ function Switch2({
|
|
|
6075
6402
|
style,
|
|
6076
6403
|
children: [
|
|
6077
6404
|
control,
|
|
6078
|
-
form.errors[name] ? /* @__PURE__ */ (0,
|
|
6405
|
+
form.errors[name] ? /* @__PURE__ */ (0, import_jsx_runtime115.jsx)("div", { "data-slot": "form-error", className: "mt-1.5 text-sm text-destructive", children: form.errors[name] }) : null
|
|
6079
6406
|
]
|
|
6080
6407
|
}
|
|
6081
6408
|
);
|
|
@@ -6085,8 +6412,8 @@ function Switch2({
|
|
|
6085
6412
|
|
|
6086
6413
|
// src/components/components/Table/index.tsx
|
|
6087
6414
|
var import_runtime18 = require("@pactor-app/runtime");
|
|
6088
|
-
var
|
|
6089
|
-
var
|
|
6415
|
+
var import_react25 = require("react");
|
|
6416
|
+
var import_jsx_runtime116 = require("react/jsx-runtime");
|
|
6090
6417
|
function renderCellValue2(value) {
|
|
6091
6418
|
if (value === void 0 || value === null) {
|
|
6092
6419
|
return "";
|
|
@@ -6108,7 +6435,7 @@ function Table3({
|
|
|
6108
6435
|
}) {
|
|
6109
6436
|
const { renderChildren } = (0, import_runtime18.useRenderer)();
|
|
6110
6437
|
const { t } = (0, import_runtime18.useI18n)();
|
|
6111
|
-
const [current, setCurrent] = (0,
|
|
6438
|
+
const [current, setCurrent] = (0, import_react25.useState)(1);
|
|
6112
6439
|
const pageSize = pagination === false ? void 0 : pagination?.pageSize;
|
|
6113
6440
|
const total = dataSource.length;
|
|
6114
6441
|
const pageCount = pageSize !== void 0 && pageSize > 0 ? Math.max(1, Math.ceil(total / pageSize)) : 1;
|
|
@@ -6117,17 +6444,17 @@ function Table3({
|
|
|
6117
6444
|
setCurrent(page);
|
|
6118
6445
|
onChange?.({ current: page, pageSize, total });
|
|
6119
6446
|
};
|
|
6120
|
-
return /* @__PURE__ */ (0,
|
|
6121
|
-
loading ? /* @__PURE__ */ (0,
|
|
6447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)("div", { "data-slot": "dsl-table", className: cn("relative", className), style, children: [
|
|
6448
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
6122
6449
|
"div",
|
|
6123
6450
|
{
|
|
6124
6451
|
"data-slot": "table-loading",
|
|
6125
|
-
className: "absolute inset-0 z-10 flex items-center justify-center bg-
|
|
6452
|
+
className: "absolute inset-0 z-10 flex items-center justify-center bg-card/60 text-sm text-muted-foreground",
|
|
6126
6453
|
children: t("pactor.table.loading")
|
|
6127
6454
|
}
|
|
6128
6455
|
) : null,
|
|
6129
|
-
/* @__PURE__ */ (0,
|
|
6130
|
-
/* @__PURE__ */ (0,
|
|
6456
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Table2, { children: [
|
|
6457
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableRow, { className: "hover:bg-transparent", children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
6131
6458
|
TableHead,
|
|
6132
6459
|
{
|
|
6133
6460
|
style: column.width !== void 0 ? { width: column.width } : void 0,
|
|
@@ -6135,7 +6462,7 @@ function Table3({
|
|
|
6135
6462
|
},
|
|
6136
6463
|
column.dataIndex ?? String(index)
|
|
6137
6464
|
)) }) }),
|
|
6138
|
-
/* @__PURE__ */ (0,
|
|
6465
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableBody, { children: pageRows.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableRow, { className: "hover:bg-transparent", children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableCell, { colSpan: Math.max(1, columns.length), children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
6139
6466
|
"div",
|
|
6140
6467
|
{
|
|
6141
6468
|
"data-slot": "table-empty",
|
|
@@ -6144,10 +6471,10 @@ function Table3({
|
|
|
6144
6471
|
}
|
|
6145
6472
|
) }) }) : pageRows.map((row, rowIndex) => {
|
|
6146
6473
|
const key = row[rowKey];
|
|
6147
|
-
return /* @__PURE__ */ (0,
|
|
6474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
6148
6475
|
TableRow,
|
|
6149
6476
|
{
|
|
6150
|
-
children: columns.map((column, columnIndex) => /* @__PURE__ */ (0,
|
|
6477
|
+
children: columns.map((column, columnIndex) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(TableCell, { children: column.cell ? renderChildren([column.cell], { row, rowIndex }) : renderCellValue2(
|
|
6151
6478
|
column.dataIndex === void 0 ? void 0 : row[column.dataIndex]
|
|
6152
6479
|
) }, column.dataIndex ?? String(columnIndex)))
|
|
6153
6480
|
},
|
|
@@ -6155,8 +6482,8 @@ function Table3({
|
|
|
6155
6482
|
);
|
|
6156
6483
|
}) })
|
|
6157
6484
|
] }),
|
|
6158
|
-
pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0,
|
|
6159
|
-
(page) => /* @__PURE__ */ (0,
|
|
6485
|
+
pageSize !== void 0 && pageSize > 0 ? /* @__PURE__ */ (0, import_jsx_runtime116.jsx)("div", { "data-slot": "table-pagination", className: "mt-3 flex justify-end gap-1", children: Array.from({ length: pageCount }, (_, index) => index + 1).map(
|
|
6486
|
+
(page) => /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(
|
|
6160
6487
|
Button,
|
|
6161
6488
|
{
|
|
6162
6489
|
type: "button",
|
|
@@ -6177,12 +6504,12 @@ var import_runtime19 = require("@pactor-app/runtime");
|
|
|
6177
6504
|
|
|
6178
6505
|
// src/ui/tabs.tsx
|
|
6179
6506
|
var import_tabs = require("@base-ui/react/tabs");
|
|
6180
|
-
var
|
|
6507
|
+
var import_jsx_runtime117 = require("react/jsx-runtime");
|
|
6181
6508
|
function Tabs({
|
|
6182
6509
|
className,
|
|
6183
6510
|
...props
|
|
6184
6511
|
}) {
|
|
6185
|
-
return /* @__PURE__ */ (0,
|
|
6512
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
6186
6513
|
import_tabs.Tabs.Root,
|
|
6187
6514
|
{
|
|
6188
6515
|
"data-slot": "tabs",
|
|
@@ -6195,7 +6522,7 @@ function TabsList({
|
|
|
6195
6522
|
className,
|
|
6196
6523
|
...props
|
|
6197
6524
|
}) {
|
|
6198
|
-
return /* @__PURE__ */ (0,
|
|
6525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
6199
6526
|
import_tabs.Tabs.List,
|
|
6200
6527
|
{
|
|
6201
6528
|
"data-slot": "tabs-list",
|
|
@@ -6211,12 +6538,12 @@ function TabsTrigger({
|
|
|
6211
6538
|
className,
|
|
6212
6539
|
...props
|
|
6213
6540
|
}) {
|
|
6214
|
-
return /* @__PURE__ */ (0,
|
|
6541
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
6215
6542
|
import_tabs.Tabs.Tab,
|
|
6216
6543
|
{
|
|
6217
6544
|
"data-slot": "tabs-trigger",
|
|
6218
6545
|
className: cn(
|
|
6219
|
-
"inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-
|
|
6546
|
+
"inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-card data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
6220
6547
|
className
|
|
6221
6548
|
),
|
|
6222
6549
|
...props
|
|
@@ -6227,7 +6554,7 @@ function TabsContent({
|
|
|
6227
6554
|
className,
|
|
6228
6555
|
...props
|
|
6229
6556
|
}) {
|
|
6230
|
-
return /* @__PURE__ */ (0,
|
|
6557
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
6231
6558
|
import_tabs.Tabs.Panel,
|
|
6232
6559
|
{
|
|
6233
6560
|
"data-slot": "tabs-content",
|
|
@@ -6238,10 +6565,10 @@ function TabsContent({
|
|
|
6238
6565
|
}
|
|
6239
6566
|
|
|
6240
6567
|
// src/components/components/Tabs/index.tsx
|
|
6241
|
-
var
|
|
6568
|
+
var import_jsx_runtime118 = require("react/jsx-runtime");
|
|
6242
6569
|
function Tabs2({ items = [], activeKey, onChange, className, style }) {
|
|
6243
6570
|
const { renderChildren } = (0, import_runtime19.useRenderer)();
|
|
6244
|
-
return /* @__PURE__ */ (0,
|
|
6571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
|
|
6245
6572
|
Tabs,
|
|
6246
6573
|
{
|
|
6247
6574
|
value: activeKey,
|
|
@@ -6250,20 +6577,20 @@ function Tabs2({ items = [], activeKey, onChange, className, style }) {
|
|
|
6250
6577
|
className,
|
|
6251
6578
|
style,
|
|
6252
6579
|
children: [
|
|
6253
|
-
/* @__PURE__ */ (0,
|
|
6254
|
-
items.map((item) => /* @__PURE__ */ (0,
|
|
6580
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsList, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsTrigger, { value: item.key, children: item.label }, item.key)) }),
|
|
6581
|
+
items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TabsContent, { value: item.key, children: renderChildren(item.children) }, item.key))
|
|
6255
6582
|
]
|
|
6256
6583
|
}
|
|
6257
6584
|
);
|
|
6258
6585
|
}
|
|
6259
6586
|
|
|
6260
6587
|
// src/components/components/Text/index.tsx
|
|
6261
|
-
var
|
|
6588
|
+
var import_jsx_runtime119 = require("react/jsx-runtime");
|
|
6262
6589
|
var typeClassMap = {
|
|
6263
6590
|
default: "",
|
|
6264
6591
|
secondary: "text-muted-foreground",
|
|
6265
|
-
success: "text-
|
|
6266
|
-
warning: "text-
|
|
6592
|
+
success: "text-success",
|
|
6593
|
+
warning: "text-warning",
|
|
6267
6594
|
danger: "text-destructive"
|
|
6268
6595
|
};
|
|
6269
6596
|
function Text({
|
|
@@ -6277,7 +6604,7 @@ function Text({
|
|
|
6277
6604
|
style,
|
|
6278
6605
|
children
|
|
6279
6606
|
}) {
|
|
6280
|
-
return /* @__PURE__ */ (0,
|
|
6607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(
|
|
6281
6608
|
"span",
|
|
6282
6609
|
{
|
|
6283
6610
|
"data-slot": "text",
|
|
@@ -6297,8 +6624,8 @@ function Text({
|
|
|
6297
6624
|
}
|
|
6298
6625
|
|
|
6299
6626
|
// src/components/components/Textarea/index.tsx
|
|
6300
|
-
var
|
|
6301
|
-
var
|
|
6627
|
+
var import_react26 = require("react");
|
|
6628
|
+
var import_jsx_runtime120 = require("react/jsx-runtime");
|
|
6302
6629
|
function Textarea2({
|
|
6303
6630
|
name,
|
|
6304
6631
|
label,
|
|
@@ -6312,9 +6639,9 @@ function Textarea2({
|
|
|
6312
6639
|
style
|
|
6313
6640
|
}) {
|
|
6314
6641
|
const form = useFormContext();
|
|
6315
|
-
const controlId = (0,
|
|
6642
|
+
const controlId = (0, import_react26.useId)();
|
|
6316
6643
|
const inForm = form?.inForm === true && typeof name === "string" && name !== "";
|
|
6317
|
-
(0,
|
|
6644
|
+
(0, import_react26.useEffect)(() => {
|
|
6318
6645
|
if (inForm && form && name) {
|
|
6319
6646
|
form.registerField(name, rules, value);
|
|
6320
6647
|
return () => form.unregisterField(name);
|
|
@@ -6323,7 +6650,7 @@ function Textarea2({
|
|
|
6323
6650
|
});
|
|
6324
6651
|
if (inForm && form && name) {
|
|
6325
6652
|
const fieldValue = form.values[name];
|
|
6326
|
-
return /* @__PURE__ */ (0,
|
|
6653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
6327
6654
|
FieldShell,
|
|
6328
6655
|
{
|
|
6329
6656
|
layout: form.layout,
|
|
@@ -6332,7 +6659,7 @@ function Textarea2({
|
|
|
6332
6659
|
error: form.errors[name],
|
|
6333
6660
|
className,
|
|
6334
6661
|
style,
|
|
6335
|
-
children: /* @__PURE__ */ (0,
|
|
6662
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
6336
6663
|
Textarea,
|
|
6337
6664
|
{
|
|
6338
6665
|
id: controlId,
|
|
@@ -6349,7 +6676,7 @@ function Textarea2({
|
|
|
6349
6676
|
}
|
|
6350
6677
|
);
|
|
6351
6678
|
}
|
|
6352
|
-
return /* @__PURE__ */ (0,
|
|
6679
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
6353
6680
|
Textarea,
|
|
6354
6681
|
{
|
|
6355
6682
|
value: value ?? "",
|
|
@@ -6365,9 +6692,9 @@ function Textarea2({
|
|
|
6365
6692
|
|
|
6366
6693
|
// src/ui/toggle.tsx
|
|
6367
6694
|
var import_toggle = require("@base-ui/react/toggle");
|
|
6368
|
-
var
|
|
6369
|
-
var
|
|
6370
|
-
var toggleVariants = (0,
|
|
6695
|
+
var import_class_variance_authority7 = require("class-variance-authority");
|
|
6696
|
+
var import_jsx_runtime121 = require("react/jsx-runtime");
|
|
6697
|
+
var toggleVariants = (0, import_class_variance_authority7.cva)(
|
|
6371
6698
|
"inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-pressed:bg-accent data-pressed:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
6372
6699
|
{
|
|
6373
6700
|
variants: {
|
|
@@ -6393,7 +6720,7 @@ function Toggle({
|
|
|
6393
6720
|
size,
|
|
6394
6721
|
...props
|
|
6395
6722
|
}) {
|
|
6396
|
-
return /* @__PURE__ */ (0,
|
|
6723
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
6397
6724
|
import_toggle.Toggle,
|
|
6398
6725
|
{
|
|
6399
6726
|
"data-slot": "toggle",
|
|
@@ -6404,7 +6731,7 @@ function Toggle({
|
|
|
6404
6731
|
}
|
|
6405
6732
|
|
|
6406
6733
|
// src/components/components/Toggle/index.tsx
|
|
6407
|
-
var
|
|
6734
|
+
var import_jsx_runtime122 = require("react/jsx-runtime");
|
|
6408
6735
|
function Toggle2({
|
|
6409
6736
|
text,
|
|
6410
6737
|
pressed,
|
|
@@ -6415,7 +6742,7 @@ function Toggle2({
|
|
|
6415
6742
|
className,
|
|
6416
6743
|
style
|
|
6417
6744
|
}) {
|
|
6418
|
-
return /* @__PURE__ */ (0,
|
|
6745
|
+
return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
6419
6746
|
Toggle,
|
|
6420
6747
|
{
|
|
6421
6748
|
pressed,
|
|
@@ -6433,9 +6760,9 @@ function Toggle2({
|
|
|
6433
6760
|
// src/ui/toggle-group.tsx
|
|
6434
6761
|
var import_toggle3 = require("@base-ui/react/toggle");
|
|
6435
6762
|
var import_toggle_group = require("@base-ui/react/toggle-group");
|
|
6436
|
-
var
|
|
6437
|
-
var
|
|
6438
|
-
var ToggleGroupContext =
|
|
6763
|
+
var React5 = __toESM(require("react"), 1);
|
|
6764
|
+
var import_jsx_runtime123 = require("react/jsx-runtime");
|
|
6765
|
+
var ToggleGroupContext = React5.createContext({
|
|
6439
6766
|
size: "default",
|
|
6440
6767
|
variant: "default"
|
|
6441
6768
|
});
|
|
@@ -6446,7 +6773,7 @@ function ToggleGroup({
|
|
|
6446
6773
|
children,
|
|
6447
6774
|
...props
|
|
6448
6775
|
}) {
|
|
6449
|
-
return /* @__PURE__ */ (0,
|
|
6776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
6450
6777
|
import_toggle_group.ToggleGroup,
|
|
6451
6778
|
{
|
|
6452
6779
|
"data-slot": "toggle-group",
|
|
@@ -6457,7 +6784,7 @@ function ToggleGroup({
|
|
|
6457
6784
|
className
|
|
6458
6785
|
),
|
|
6459
6786
|
...props,
|
|
6460
|
-
children: /* @__PURE__ */ (0,
|
|
6787
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
6461
6788
|
}
|
|
6462
6789
|
);
|
|
6463
6790
|
}
|
|
@@ -6468,8 +6795,8 @@ function ToggleGroupItem({
|
|
|
6468
6795
|
size,
|
|
6469
6796
|
...props
|
|
6470
6797
|
}) {
|
|
6471
|
-
const context =
|
|
6472
|
-
return /* @__PURE__ */ (0,
|
|
6798
|
+
const context = React5.useContext(ToggleGroupContext);
|
|
6799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
6473
6800
|
import_toggle3.Toggle,
|
|
6474
6801
|
{
|
|
6475
6802
|
"data-slot": "toggle-group-item",
|
|
@@ -6490,7 +6817,7 @@ function ToggleGroupItem({
|
|
|
6490
6817
|
}
|
|
6491
6818
|
|
|
6492
6819
|
// src/components/components/ToggleGroup/index.tsx
|
|
6493
|
-
var
|
|
6820
|
+
var import_jsx_runtime124 = require("react/jsx-runtime");
|
|
6494
6821
|
function ToggleGroup2({
|
|
6495
6822
|
options = [],
|
|
6496
6823
|
value,
|
|
@@ -6510,7 +6837,7 @@ function ToggleGroup2({
|
|
|
6510
6837
|
onChange?.(added ?? void 0);
|
|
6511
6838
|
}
|
|
6512
6839
|
};
|
|
6513
|
-
return /* @__PURE__ */ (0,
|
|
6840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
6514
6841
|
ToggleGroup,
|
|
6515
6842
|
{
|
|
6516
6843
|
value: groupValue,
|
|
@@ -6519,7 +6846,7 @@ function ToggleGroup2({
|
|
|
6519
6846
|
onValueChange: (next) => handleChange(next),
|
|
6520
6847
|
className,
|
|
6521
6848
|
style,
|
|
6522
|
-
children: options.map((option) => /* @__PURE__ */ (0,
|
|
6849
|
+
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
|
|
6523
6850
|
ToggleGroupItem,
|
|
6524
6851
|
{
|
|
6525
6852
|
value: option.value,
|
|
@@ -6533,18 +6860,18 @@ function ToggleGroup2({
|
|
|
6533
6860
|
}
|
|
6534
6861
|
|
|
6535
6862
|
// src/components/components/Tooltip/index.tsx
|
|
6536
|
-
var
|
|
6863
|
+
var import_jsx_runtime125 = require("react/jsx-runtime");
|
|
6537
6864
|
function Tooltip3({ content, children, className, style }) {
|
|
6538
|
-
return /* @__PURE__ */ (0,
|
|
6539
|
-
/* @__PURE__ */ (0,
|
|
6540
|
-
/* @__PURE__ */ (0,
|
|
6865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Tooltip2, { children: [
|
|
6866
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(TooltipTrigger, { render: triggerWrapper("tooltip-trigger-wrap"), children }),
|
|
6867
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(TooltipContent, { className, style, children: content })
|
|
6541
6868
|
] });
|
|
6542
6869
|
}
|
|
6543
6870
|
|
|
6544
6871
|
// src/ui/typography.tsx
|
|
6545
|
-
var
|
|
6546
|
-
var
|
|
6547
|
-
var typographyVariants = (0,
|
|
6872
|
+
var import_class_variance_authority8 = require("class-variance-authority");
|
|
6873
|
+
var import_jsx_runtime126 = require("react/jsx-runtime");
|
|
6874
|
+
var typographyVariants = (0, import_class_variance_authority8.cva)("", {
|
|
6548
6875
|
variants: {
|
|
6549
6876
|
variant: {
|
|
6550
6877
|
h1: "scroll-m-20 text-4xl font-extrabold tracking-tight text-balance",
|
|
@@ -6579,7 +6906,7 @@ var variantTagMap = {
|
|
|
6579
6906
|
};
|
|
6580
6907
|
function Typography({ className, variant = "p", ...props }) {
|
|
6581
6908
|
const Tag2 = variantTagMap[variant ?? "p"];
|
|
6582
|
-
return /* @__PURE__ */ (0,
|
|
6909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
|
|
6583
6910
|
Tag2,
|
|
6584
6911
|
{
|
|
6585
6912
|
"data-slot": "typography",
|
|
@@ -6591,18 +6918,18 @@ function Typography({ className, variant = "p", ...props }) {
|
|
|
6591
6918
|
}
|
|
6592
6919
|
|
|
6593
6920
|
// src/components/components/Typography/index.tsx
|
|
6594
|
-
var
|
|
6921
|
+
var import_jsx_runtime127 = require("react/jsx-runtime");
|
|
6595
6922
|
function Typography2({
|
|
6596
6923
|
variant = "p",
|
|
6597
6924
|
text,
|
|
6598
6925
|
className,
|
|
6599
6926
|
style
|
|
6600
6927
|
}) {
|
|
6601
|
-
return /* @__PURE__ */ (0,
|
|
6928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typography, { variant, className, style, children: text });
|
|
6602
6929
|
}
|
|
6603
6930
|
|
|
6604
6931
|
// src/components/register.ts
|
|
6605
|
-
var
|
|
6932
|
+
var builtinComponents = {
|
|
6606
6933
|
Page,
|
|
6607
6934
|
Grid,
|
|
6608
6935
|
Flex,
|
|
@@ -6682,14 +7009,14 @@ var shadcnComponents = {
|
|
|
6682
7009
|
// 图标(lucide 白名单)
|
|
6683
7010
|
Icon
|
|
6684
7011
|
};
|
|
6685
|
-
function
|
|
6686
|
-
for (const [type, component] of Object.entries(
|
|
7012
|
+
function registerBuiltinComponents(registry) {
|
|
7013
|
+
for (const [type, component] of Object.entries(builtinComponents)) {
|
|
6687
7014
|
registry.register(type, component);
|
|
6688
7015
|
}
|
|
6689
7016
|
}
|
|
6690
|
-
function
|
|
7017
|
+
function createComponentRegistry() {
|
|
6691
7018
|
const registry = new import_core2.Registry("ComponentRegistry");
|
|
6692
|
-
|
|
7019
|
+
registerBuiltinComponents(registry);
|
|
6693
7020
|
return registry;
|
|
6694
7021
|
}
|
|
6695
7022
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -6707,6 +7034,7 @@ function createShadcnComponentRegistry() {
|
|
|
6707
7034
|
Card,
|
|
6708
7035
|
Carousel,
|
|
6709
7036
|
Chart,
|
|
7037
|
+
ChatInput,
|
|
6710
7038
|
Checkbox,
|
|
6711
7039
|
Collapsible,
|
|
6712
7040
|
Combobox,
|
|
@@ -6765,10 +7093,10 @@ function createShadcnComponentRegistry() {
|
|
|
6765
7093
|
ToggleGroup,
|
|
6766
7094
|
Tooltip,
|
|
6767
7095
|
Typography,
|
|
6768
|
-
|
|
7096
|
+
builtinComponents,
|
|
7097
|
+
createComponentRegistry,
|
|
6769
7098
|
normalizeIconName,
|
|
6770
|
-
|
|
6771
|
-
shadcnComponents,
|
|
7099
|
+
registerBuiltinComponents,
|
|
6772
7100
|
useFormContext,
|
|
6773
7101
|
useSidebarDrawer
|
|
6774
7102
|
});
|