@powered-by-array/ui 1.30.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 +163 -0
- package/dist/components/alert-dialog.d.ts +20 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +40 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/avatar.d.ts +7 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +15 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +24 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +12 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +29 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +14 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +36 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +9 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +77 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.d.ts +10 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +26 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/chart.d.ts +57 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +123 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/collapsible.d.ts +7 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +14 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +43 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +171 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/dialog.d.ts +20 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +35 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +38 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +53 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/input.d.ts +4 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +8 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +5 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +9 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/nav-item.d.ts +24 -0
- package/dist/components/nav-item.d.ts.map +1 -0
- package/dist/components/nav-item.js +110 -0
- package/dist/components/nav-item.js.map +1 -0
- package/dist/components/nav-list-item.d.ts +28 -0
- package/dist/components/nav-list-item.d.ts.map +1 -0
- package/dist/components/nav-list-item.js +123 -0
- package/dist/components/nav-list-item.js.map +1 -0
- package/dist/components/nav-menu-context.d.ts +11 -0
- package/dist/components/nav-menu-context.d.ts.map +1 -0
- package/dist/components/nav-menu-context.js +11 -0
- package/dist/components/nav-menu-context.js.map +1 -0
- package/dist/components/nav-menu-primitives.d.ts +37 -0
- package/dist/components/nav-menu-primitives.d.ts.map +1 -0
- package/dist/components/nav-menu-primitives.js +71 -0
- package/dist/components/nav-menu-primitives.js.map +1 -0
- package/dist/components/nav-menu.d.ts +9 -0
- package/dist/components/nav-menu.d.ts.map +1 -0
- package/dist/components/nav-menu.js +5 -0
- package/dist/components/nav-menu.js.map +1 -0
- package/dist/components/nav-profile-item.d.ts +17 -0
- package/dist/components/nav-profile-item.d.ts.map +1 -0
- package/dist/components/nav-profile-item.js +16 -0
- package/dist/components/nav-profile-item.js.map +1 -0
- package/dist/components/pagination.d.ts +14 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +31 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +7 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +12 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +44 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +9 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +18 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +41 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +71 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +218 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +4 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +8 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/sonner.d.ts +7 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +22 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/switch.d.ts +5 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +9 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +29 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +25 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +34 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tooltip.d.ts +8 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +18 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/hooks/use-is-mobile.d.ts +6 -0
- package/dist/hooks/use-is-mobile.d.ts.map +1 -0
- package/dist/hooks/use-is-mobile.js +20 -0
- package/dist/hooks/use-is-mobile.js.map +1 -0
- package/dist/index.d.ts +1166 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +6 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/logos/index.d.ts +21 -0
- package/dist/logos/index.d.ts.map +1 -0
- package/dist/logos/index.js +81 -0
- package/dist/logos/index.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
3
|
+
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
function DropdownMenu({ ...props }) {
|
|
7
|
+
return _jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
8
|
+
}
|
|
9
|
+
function DropdownMenuPortal({ ...props }) {
|
|
10
|
+
return _jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
|
|
11
|
+
}
|
|
12
|
+
function DropdownMenuTrigger({ ...props }) {
|
|
13
|
+
return (_jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", suppressHydrationWarning: true, ...props }));
|
|
14
|
+
}
|
|
15
|
+
function DropdownMenuContent({ className, sideOffset = 4, priority = false, ...props }) {
|
|
16
|
+
const content = (_jsx(DropdownMenuPrimitive.Content, { "data-slot": "dropdown-menu-content", sideOffset: sideOffset, className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[80] max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-3 shadow-md", className), ...props }));
|
|
17
|
+
return (_jsx(DropdownMenuPrimitive.Portal, { children: priority ? _jsx("div", { className: "relative z-[80]", children: content }) : content }));
|
|
18
|
+
}
|
|
19
|
+
function DropdownMenuGroup({ ...props }) {
|
|
20
|
+
return _jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
21
|
+
}
|
|
22
|
+
function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
23
|
+
return (_jsx(DropdownMenuPrimitive.Item, { "data-slot": "dropdown-menu-item", "data-inset": inset, "data-variant": variant, className: cn("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground focus:bg-accent focus:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
|
|
24
|
+
}
|
|
25
|
+
function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
|
|
26
|
+
return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { "data-slot": "dropdown-menu-checkbox-item", className: cn("relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, { className: "size-4" }) }) }), children] }));
|
|
27
|
+
}
|
|
28
|
+
function DropdownMenuRadioGroup({ ...props }) {
|
|
29
|
+
return _jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
|
|
30
|
+
}
|
|
31
|
+
function DropdownMenuRadioItem({ className, children, ...props }) {
|
|
32
|
+
return (_jsxs(DropdownMenuPrimitive.RadioItem, { "data-slot": "dropdown-menu-radio-item", className: cn("relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CircleIcon, { className: "size-2 fill-current" }) }) }), children] }));
|
|
33
|
+
}
|
|
34
|
+
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
35
|
+
return (_jsx(DropdownMenuPrimitive.Label, { "data-slot": "dropdown-menu-label", "data-inset": inset, className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className), ...props }));
|
|
36
|
+
}
|
|
37
|
+
function DropdownMenuSeparator({ className, ...props }) {
|
|
38
|
+
return (_jsx(DropdownMenuPrimitive.Separator, { "data-slot": "dropdown-menu-separator", className: cn("mx-2 my-1 h-px bg-border px-2", className), ...props }));
|
|
39
|
+
}
|
|
40
|
+
function DropdownMenuShortcut({ className, ...props }) {
|
|
41
|
+
return (_jsx("span", { "data-slot": "dropdown-menu-shortcut", className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props }));
|
|
42
|
+
}
|
|
43
|
+
function DropdownMenuSub({ ...props }) {
|
|
44
|
+
return _jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
45
|
+
}
|
|
46
|
+
function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
47
|
+
return (_jsxs(DropdownMenuPrimitive.SubTrigger, { "data-slot": "dropdown-menu-sub-trigger", "data-inset": inset, className: cn("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto size-4" })] }));
|
|
48
|
+
}
|
|
49
|
+
function DropdownMenuSubContent({ className, ...props }) {
|
|
50
|
+
return (_jsx(DropdownMenuPrimitive.SubContent, { "data-slot": "dropdown-menu-sub-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[80] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className), ...props }));
|
|
51
|
+
}
|
|
52
|
+
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, };
|
|
53
|
+
//# sourceMappingURL=dropdown-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAc1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
function Input({ className, type, ...props }) {
|
|
5
|
+
return (_jsx("input", { type: type, "data-slot": "input", className: cn("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className), ...props }));
|
|
6
|
+
}
|
|
7
|
+
export { Input };
|
|
8
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,gBACE,IAAI,EAAE,IAAI,eACA,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,icAAic,EACjc,+EAA+E,EAC/E,wGAAwG,EACxG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { Label };
|
|
5
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,2CAWvF;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
function Label({ className, ...props }) {
|
|
6
|
+
return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
|
|
7
|
+
}
|
|
8
|
+
export { Label };
|
|
9
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAoD;IACtF,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,iBACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const navItemVariants: (props?: ({
|
|
4
|
+
kind?: "default" | "dropdown" | "redirect" | "section-toggle" | null | undefined;
|
|
5
|
+
active?: boolean | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
type NavItemBaseProps = VariantProps<typeof navItemVariants> & {
|
|
8
|
+
icon?: React.ReactNode;
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
label?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
};
|
|
13
|
+
type NavItemAsButton = NavItemBaseProps & Omit<React.ComponentProps<"button">, "children" | "type"> & {
|
|
14
|
+
href?: undefined;
|
|
15
|
+
type?: "button" | "submit" | "reset";
|
|
16
|
+
};
|
|
17
|
+
type NavItemAsLink = NavItemBaseProps & Omit<React.ComponentProps<"a">, "children" | "href"> & {
|
|
18
|
+
href: string;
|
|
19
|
+
};
|
|
20
|
+
type NavItemProps = NavItemAsButton | NavItemAsLink;
|
|
21
|
+
declare function NavItem(props: NavItemProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export { NavItem, navItemVariants };
|
|
23
|
+
export type { NavItemProps };
|
|
24
|
+
//# sourceMappingURL=nav-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-item.d.ts","sourceRoot":"","sources":["../../src/components/nav-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,QAAA,MAAM,eAAe;;;8EAqDpB,CAAC;AAEF,KAAK,gBAAgB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,GAAG;IAC7D,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG,gBAAgB,GACrC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IAC1D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEJ,KAAK,aAAa,GAAG,gBAAgB,GACnC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACrD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,KAAK,YAAY,GAAG,eAAe,GAAG,aAAa,CAAC;AAEpD,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,2CAsJnC;AAED,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { ChevronDown, ChevronRight, ExternalLink } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
|
|
7
|
+
import { useNavMenu } from "./nav-menu-context.js";
|
|
8
|
+
const navItemVariants = cva([
|
|
9
|
+
"group/nav-item relative flex h-9 w-full min-w-0 items-center rounded-xl text-left text-sm leading-none outline-none transition-colors",
|
|
10
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
11
|
+
"ring-sidebar-ring focus-visible:ring-2",
|
|
12
|
+
"group-data-[state=collapsed]/nav:justify-center group-data-[state=collapsed]/nav:gap-0",
|
|
13
|
+
].join(" "), {
|
|
14
|
+
variants: {
|
|
15
|
+
kind: {
|
|
16
|
+
default: "",
|
|
17
|
+
dropdown: "",
|
|
18
|
+
redirect: "",
|
|
19
|
+
"section-toggle": "group-data-[state=collapsed]/nav:hidden",
|
|
20
|
+
},
|
|
21
|
+
active: {
|
|
22
|
+
true: [
|
|
23
|
+
"gap-2 bg-[image:var(--nav-active-row-gradient)] font-medium text-sidebar-accent-foreground",
|
|
24
|
+
"pr-3 group-data-[state=collapsed]/nav:pr-0",
|
|
25
|
+
].join(" "),
|
|
26
|
+
false: [
|
|
27
|
+
"gap-2 pr-3 font-light text-sidebar-foreground/80 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
28
|
+
"group-data-[state=collapsed]/nav:justify-center group-data-[state=collapsed]/nav:pl-0 group-data-[state=collapsed]/nav:pr-0",
|
|
29
|
+
].join(" "),
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
compoundVariants: [
|
|
33
|
+
{
|
|
34
|
+
kind: ["default", "dropdown", "redirect"],
|
|
35
|
+
active: true,
|
|
36
|
+
class: "pl-0",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
kind: ["default", "dropdown", "redirect"],
|
|
40
|
+
active: false,
|
|
41
|
+
class: "group-data-[state=expanded]/nav:pl-0",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
kind: "section-toggle",
|
|
45
|
+
active: true,
|
|
46
|
+
class: "group-data-[state=expanded]/nav:pl-[9px] group-data-[state=collapsed]/nav:pl-0",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
kind: "section-toggle",
|
|
50
|
+
active: false,
|
|
51
|
+
class: "group-data-[state=expanded]/nav:pl-[9px]",
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
defaultVariants: {
|
|
55
|
+
kind: "default",
|
|
56
|
+
active: false,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
function NavItem(props) {
|
|
60
|
+
const { expanded } = useNavMenu();
|
|
61
|
+
const { className, kind = "default", active = false, icon, children, label, "aria-label": ariaLabelProp, "aria-expanded": ariaExpanded, ...rest } = props;
|
|
62
|
+
const isLink = "href" in props && typeof props.href === "string";
|
|
63
|
+
const sectionToggleChevron = kind === "section-toggle" ? (_jsx(ChevronDown, { "aria-hidden": true, className: cn("size-3.5 shrink-0 text-sidebar-foreground/80 transition-transform", ariaExpanded === false && "-rotate-90"), "data-slot": "nav-menu-item-leading" })) : null;
|
|
64
|
+
const trailing = (() => {
|
|
65
|
+
if (kind === "dropdown") {
|
|
66
|
+
return (_jsx(ChevronRight, { "aria-hidden": true, className: "size-3.5 shrink-0 text-sidebar-accent-foreground", "data-slot": "nav-menu-item-trailing" }));
|
|
67
|
+
}
|
|
68
|
+
if (kind === "redirect") {
|
|
69
|
+
return (_jsx(ExternalLink, { "aria-hidden": true, className: "size-3.5 shrink-0 text-sidebar-foreground/80", "data-slot": "nav-menu-item-trailing" }));
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
})();
|
|
73
|
+
const labelText = label ?? (typeof children === "string" ? children : undefined);
|
|
74
|
+
const iconSlot = (() => {
|
|
75
|
+
if (!icon)
|
|
76
|
+
return null;
|
|
77
|
+
if (active) {
|
|
78
|
+
return (_jsx("span", { "data-slot": "nav-menu-item-icon-avatar", className: cn("flex size-9 shrink-0 items-center justify-center rounded-xl bg-[image:var(--nav-active-gradient)] text-sidebar-primary-foreground", "[&_svg]:size-[18px]"), children: icon }));
|
|
79
|
+
}
|
|
80
|
+
return (_jsx("span", { "data-slot": "nav-menu-item-icon", className: "flex size-9 shrink-0 items-center justify-center text-sidebar-foreground/80 [&_svg]:size-3.5", children: icon }));
|
|
81
|
+
})();
|
|
82
|
+
const iconColumn = iconSlot;
|
|
83
|
+
const inner = (_jsxs(_Fragment, { children: [iconColumn, _jsxs("span", { "data-slot": "nav-menu-item-label", className: cn("min-w-0 flex-1 group-data-[state=collapsed]/nav:hidden", sectionToggleChevron ? "flex items-center gap-1" : "truncate"), children: [_jsx("span", { className: sectionToggleChevron ? "truncate" : undefined, children: children }), sectionToggleChevron] }), trailing ? (_jsx("span", { "data-slot": "nav-menu-item-trailing-slot", className: "flex shrink-0 items-center group-data-[state=collapsed]/nav:hidden", children: trailing })) : null] }));
|
|
84
|
+
const sharedProps = {
|
|
85
|
+
"data-slot": "nav-menu-item",
|
|
86
|
+
"data-active": active ? "true" : undefined,
|
|
87
|
+
"data-kind": kind,
|
|
88
|
+
"aria-label": ariaLabelProp ?? labelText,
|
|
89
|
+
...(typeof ariaExpanded === "boolean" ? { "aria-expanded": ariaExpanded } : {}),
|
|
90
|
+
className: cn(navItemVariants({ kind, active }), className),
|
|
91
|
+
};
|
|
92
|
+
let content;
|
|
93
|
+
if (isLink) {
|
|
94
|
+
const linkProps = rest;
|
|
95
|
+
const externalProps = kind === "redirect"
|
|
96
|
+
? { target: linkProps.target ?? "_blank", rel: linkProps.rel ?? "noreferrer" }
|
|
97
|
+
: {};
|
|
98
|
+
content = (_jsx("a", { ...sharedProps, href: props.href, "aria-current": active ? "page" : undefined, ...linkProps, ...externalProps, children: inner }));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const { type = "button", ...buttonProps } = rest;
|
|
102
|
+
content = (_jsx("button", { ...sharedProps, type: type, "aria-pressed": active ? true : undefined, ...buttonProps, children: inner }));
|
|
103
|
+
}
|
|
104
|
+
if (!expanded && labelText && kind !== "section-toggle") {
|
|
105
|
+
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: content }), _jsx(TooltipContent, { side: "right", children: labelText })] }));
|
|
106
|
+
}
|
|
107
|
+
return content;
|
|
108
|
+
}
|
|
109
|
+
export { NavItem, navItemVariants };
|
|
110
|
+
//# sourceMappingURL=nav-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-item.js","sourceRoot":"","sources":["../../src/components/nav-item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const navListItemVariants: (props?: ({
|
|
4
|
+
kind?: "thread" | "active" | "label" | "view-all" | null | undefined;
|
|
5
|
+
tone?: "default" | "stale" | null | undefined;
|
|
6
|
+
hasStatus?: boolean | null | undefined;
|
|
7
|
+
hasIcon?: boolean | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
type NavListItemStatus = "working" | "needs-input" | "finished";
|
|
10
|
+
type NavListItemTone = "default" | "stale";
|
|
11
|
+
type NavListItemBaseProps = Pick<VariantProps<typeof navListItemVariants>, "kind" | "tone"> & {
|
|
12
|
+
icon?: React.ReactNode;
|
|
13
|
+
status?: NavListItemStatus;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
};
|
|
17
|
+
type NavListItemAsButton = NavListItemBaseProps & Omit<React.ComponentProps<"button">, "children" | "type"> & {
|
|
18
|
+
href?: undefined;
|
|
19
|
+
type?: "button" | "submit" | "reset";
|
|
20
|
+
};
|
|
21
|
+
type NavListItemAsLink = NavListItemBaseProps & Omit<React.ComponentProps<"a">, "children" | "href"> & {
|
|
22
|
+
href: string;
|
|
23
|
+
};
|
|
24
|
+
type NavListItemProps = NavListItemAsButton | NavListItemAsLink;
|
|
25
|
+
declare function NavListItem(props: NavListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export { NavListItem, navListItemVariants };
|
|
27
|
+
export type { NavListItemProps, NavListItemStatus, NavListItemTone };
|
|
28
|
+
//# sourceMappingURL=nav-list-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-list-item.d.ts","sourceRoot":"","sources":["../../src/components/nav-list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,QAAA,MAAM,mBAAmB;;;;;8EAwExB,CAAC;AAEF,KAAK,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAEhE,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3C,KAAK,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,mBAAmB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IAC5F,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,mBAAmB,GAAG,oBAAoB,GAC7C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IAC1D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEJ,KAAK,iBAAiB,GAAG,oBAAoB,GAC3C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACrD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,KAAK,gBAAgB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEhE,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA6I3C;AAED,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { Loader } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn } from "../lib/cn.js";
|
|
6
|
+
import { Separator } from "./separator.js";
|
|
7
|
+
const navListItemVariants = cva("relative flex h-10 w-full min-w-0 shrink-0 items-center rounded-xl text-left text-sm leading-[1.5] outline-none transition-colors ring-sidebar-ring focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50", {
|
|
8
|
+
variants: {
|
|
9
|
+
kind: {
|
|
10
|
+
thread: "gap-2 pl-0 pr-3",
|
|
11
|
+
active: "gap-2 pl-0 pr-3 font-normal text-sidebar-accent-foreground",
|
|
12
|
+
label: "pointer-events-none h-auto min-h-0 shrink-0 select-none flex-col justify-center gap-0 ps-[9px] pr-3 text-xs leading-[1.4] font-normal text-neutral-700",
|
|
13
|
+
"view-all": "pr-3 text-xs leading-[1.4] font-normal",
|
|
14
|
+
},
|
|
15
|
+
tone: {
|
|
16
|
+
default: "",
|
|
17
|
+
stale: "",
|
|
18
|
+
},
|
|
19
|
+
hasStatus: {
|
|
20
|
+
true: "font-light text-sidebar-accent-foreground",
|
|
21
|
+
false: "",
|
|
22
|
+
},
|
|
23
|
+
hasIcon: {
|
|
24
|
+
true: "",
|
|
25
|
+
false: "",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
compoundVariants: [
|
|
29
|
+
{
|
|
30
|
+
kind: "thread",
|
|
31
|
+
tone: "default",
|
|
32
|
+
class: "font-light text-sidebar-thread-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
kind: "thread",
|
|
36
|
+
tone: "stale",
|
|
37
|
+
class: "font-light text-neutral-500 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
kind: "view-all",
|
|
41
|
+
tone: "default",
|
|
42
|
+
class: "text-sidebar-foreground/80 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
kind: "view-all",
|
|
46
|
+
tone: "stale",
|
|
47
|
+
class: "text-neutral-500 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
kind: "view-all",
|
|
51
|
+
hasIcon: true,
|
|
52
|
+
class: "gap-2 pl-0",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
kind: "view-all",
|
|
56
|
+
hasIcon: false,
|
|
57
|
+
class: "gap-0 ps-[9px]",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
kind: "active",
|
|
61
|
+
hasStatus: true,
|
|
62
|
+
class: "font-normal text-sidebar-accent-foreground",
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
defaultVariants: {
|
|
66
|
+
kind: "thread",
|
|
67
|
+
tone: "default",
|
|
68
|
+
hasStatus: false,
|
|
69
|
+
hasIcon: true,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
function NavListItem(props) {
|
|
73
|
+
const { className, kind = "thread", tone = "default", icon, status, children, ...rest } = props;
|
|
74
|
+
if (kind === "label") {
|
|
75
|
+
const { onClick: _ignored, disabled: _ignored2, href: _ignored3, ...divRest } = rest;
|
|
76
|
+
return (_jsx("div", { "data-slot": "nav-list-item", "data-kind": "label", className: cn(navListItemVariants({ kind: "label" }), className), ...divRest, children: _jsxs("div", { className: "flex h-10 min-h-10 min-w-0 w-full flex-1 items-center gap-2", children: [_jsx("span", { "data-slot": "nav-list-item-label", className: "shrink-0 whitespace-nowrap", children: children }), _jsx(Separator, { decorative: true, orientation: "horizontal", className: "min-w-0 flex-1 bg-purple-850" })] }) }));
|
|
77
|
+
}
|
|
78
|
+
const isLink = "href" in props && typeof props.href === "string";
|
|
79
|
+
const resolvedTone = kind === "active" ? "default" : tone === "stale" ? "stale" : "default";
|
|
80
|
+
const showStatus = Boolean(status) && resolvedTone !== "stale";
|
|
81
|
+
const hasStatus = showStatus;
|
|
82
|
+
const statusEl = (() => {
|
|
83
|
+
if (!showStatus)
|
|
84
|
+
return null;
|
|
85
|
+
if (status === "working") {
|
|
86
|
+
return (_jsx(Loader, { "aria-hidden": true, className: "size-3.5 shrink-0 animate-spin text-neutral-300", "data-slot": "nav-list-item-status", "data-status": "working" }));
|
|
87
|
+
}
|
|
88
|
+
const dotClass = status === "needs-input"
|
|
89
|
+
? "bg-[var(--color-semantic-status-warning)]"
|
|
90
|
+
: "bg-[var(--color-semantic-status-success)]";
|
|
91
|
+
return (_jsx("span", { "data-slot": "nav-list-item-status", "data-status": status, "aria-label": status === "needs-input" ? "Needs input" : "Finished", className: cn("size-2 shrink-0 rounded-full", dotClass) }));
|
|
92
|
+
})();
|
|
93
|
+
const iconSlot = (() => {
|
|
94
|
+
if (!icon)
|
|
95
|
+
return null;
|
|
96
|
+
if (kind === "active") {
|
|
97
|
+
return (_jsx("span", { "data-slot": "nav-list-item-icon-column", className: "flex size-9 shrink-0 items-center justify-center", children: _jsx("span", { "data-slot": "nav-list-item-icon-avatar", className: "flex size-6 shrink-0 items-center justify-center rounded-xl bg-[image:var(--nav-active-gradient)] text-sidebar-primary-foreground [&_svg]:size-3.5", children: icon }) }));
|
|
98
|
+
}
|
|
99
|
+
const iconToneClass = resolvedTone === "stale" ? "text-neutral-500" : "text-sidebar-thread-foreground";
|
|
100
|
+
return (_jsx("span", { "data-slot": "nav-list-item-icon", className: cn("flex size-9 shrink-0 items-center justify-center [&_svg]:size-3.5", iconToneClass), children: icon }));
|
|
101
|
+
})();
|
|
102
|
+
const iconColumn = iconSlot;
|
|
103
|
+
const inner = (_jsxs(_Fragment, { children: [iconColumn, _jsx("span", { "data-slot": "nav-list-item-label", className: "min-w-0 flex-1 truncate", children: children }), statusEl] }));
|
|
104
|
+
const sharedProps = {
|
|
105
|
+
"data-slot": "nav-list-item",
|
|
106
|
+
"data-kind": kind,
|
|
107
|
+
...(resolvedTone === "stale" ? { "data-tone": "stale" } : {}),
|
|
108
|
+
className: cn(navListItemVariants({
|
|
109
|
+
kind,
|
|
110
|
+
tone: resolvedTone,
|
|
111
|
+
hasStatus,
|
|
112
|
+
hasIcon: Boolean(icon),
|
|
113
|
+
}), className),
|
|
114
|
+
};
|
|
115
|
+
if (isLink) {
|
|
116
|
+
const linkProps = rest;
|
|
117
|
+
return (_jsx("a", { ...sharedProps, href: props.href, "aria-current": kind === "active" ? "page" : undefined, ...linkProps, children: inner }));
|
|
118
|
+
}
|
|
119
|
+
const { type = "button", ...buttonProps } = rest;
|
|
120
|
+
return (_jsx("button", { ...sharedProps, type: type, "aria-pressed": kind === "active" ? true : undefined, ...buttonProps, children: inner }));
|
|
121
|
+
}
|
|
122
|
+
export { NavListItem, navListItemVariants };
|
|
123
|
+
//# sourceMappingURL=nav-list-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-list-item.js","sourceRoot":"","sources":["../../src/components/nav-list-item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type NavMenuContextValue = {
|
|
3
|
+
expanded: boolean;
|
|
4
|
+
toggle: () => void;
|
|
5
|
+
setExpanded: (value: boolean) => void;
|
|
6
|
+
};
|
|
7
|
+
declare const NavMenuContext: React.Context<NavMenuContextValue | null>;
|
|
8
|
+
declare function useNavMenu(): NavMenuContextValue;
|
|
9
|
+
export { NavMenuContext, useNavMenu };
|
|
10
|
+
export type { NavMenuContextValue };
|
|
11
|
+
//# sourceMappingURL=nav-menu-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-menu-context.d.ts","sourceRoot":"","sources":["../../src/components/nav-menu-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,QAAA,MAAM,cAAc,2CAAwD,CAAC;AAE7E,iBAAS,UAAU,IAAI,mBAAmB,CAMzC;AAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACtC,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const NavMenuContext = React.createContext(null);
|
|
3
|
+
function useNavMenu() {
|
|
4
|
+
const ctx = React.useContext(NavMenuContext);
|
|
5
|
+
if (!ctx) {
|
|
6
|
+
throw new Error("NavMenu sub-components must be rendered inside <NavMenu>");
|
|
7
|
+
}
|
|
8
|
+
return ctx;
|
|
9
|
+
}
|
|
10
|
+
export { NavMenuContext, useNavMenu };
|
|
11
|
+
//# sourceMappingURL=nav-menu-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-menu-context.js","sourceRoot":"","sources":["../../src/components/nav-menu-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAA6B,IAAI,CAAC,CAAC;AAE7E,SAAS,UAAU;IACjB,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type NavMenuProps = Omit<React.ComponentProps<"aside">, "children"> & {
|
|
3
|
+
expanded?: boolean;
|
|
4
|
+
defaultExpanded?: boolean;
|
|
5
|
+
onExpandedChange?: (value: boolean) => void;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
declare function NavMenu({ expanded: expandedProp, defaultExpanded, onExpandedChange, className, children, "aria-label": ariaLabel, style, ...props }: NavMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function NavMenuHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
type NavMenuToggleProps = Omit<React.ComponentProps<"button">, "children" | "onClick"> & {
|
|
11
|
+
label?: {
|
|
12
|
+
expand: string;
|
|
13
|
+
collapse: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
declare function NavMenuToggle({ className, label, "aria-label": ariaLabelProp, type, ...props }: NavMenuToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export type NavMenuBrandProps = {
|
|
18
|
+
/** Accessible name for the wordmark when expanded (slashes use `aria-hidden` — expand is announced via the control). */
|
|
19
|
+
logoTitle?: string;
|
|
20
|
+
className?: string;
|
|
21
|
+
wordmarkClassName?: string;
|
|
22
|
+
slashesClassName?: string;
|
|
23
|
+
/** Same labels as {@link NavMenuToggle} — collapse applies to the toggle; expand applies to the slashes-only control. */
|
|
24
|
+
label?: {
|
|
25
|
+
expand: string;
|
|
26
|
+
collapse: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
declare function NavMenuBrand({ logoTitle, className, wordmarkClassName, slashesClassName, label, }: NavMenuBrandProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare function NavSection({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
declare function NavSectionLabel({ className, children, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
declare function NavHistoryList({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
declare function NavMenuFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
declare function NavMenuDivider({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export { NavMenu, NavMenuBrand, NavMenuDivider, NavMenuFooter, NavMenuHeader, NavHistoryList, NavMenuToggle, NavSection, NavSectionLabel };
|
|
36
|
+
export type { NavMenuProps, NavMenuToggleProps };
|
|
37
|
+
//# sourceMappingURL=nav-menu-primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-menu-primitives.d.ts","sourceRoot":"","sources":["../../src/components/nav-menu-primitives.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,iBAAS,OAAO,CAAC,EACf,QAAQ,EAAE,YAAY,EACtB,eAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAqB,EACnC,KAAK,EACL,GAAG,KAAK,EACT,EAAE,YAAY,2CAuDd;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAY1E;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG;IACvF,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC;AAEF,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,KAAK,EACL,YAAY,EAAE,aAAa,EAC3B,IAAe,EACf,GAAG,KAAK,EACT,EAAE,kBAAkB,2CA2BpB;AA8CD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wHAAwH;IACxH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yHAAyH;IACzH,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,CAAC;AAEF,iBAAS,YAAY,CAAC,EACpB,SAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,GACN,EAAE,iBAAiB,2CAiCnB;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQvE;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAsBtF;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAc3E;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAY1E;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAM3E;AAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAC3I,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/cn.js";
|
|
4
|
+
import { ArrayLogo, ArrayLogoSlashes } from "../logos/index.js";
|
|
5
|
+
import { buttonVariants } from "./button.js";
|
|
6
|
+
import { Separator } from "./separator.js";
|
|
7
|
+
import { TooltipProvider } from "./tooltip.js";
|
|
8
|
+
import { NavMenuContext, useNavMenu } from "./nav-menu-context.js";
|
|
9
|
+
const NAV_WIDTH_PX = 240;
|
|
10
|
+
const NAV_WIDTH_ICON_PX = 60;
|
|
11
|
+
function NavMenu({ expanded: expandedProp, defaultExpanded = true, onExpandedChange, className, children, "aria-label": ariaLabel = "Primary", style, ...props }) {
|
|
12
|
+
const [internal, setInternal] = React.useState(defaultExpanded);
|
|
13
|
+
const isControlled = expandedProp !== undefined;
|
|
14
|
+
const expanded = isControlled ? expandedProp : internal;
|
|
15
|
+
const setExpanded = React.useCallback((value) => {
|
|
16
|
+
if (!isControlled)
|
|
17
|
+
setInternal(value);
|
|
18
|
+
onExpandedChange?.(value);
|
|
19
|
+
}, [isControlled, onExpandedChange]);
|
|
20
|
+
const toggle = React.useCallback(() => setExpanded(!expanded), [expanded, setExpanded]);
|
|
21
|
+
const ctx = React.useMemo(() => ({ expanded, toggle, setExpanded }), [expanded, toggle, setExpanded]);
|
|
22
|
+
const mergedStyle = {
|
|
23
|
+
["--nav-width"]: `${NAV_WIDTH_PX}px`,
|
|
24
|
+
["--nav-width-icon"]: `${NAV_WIDTH_ICON_PX}px`,
|
|
25
|
+
...style,
|
|
26
|
+
};
|
|
27
|
+
return (_jsx(NavMenuContext.Provider, { value: ctx, children: _jsx(TooltipProvider, { delayDuration: 200, children: _jsx("aside", { "data-slot": "nav-menu", "data-state": expanded ? "expanded" : "collapsed", "aria-label": ariaLabel, style: mergedStyle, className: cn("group/nav flex h-full shrink-0 flex-col overflow-hidden bg-sidebar text-sidebar-foreground", "w-(--nav-width) data-[state=collapsed]:w-(--nav-width-icon)", "transition-[width] duration-200 ease-linear", className), ...props, children: _jsx("div", { "data-slot": "nav-menu-inner", className: cn("flex h-full min-h-0 flex-col", expanded ? "w-(--nav-width)" : "w-(--nav-width-icon)"), children: children }) }) }) }));
|
|
28
|
+
}
|
|
29
|
+
function NavMenuHeader({ className, ...props }) {
|
|
30
|
+
return (_jsx("div", { "data-slot": "nav-menu-header", className: cn("flex h-12 w-full min-w-0 shrink-0 items-center gap-2 self-stretch px-3", "group-data-[state=collapsed]/nav:justify-center group-data-[state=collapsed]/nav:px-0", className), ...props }));
|
|
31
|
+
}
|
|
32
|
+
function NavMenuToggle({ className, label, "aria-label": ariaLabelProp, type = "button", ...props }) {
|
|
33
|
+
const { expanded, toggle } = useNavMenu();
|
|
34
|
+
const labels = label ?? { expand: "Expand sidebar", collapse: "Collapse sidebar" };
|
|
35
|
+
const computedLabel = ariaLabelProp ?? (expanded ? labels.collapse : labels.expand);
|
|
36
|
+
return (_jsx("button", { type: type, "data-slot": "nav-menu-toggle", "data-state": expanded ? "expanded" : "collapsed", "aria-label": computedLabel, "aria-expanded": expanded, onClick: toggle, className: cn(buttonVariants({ variant: "ghost", size: "icon" }), "shrink-0 rounded-xl text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", className), ...props, children: expanded ? (_jsx(PanelLeftCloseIcon, { className: "size-3.5", "aria-hidden": true })) : (_jsx(PanelLeftOpenIcon, { className: "size-3.5", "aria-hidden": true })) }));
|
|
37
|
+
}
|
|
38
|
+
function PanelLeftCloseIcon({ className, ...rest }) {
|
|
39
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, ...rest, children: [_jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }), _jsx("path", { d: "M9 3v18" }), _jsx("path", { d: "m16 15-3-3 3-3" })] }));
|
|
40
|
+
}
|
|
41
|
+
function PanelLeftOpenIcon({ className, ...rest }) {
|
|
42
|
+
return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: className, ...rest, children: [_jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }), _jsx("path", { d: "M9 3v18" }), _jsx("path", { d: "m14 9 3 3-3 3" })] }));
|
|
43
|
+
}
|
|
44
|
+
function NavMenuBrand({ logoTitle = "Array", className, wordmarkClassName, slashesClassName, label, }) {
|
|
45
|
+
const { expanded, toggle } = useNavMenu();
|
|
46
|
+
const labels = label ?? { expand: "Expand sidebar", collapse: "Collapse sidebar" };
|
|
47
|
+
if (!expanded) {
|
|
48
|
+
return (_jsx("button", { type: "button", "data-slot": "nav-menu-brand", "data-state": "collapsed", "aria-label": labels.expand, onClick: toggle, className: cn(buttonVariants({ variant: "ghost", size: "icon" }), "shrink-0 rounded-xl text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", className), children: _jsx(ArrayLogoSlashes, { className: cn("h-4 w-4 shrink-0", slashesClassName), "aria-hidden": true }) }));
|
|
49
|
+
}
|
|
50
|
+
return (_jsxs("div", { "data-slot": "nav-menu-brand", "data-state": "expanded", className: cn("flex w-full min-w-0 flex-1 items-center", className), children: [_jsx(ArrayLogo, { className: cn("h-4 w-auto min-w-0", wordmarkClassName), title: logoTitle }), _jsx(NavMenuToggle, { className: "ml-auto shrink-0", label: label })] }));
|
|
51
|
+
}
|
|
52
|
+
function NavSection({ className, ...props }) {
|
|
53
|
+
return (_jsx("div", { "data-slot": "nav-menu-section", className: cn("flex shrink-0 flex-col px-3 py-2", className), ...props }));
|
|
54
|
+
}
|
|
55
|
+
function NavSectionLabel({ className, children, ...props }) {
|
|
56
|
+
return (_jsxs("div", { "data-slot": "nav-menu-section-label", className: cn("flex h-10 items-center gap-2 pl-0 pr-3 text-xs font-normal leading-[1.4] text-muted-foreground", "group-data-[state=collapsed]/nav:hidden", className), ...props, children: [_jsx("span", { "aria-hidden": true, className: "size-9 shrink-0", "data-slot": "nav-menu-section-label-spacer" }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx("span", { className: "shrink-0 whitespace-nowrap", children: children }), _jsx(Separator, { decorative: true, orientation: "horizontal", className: "min-w-0 flex-1 bg-sidebar-border" })] })] }));
|
|
57
|
+
}
|
|
58
|
+
function NavHistoryList({ className, ...props }) {
|
|
59
|
+
return (_jsx("div", { "data-slot": "nav-history-list", className: cn(
|
|
60
|
+
// flex-1 fills space below primary nav; scroll inside this box. Direct children must not
|
|
61
|
+
// shrink (default flex-shrink:1) or rows compress instead of scrolling.
|
|
62
|
+
"flex min-h-0 flex-1 flex-col gap-1 overflow-y-auto px-3 pb-3 [&>*]:shrink-0", "group-data-[state=collapsed]/nav:hidden", className), ...props }));
|
|
63
|
+
}
|
|
64
|
+
function NavMenuFooter({ className, ...props }) {
|
|
65
|
+
return (_jsx("div", { "data-slot": "nav-menu-footer", className: cn("mt-auto shrink-0 px-3 py-3", "group-data-[state=collapsed]/nav:flex group-data-[state=collapsed]/nav:justify-center group-data-[state=collapsed]/nav:px-0", className), ...props }));
|
|
66
|
+
}
|
|
67
|
+
function NavMenuDivider({ className, ...props }) {
|
|
68
|
+
return (_jsx("div", { "data-slot": "nav-menu-divider", role: "presentation", className: cn("my-(--space-4) h-px w-full shrink-0", className), ...props, children: _jsx(Separator, { decorative: true, orientation: "horizontal", className: "bg-sidebar-border" }) }));
|
|
69
|
+
}
|
|
70
|
+
export { NavMenu, NavMenuBrand, NavMenuDivider, NavMenuFooter, NavMenuHeader, NavHistoryList, NavMenuToggle, NavSection, NavSectionLabel };
|
|
71
|
+
//# sourceMappingURL=nav-menu-primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-menu-primitives.js","sourceRoot":"","sources":["../../src/components/nav-menu-primitives.tsx"],"names":[],"mappings":"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"}
|