@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.
Files changed (146) hide show
  1. package/README.md +163 -0
  2. package/dist/components/alert-dialog.d.ts +20 -0
  3. package/dist/components/alert-dialog.d.ts.map +1 -0
  4. package/dist/components/alert-dialog.js +40 -0
  5. package/dist/components/alert-dialog.js.map +1 -0
  6. package/dist/components/avatar.d.ts +7 -0
  7. package/dist/components/avatar.d.ts.map +1 -0
  8. package/dist/components/avatar.js +15 -0
  9. package/dist/components/avatar.js.map +1 -0
  10. package/dist/components/badge.d.ts +10 -0
  11. package/dist/components/badge.d.ts.map +1 -0
  12. package/dist/components/badge.js +24 -0
  13. package/dist/components/badge.js.map +1 -0
  14. package/dist/components/breadcrumb.d.ts +12 -0
  15. package/dist/components/breadcrumb.d.ts.map +1 -0
  16. package/dist/components/breadcrumb.js +29 -0
  17. package/dist/components/breadcrumb.js.map +1 -0
  18. package/dist/components/button.d.ts +14 -0
  19. package/dist/components/button.d.ts.map +1 -0
  20. package/dist/components/button.js +36 -0
  21. package/dist/components/button.js.map +1 -0
  22. package/dist/components/calendar.d.ts +9 -0
  23. package/dist/components/calendar.d.ts.map +1 -0
  24. package/dist/components/calendar.js +77 -0
  25. package/dist/components/calendar.js.map +1 -0
  26. package/dist/components/card.d.ts +10 -0
  27. package/dist/components/card.d.ts.map +1 -0
  28. package/dist/components/card.js +26 -0
  29. package/dist/components/card.js.map +1 -0
  30. package/dist/components/chart.d.ts +57 -0
  31. package/dist/components/chart.d.ts.map +1 -0
  32. package/dist/components/chart.js +123 -0
  33. package/dist/components/chart.js.map +1 -0
  34. package/dist/components/collapsible.d.ts +7 -0
  35. package/dist/components/collapsible.d.ts.map +1 -0
  36. package/dist/components/collapsible.js +14 -0
  37. package/dist/components/collapsible.js.map +1 -0
  38. package/dist/components/combobox.d.ts +43 -0
  39. package/dist/components/combobox.d.ts.map +1 -0
  40. package/dist/components/combobox.js +171 -0
  41. package/dist/components/combobox.js.map +1 -0
  42. package/dist/components/dialog.d.ts +20 -0
  43. package/dist/components/dialog.d.ts.map +1 -0
  44. package/dist/components/dialog.js +35 -0
  45. package/dist/components/dialog.js.map +1 -0
  46. package/dist/components/dropdown-menu.d.ts +38 -0
  47. package/dist/components/dropdown-menu.d.ts.map +1 -0
  48. package/dist/components/dropdown-menu.js +53 -0
  49. package/dist/components/dropdown-menu.js.map +1 -0
  50. package/dist/components/input.d.ts +4 -0
  51. package/dist/components/input.d.ts.map +1 -0
  52. package/dist/components/input.js +8 -0
  53. package/dist/components/input.js.map +1 -0
  54. package/dist/components/label.d.ts +5 -0
  55. package/dist/components/label.d.ts.map +1 -0
  56. package/dist/components/label.js +9 -0
  57. package/dist/components/label.js.map +1 -0
  58. package/dist/components/nav-item.d.ts +24 -0
  59. package/dist/components/nav-item.d.ts.map +1 -0
  60. package/dist/components/nav-item.js +110 -0
  61. package/dist/components/nav-item.js.map +1 -0
  62. package/dist/components/nav-list-item.d.ts +28 -0
  63. package/dist/components/nav-list-item.d.ts.map +1 -0
  64. package/dist/components/nav-list-item.js +123 -0
  65. package/dist/components/nav-list-item.js.map +1 -0
  66. package/dist/components/nav-menu-context.d.ts +11 -0
  67. package/dist/components/nav-menu-context.d.ts.map +1 -0
  68. package/dist/components/nav-menu-context.js +11 -0
  69. package/dist/components/nav-menu-context.js.map +1 -0
  70. package/dist/components/nav-menu-primitives.d.ts +37 -0
  71. package/dist/components/nav-menu-primitives.d.ts.map +1 -0
  72. package/dist/components/nav-menu-primitives.js +71 -0
  73. package/dist/components/nav-menu-primitives.js.map +1 -0
  74. package/dist/components/nav-menu.d.ts +9 -0
  75. package/dist/components/nav-menu.d.ts.map +1 -0
  76. package/dist/components/nav-menu.js +5 -0
  77. package/dist/components/nav-menu.js.map +1 -0
  78. package/dist/components/nav-profile-item.d.ts +17 -0
  79. package/dist/components/nav-profile-item.d.ts.map +1 -0
  80. package/dist/components/nav-profile-item.js +16 -0
  81. package/dist/components/nav-profile-item.js.map +1 -0
  82. package/dist/components/pagination.d.ts +14 -0
  83. package/dist/components/pagination.d.ts.map +1 -0
  84. package/dist/components/pagination.js +31 -0
  85. package/dist/components/pagination.js.map +1 -0
  86. package/dist/components/popover.d.ts +7 -0
  87. package/dist/components/popover.d.ts.map +1 -0
  88. package/dist/components/popover.js +12 -0
  89. package/dist/components/popover.js.map +1 -0
  90. package/dist/components/select.d.ts +16 -0
  91. package/dist/components/select.d.ts.map +1 -0
  92. package/dist/components/select.js +44 -0
  93. package/dist/components/select.js.map +1 -0
  94. package/dist/components/separator.d.ts +5 -0
  95. package/dist/components/separator.d.ts.map +1 -0
  96. package/dist/components/separator.js +9 -0
  97. package/dist/components/separator.js.map +1 -0
  98. package/dist/components/sheet.d.ts +18 -0
  99. package/dist/components/sheet.d.ts.map +1 -0
  100. package/dist/components/sheet.js +41 -0
  101. package/dist/components/sheet.js.map +1 -0
  102. package/dist/components/sidebar.d.ts +71 -0
  103. package/dist/components/sidebar.d.ts.map +1 -0
  104. package/dist/components/sidebar.js +218 -0
  105. package/dist/components/sidebar.js.map +1 -0
  106. package/dist/components/skeleton.d.ts +4 -0
  107. package/dist/components/skeleton.d.ts.map +1 -0
  108. package/dist/components/skeleton.js +8 -0
  109. package/dist/components/skeleton.js.map +1 -0
  110. package/dist/components/sonner.d.ts +7 -0
  111. package/dist/components/sonner.d.ts.map +1 -0
  112. package/dist/components/sonner.js +22 -0
  113. package/dist/components/sonner.js.map +1 -0
  114. package/dist/components/switch.d.ts +5 -0
  115. package/dist/components/switch.d.ts.map +1 -0
  116. package/dist/components/switch.js +9 -0
  117. package/dist/components/switch.js.map +1 -0
  118. package/dist/components/table.d.ts +11 -0
  119. package/dist/components/table.d.ts.map +1 -0
  120. package/dist/components/table.js +29 -0
  121. package/dist/components/table.js.map +1 -0
  122. package/dist/components/tabs.d.ts +25 -0
  123. package/dist/components/tabs.d.ts.map +1 -0
  124. package/dist/components/tabs.js +34 -0
  125. package/dist/components/tabs.js.map +1 -0
  126. package/dist/components/tooltip.d.ts +8 -0
  127. package/dist/components/tooltip.d.ts.map +1 -0
  128. package/dist/components/tooltip.js +18 -0
  129. package/dist/components/tooltip.js.map +1 -0
  130. package/dist/hooks/use-is-mobile.d.ts +6 -0
  131. package/dist/hooks/use-is-mobile.d.ts.map +1 -0
  132. package/dist/hooks/use-is-mobile.js +20 -0
  133. package/dist/hooks/use-is-mobile.js.map +1 -0
  134. package/dist/index.d.ts +1166 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +56 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/lib/cn.d.ts +3 -0
  139. package/dist/lib/cn.d.ts.map +1 -0
  140. package/dist/lib/cn.js +6 -0
  141. package/dist/lib/cn.js.map +1 -0
  142. package/dist/logos/index.d.ts +21 -0
  143. package/dist/logos/index.d.ts.map +1 -0
  144. package/dist/logos/index.js +81 -0
  145. package/dist/logos/index.js.map +1 -0
  146. 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,4 @@
1
+ import * as React from "react";
2
+ declare function Input({ className, type, ...props }: React.ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
3
+ export { Input };
4
+ //# sourceMappingURL=input.d.ts.map
@@ -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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"}