@a5it/sync-ui 0.1.37 → 0.1.39

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 (58) hide show
  1. package/dist/components/data-table/cells/status-pill.d.ts.map +1 -1
  2. package/dist/components/data-table/cells/status-pill.js +7 -0
  3. package/dist/components/data-table/cells/status-pill.js.map +1 -1
  4. package/dist/components/sidebar/index.d.ts +8 -1
  5. package/dist/components/sidebar/index.d.ts.map +1 -1
  6. package/dist/components/sidebar/index.js +8 -1
  7. package/dist/components/sidebar/index.js.map +1 -1
  8. package/dist/components/sidebar/sidebar-nav-popover.d.ts +70 -0
  9. package/dist/components/sidebar/sidebar-nav-popover.d.ts.map +1 -0
  10. package/dist/components/sidebar/sidebar-nav-popover.js +71 -0
  11. package/dist/components/sidebar/sidebar-nav-popover.js.map +1 -0
  12. package/dist/components/sidebar/sidebar-nav.d.ts +63 -0
  13. package/dist/components/sidebar/sidebar-nav.d.ts.map +1 -0
  14. package/dist/components/sidebar/sidebar-nav.js +119 -0
  15. package/dist/components/sidebar/sidebar-nav.js.map +1 -0
  16. package/dist/components/sidebar/sidebar-toggle.d.ts +14 -0
  17. package/dist/components/sidebar/sidebar-toggle.d.ts.map +1 -0
  18. package/dist/components/sidebar/sidebar-toggle.js +18 -0
  19. package/dist/components/sidebar/sidebar-toggle.js.map +1 -0
  20. package/dist/components/sidebar/use-sidebar-active.d.ts +12 -0
  21. package/dist/components/sidebar/use-sidebar-active.d.ts.map +1 -0
  22. package/dist/components/sidebar/use-sidebar-active.js +46 -0
  23. package/dist/components/sidebar/use-sidebar-active.js.map +1 -0
  24. package/dist/components/ui/separator.d.ts +5 -0
  25. package/dist/components/ui/separator.d.ts.map +1 -0
  26. package/dist/components/ui/separator.js +9 -0
  27. package/dist/components/ui/separator.js.map +1 -0
  28. package/dist/components/ui/sidebar.d.ts +69 -0
  29. package/dist/components/ui/sidebar.d.ts.map +1 -0
  30. package/dist/components/ui/sidebar.js +193 -0
  31. package/dist/components/ui/sidebar.js.map +1 -0
  32. package/dist/components/ui/skeleton.d.ts +4 -0
  33. package/dist/components/ui/skeleton.d.ts.map +1 -0
  34. package/dist/components/ui/skeleton.js +8 -0
  35. package/dist/components/ui/skeleton.js.map +1 -0
  36. package/dist/components/ui/tooltip.d.ts +8 -0
  37. package/dist/components/ui/tooltip.d.ts.map +1 -0
  38. package/dist/components/ui/tooltip.js +18 -0
  39. package/dist/components/ui/tooltip.js.map +1 -0
  40. package/dist/hooks/index.d.ts +3 -0
  41. package/dist/hooks/index.d.ts.map +1 -1
  42. package/dist/hooks/index.js +3 -0
  43. package/dist/hooks/index.js.map +1 -1
  44. package/dist/hooks/use-is-mobile.d.ts +2 -0
  45. package/dist/hooks/use-is-mobile.d.ts.map +1 -0
  46. package/dist/hooks/use-is-mobile.js +16 -0
  47. package/dist/hooks/use-is-mobile.js.map +1 -0
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/providers/index.d.ts +1 -0
  53. package/dist/providers/index.d.ts.map +1 -1
  54. package/dist/providers/index.js +1 -0
  55. package/dist/providers/index.js.map +1 -1
  56. package/dist/types/index.d.ts +3 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"status-pill.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA8KF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,GACV,EAAE,wBAAwB,2CA6B1B"}
1
+ {"version":3,"file":"status-pill.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAqLF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,GACV,EAAE,wBAAwB,2CA6B1B"}
@@ -92,6 +92,11 @@ const statusConfig = {
92
92
  dot: "#dc2626", // Red dot
93
93
  text: "#dc2626", // Red text
94
94
  },
95
+ approved: {
96
+ bg: "#c6f3df", // Light green background
97
+ dot: "#12845c", // Green dot
98
+ text: "#12845c", // Green text
99
+ },
95
100
  };
96
101
  function normalizeStatus(label) {
97
102
  // Deslugify first, then normalize
@@ -112,6 +117,8 @@ function normalizeStatus(label) {
112
117
  return "inactive";
113
118
  if (normalized === "active" || normalized.includes("active"))
114
119
  return "active";
120
+ if (normalized === "approved" || normalized.includes("approved"))
121
+ return "approved";
115
122
  if (normalized.includes("new"))
116
123
  return "new";
117
124
  if (normalized.includes("in progress"))
@@ -1 +1 @@
1
- {"version":3,"file":"status-pill.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-pill.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,9 @@
1
- export {};
1
+ export { SidebarProvider, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, sidebarMenuButtonVariants, } from "../ui/sidebar";
2
+ export { SidebarNavGroup, SidebarNavItem, SidebarNavDivider } from "./sidebar-nav";
3
+ export type { SidebarNavGroupProps, SidebarNavItemProps, SidebarNavDividerProps, } from "./sidebar-nav";
4
+ export { SidebarNavPopover, SidebarNavPopoverItem, SidebarNavPopoverAction, } from "./sidebar-nav-popover";
5
+ export type { SidebarNavPopoverProps, SidebarNavPopoverItemProps, SidebarNavPopoverActionProps, } from "./sidebar-nav-popover";
6
+ export { SidebarToggle } from "./sidebar-toggle";
7
+ export type { SidebarToggleProps } from "./sidebar-toggle";
8
+ export { useSidebarActive, defaultIsActivePath } from "./use-sidebar-active";
2
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,EACf,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnF,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,2 +1,9 @@
1
- export {};
1
+ "use client";
2
+ // Layer 1 — Primitives (re-exported from ui/sidebar.tsx)
3
+ export { SidebarProvider, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, sidebarMenuButtonVariants, } from "../ui/sidebar";
4
+ // Layer 2 — Composables
5
+ export { SidebarNavGroup, SidebarNavItem, SidebarNavDivider } from "./sidebar-nav";
6
+ export { SidebarNavPopover, SidebarNavPopoverItem, SidebarNavPopoverAction, } from "./sidebar-nav-popover";
7
+ export { SidebarToggle } from "./sidebar-toggle";
8
+ export { useSidebarActive, defaultIsActivePath } from "./use-sidebar-active";
2
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/sidebar/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,yDAAyD;AACzD,OAAO,EACL,eAAe,EACf,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import * as React from "react";
2
+ export interface SidebarNavPopoverActionProps {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }
6
+ /**
7
+ * Action slot on a popover item (e.g., bookmark button, pin, etc.).
8
+ * The library knows nothing about what goes here — it's purely a layout slot.
9
+ */
10
+ export declare function SidebarNavPopoverAction({ className, children, }: SidebarNavPopoverActionProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare namespace SidebarNavPopoverAction {
12
+ var displayName: string;
13
+ }
14
+ export interface SidebarNavPopoverItemProps {
15
+ /** Link destination */
16
+ href: string;
17
+ /** Icon component */
18
+ icon?: React.ComponentType<{
19
+ className?: string;
20
+ }>;
21
+ /** Description text shown below the title (optional) */
22
+ description?: string;
23
+ /** Override active path matching. Defaults to [href]. */
24
+ activePaths?: string[];
25
+ /** Whether the item is disabled */
26
+ disabled?: boolean;
27
+ className?: string;
28
+ /**
29
+ * Children: label text, and optionally a SidebarNavPopoverAction.
30
+ */
31
+ children: React.ReactNode;
32
+ }
33
+ /**
34
+ * An individual item inside a SidebarNavPopover.
35
+ */
36
+ export declare function SidebarNavPopoverItem({ href, icon: Icon, description, activePaths: activePathsProp, disabled, className, children, }: SidebarNavPopoverItemProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare namespace SidebarNavPopoverItem {
38
+ var displayName: string;
39
+ }
40
+ export interface SidebarNavPopoverProps {
41
+ className?: string;
42
+ /** Optional footer content */
43
+ footer?: React.ReactNode;
44
+ /** Content shown when there are no children */
45
+ emptyState?: React.ReactNode;
46
+ /** Which side to open on. Defaults to "right". */
47
+ side?: "right" | "left" | "top" | "bottom";
48
+ /** Alignment relative to the trigger. Defaults to "start". */
49
+ align?: "start" | "center" | "end";
50
+ /** Offset from the trigger in pixels. Defaults to 12. */
51
+ sideOffset?: number;
52
+ /**
53
+ * Called when the popover should close (e.g., after a link click).
54
+ * Injected automatically by SidebarNavItem — no need to pass manually.
55
+ */
56
+ onClose?: () => void;
57
+ /** Children: SidebarNavPopoverItem components */
58
+ children?: React.ReactNode;
59
+ }
60
+ /**
61
+ * Flyout popover for sub-navigation. Place as a child of SidebarNavItem.
62
+ *
63
+ * The popover renders as a PopoverContent and is wired up to the parent
64
+ * SidebarNavItem's Popover automatically.
65
+ */
66
+ export declare function SidebarNavPopover({ className, footer, emptyState, side, align, sideOffset, onClose, children, }: SidebarNavPopoverProps): import("react/jsx-runtime").JSX.Element;
67
+ export declare namespace SidebarNavPopover {
68
+ var displayName: string;
69
+ }
70
+ //# sourceMappingURL=sidebar-nav-popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-nav-popover.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-nav-popover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,QAAQ,GACT,EAAE,4BAA4B,2CAa9B;yBAhBe,uBAAuB;;;AAwBvC,MAAM,WAAW,0BAA0B;IACzC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EAAE,IAAI,EACV,WAAW,EACX,WAAW,EAAE,eAAe,EAC5B,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,0BAA0B,2CAiF5B;yBAzFe,qBAAqB;;;AAiGrC,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,UAAU,EACV,IAAc,EACd,KAAe,EACf,UAAe,EACf,OAAO,EACP,QAAQ,GACT,EAAE,sBAAsB,2CAuCxB;yBAhDe,iBAAiB"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { useMemo } from "react";
5
+ import Link from "next/link";
6
+ import { usePathname } from "next/navigation";
7
+ import { cn, kebabCase } from "../../lib/utils";
8
+ import { PopoverContent, PopoverArrow } from "../ui/popover";
9
+ import { defaultIsActivePath } from "./use-sidebar-active";
10
+ /**
11
+ * Action slot on a popover item (e.g., bookmark button, pin, etc.).
12
+ * The library knows nothing about what goes here — it's purely a layout slot.
13
+ */
14
+ export function SidebarNavPopoverAction({ className, children, }) {
15
+ return (_jsx("div", { "data-slot": "sidebar-nav-popover-action", className: cn("transition-opacity flex-none", className), onClick: (e) => e.stopPropagation(), children: children }));
16
+ }
17
+ SidebarNavPopoverAction.displayName = "SidebarNavPopoverAction";
18
+ /**
19
+ * An individual item inside a SidebarNavPopover.
20
+ */
21
+ export function SidebarNavPopoverItem({ href, icon: Icon, description, activePaths: activePathsProp, disabled = false, className, children, }) {
22
+ const pathname = usePathname();
23
+ const activePaths = activePathsProp ?? [href];
24
+ const isActive = useMemo(() => defaultIsActivePath(pathname, activePaths), [pathname, activePaths]);
25
+ // Separate text children from SidebarNavPopoverAction children
26
+ const { label, actionElement } = useMemo(() => {
27
+ let action = null;
28
+ const labelParts = [];
29
+ React.Children.forEach(children, (child) => {
30
+ if (React.isValidElement(child) &&
31
+ child.type?.displayName === "SidebarNavPopoverAction") {
32
+ action = child;
33
+ }
34
+ else {
35
+ labelParts.push(child);
36
+ }
37
+ });
38
+ return {
39
+ label: labelParts.length === 1 ? labelParts[0] : labelParts,
40
+ actionElement: action,
41
+ };
42
+ }, [children]);
43
+ const itemDataCy = `sidebar-popover-item-${kebabCase(typeof label === "string" ? label : href)}`;
44
+ return (_jsxs("div", { "data-slot": "sidebar-nav-popover-item", className: cn("group/popover-item h-10 flex items-center justify-between gap-2 rounded-[14px] p-2 transition-colors", isActive
45
+ ? "border-primary/20 bg-primary/5"
46
+ : "bg-white hover:bg-primary/5", disabled && "pointer-events-none opacity-50", className), children: [_jsxs(Link, { href: href, className: "flex items-center gap-3 min-w-0 flex-1", "data-cy": itemDataCy, children: [Icon && (_jsx(Icon, { className: cn("size-5 shrink-0", isActive
47
+ ? "text-primary"
48
+ : "text-[#1A1A1A] group-hover/popover-item:text-primary") })), _jsxs("div", { className: "flex flex-col min-w-0", children: [_jsx("span", { className: cn("font-normal text-sm truncate", isActive
49
+ ? "text-primary font-medium"
50
+ : "text-[#1A1A1A] group-hover/popover-item:text-primary"), children: label }), description && (_jsx("span", { className: "text-xs text-muted-foreground truncate", children: description }))] })] }), actionElement] }));
51
+ }
52
+ SidebarNavPopoverItem.displayName = "SidebarNavPopoverItem";
53
+ /**
54
+ * Flyout popover for sub-navigation. Place as a child of SidebarNavItem.
55
+ *
56
+ * The popover renders as a PopoverContent and is wired up to the parent
57
+ * SidebarNavItem's Popover automatically.
58
+ */
59
+ export function SidebarNavPopover({ className, footer, emptyState, side = "right", align = "start", sideOffset = 12, onClose, children, }) {
60
+ const hasChildren = React.Children.count(children) > 0;
61
+ return (_jsxs(PopoverContent, { side: side, align: align, sideOffset: sideOffset, className: cn("min-w-[266px] max-w-fit border-0 p-0 rounded-[20px] overflow-hidden", "[box-shadow:0_12px_20px_0_rgba(0,0,0,0.08),0_4px_6px_0_rgba(0,0,0,0.06)]", className), "data-slot": "sidebar-nav-popover", onInteractOutside: (event) => {
62
+ const target = event.target;
63
+ if (!(target instanceof HTMLElement))
64
+ return;
65
+ if (target.closest("[data-slot='sidebar-nav-popover']")) {
66
+ event.preventDefault();
67
+ }
68
+ }, children: [_jsx(PopoverArrow, { className: "fill-white [animation:none]" }), _jsx("div", { className: "bg-white", children: _jsxs("div", { className: "p-2", children: [_jsx("div", { className: "max-h-[500px] overflow-y-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden pr-1", children: _jsx("div", { className: "flex flex-col gap-2", onClick: () => onClose?.(), children: !hasChildren && emptyState ? (_jsx("div", { className: "px-4 py-3", children: emptyState })) : (children) }) }), footer && _jsx("div", { className: "pt-2 mt-2 border-t border-[#E6E6E6]", children: footer })] }) })] }));
69
+ }
70
+ SidebarNavPopover.displayName = "SidebarNavPopover";
71
+ //# sourceMappingURL=sidebar-nav-popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-nav-popover.js","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-nav-popover.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ export interface SidebarNavGroupProps {
3
+ /** Optional visible label for the group */
4
+ label?: string;
5
+ className?: string;
6
+ /** Additional className for the inner SidebarMenu (ul) */
7
+ menuClassName?: string;
8
+ children: React.ReactNode;
9
+ }
10
+ /**
11
+ * A group of sidebar nav items with an optional label.
12
+ * Wraps items in SidebarGroup + SidebarMenu primitives.
13
+ * Defaults to `p-0` (no padding) so the parent controls spacing.
14
+ */
15
+ export declare function SidebarNavGroup({ label, className, menuClassName, children, }: SidebarNavGroupProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace SidebarNavGroup {
17
+ var displayName: string;
18
+ }
19
+ export interface SidebarNavItemProps {
20
+ /** Link destination. If omitted, renders as a button. */
21
+ href?: string;
22
+ /** Icon component rendered before the label */
23
+ icon?: React.ComponentType<{
24
+ className?: string;
25
+ }>;
26
+ /** Paths that mark this item as active. Defaults to [href]. */
27
+ activePaths?: string[];
28
+ /** Whether the item is disabled */
29
+ disabled?: boolean;
30
+ /** Hide the chevron icon that appears on hover for popover items */
31
+ hideChevron?: boolean;
32
+ className?: string;
33
+ /** Click handler (for button-only items) */
34
+ onClick?: () => void;
35
+ /**
36
+ * Children: label text, and optionally a SidebarNavPopover.
37
+ * The component separates text children from SidebarNavPopover children automatically.
38
+ */
39
+ children: React.ReactNode;
40
+ }
41
+ /**
42
+ * An individual nav item inside a SidebarNavGroup.
43
+ *
44
+ * - When it has `href`: renders as a Next.js Link with active state detection.
45
+ * - When it contains a SidebarNavPopover child: shows chevron on hover,
46
+ * triggers popover on click; shows icon-only popover trigger when collapsed.
47
+ * - When sidebar is collapsed: shows icon-only with Tooltip.
48
+ */
49
+ export declare function SidebarNavItem({ href, icon: Icon, activePaths: activePathsProp, disabled, hideChevron, className, onClick, children, }: SidebarNavItemProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare namespace SidebarNavItem {
51
+ var displayName: string;
52
+ }
53
+ export interface SidebarNavDividerProps {
54
+ className?: string;
55
+ }
56
+ /**
57
+ * A visual divider between sidebar nav groups or items.
58
+ */
59
+ export declare function SidebarNavDivider({ className }: SidebarNavDividerProps): import("react/jsx-runtime").JSX.Element;
60
+ export declare namespace SidebarNavDivider {
61
+ var displayName: string;
62
+ }
63
+ //# sourceMappingURL=sidebar-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-nav.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-nav.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4B/B,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,2CAetB;yBApBe,eAAe;;;AA4B/B,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAC5B,QAAgB,EAChB,WAAmB,EACnB,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB,2CA2MrB;yBApNe,cAAc;;;AA4N9B,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CAOtE;yBAPe,iBAAiB"}
@@ -0,0 +1,119 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { useMemo, useState, useCallback } from "react";
5
+ import Link from "next/link";
6
+ import { ChevronRight } from "lucide-react";
7
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
8
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
9
+ import { cn, kebabCase } from "../../lib/utils";
10
+ import { SidebarGroup, SidebarGroupLabel, SidebarGroupContent, SidebarMenu, SidebarMenuItem, useSidebar, } from "../ui/sidebar";
11
+ import { Tooltip, TooltipContent, TooltipTrigger, } from "../ui/tooltip";
12
+ import { Popover } from "../ui/popover";
13
+ import { useSidebarActive } from "./use-sidebar-active";
14
+ /**
15
+ * A group of sidebar nav items with an optional label.
16
+ * Wraps items in SidebarGroup + SidebarMenu primitives.
17
+ * Defaults to `p-0` (no padding) so the parent controls spacing.
18
+ */
19
+ export function SidebarNavGroup({ label, className, menuClassName, children, }) {
20
+ return (_jsxs(SidebarGroup, { "data-slot": "sidebar-nav-group", "data-cy": label ? `sidebar-nav-group-${kebabCase(label)}` : undefined, className: cn("p-0", className), children: [label && _jsx(SidebarGroupLabel, { children: label }), _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { className: cn("gap-2", menuClassName), children: children }) })] }));
21
+ }
22
+ SidebarNavGroup.displayName = "SidebarNavGroup";
23
+ /**
24
+ * An individual nav item inside a SidebarNavGroup.
25
+ *
26
+ * - When it has `href`: renders as a Next.js Link with active state detection.
27
+ * - When it contains a SidebarNavPopover child: shows chevron on hover,
28
+ * triggers popover on click; shows icon-only popover trigger when collapsed.
29
+ * - When sidebar is collapsed: shows icon-only with Tooltip.
30
+ */
31
+ export function SidebarNavItem({ href, icon: Icon, activePaths: activePathsProp, disabled = false, hideChevron = false, className, onClick, children, }) {
32
+ const { state: sidebarState, isMobile } = useSidebar();
33
+ const collapsed = sidebarState === "collapsed" && !isMobile;
34
+ const activePaths = useMemo(() => activePathsProp ?? (href ? [href] : undefined), [activePathsProp, href]);
35
+ const isActive = useSidebarActive(activePaths);
36
+ const [isHovered, setIsHovered] = useState(false);
37
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
38
+ // Separate text/label children from SidebarNavPopover children
39
+ const { label, popoverElement } = useMemo(() => {
40
+ let popover = null;
41
+ const labelParts = [];
42
+ React.Children.forEach(children, (child) => {
43
+ if (React.isValidElement(child) &&
44
+ child.type?.displayName === "SidebarNavPopover") {
45
+ popover = child;
46
+ }
47
+ else {
48
+ labelParts.push(child);
49
+ }
50
+ });
51
+ return {
52
+ label: labelParts.length === 1 ? labelParts[0] : labelParts,
53
+ popoverElement: popover,
54
+ };
55
+ }, [children]);
56
+ const hasPopover = Boolean(popoverElement);
57
+ const itemId = useMemo(() => typeof label === "string"
58
+ ? kebabCase(label)
59
+ : href
60
+ ? kebabCase(href)
61
+ : "item", [label, href]);
62
+ const buttonDataCy = `sidebar-nav-${itemId}`;
63
+ const handleItemClick = useCallback(() => {
64
+ onClick?.();
65
+ }, [onClick]);
66
+ // Icon element
67
+ const iconEl = Icon ? (_jsx(Icon, { className: cn("size-5", isPopoverOpen
68
+ ? "text-primary-foreground"
69
+ : isActive
70
+ ? "text-primary"
71
+ : "text-[#1A1A1A]") })) : null;
72
+ const roundedClass = "rounded-[12px]";
73
+ const wrapperClasses = collapsed
74
+ ? cn("flex h-10 w-full items-center justify-center transition-colors", roundedClass, isPopoverOpen
75
+ ? "bg-primary text-primary-foreground"
76
+ : isActive
77
+ ? "bg-primary/10 text-primary"
78
+ : "text-[#1A1A1A] hover:bg-muted", disabled && "pointer-events-none opacity-50")
79
+ : cn("flex h-10 w-full items-center justify-start gap-2 p-3 transition-colors", roundedClass, isPopoverOpen
80
+ ? "bg-primary text-primary-foreground"
81
+ : isActive
82
+ ? "bg-primary/10 text-primary"
83
+ : "text-[#1A1A1A] hover:bg-muted", disabled && "pointer-events-none opacity-50");
84
+ // Content rendering
85
+ const content = collapsed ? (_jsx("span", { className: "flex items-center justify-center rounded-[4px]", children: iconEl })) : (_jsxs(_Fragment, { children: [_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "flex items-center justify-center rounded-[4px]", children: iconEl }), _jsx("span", { className: cn("font-normal text-sm leading-[16px]", isPopoverOpen
86
+ ? "text-primary-foreground"
87
+ : isActive
88
+ ? "text-primary"
89
+ : "text-[#1A1A1A]"), children: label })] }), hasPopover && !hideChevron && (isPopoverOpen || isHovered) && (_jsx(ChevronRight, { className: cn("ml-auto h-4 w-4", isPopoverOpen ? "text-primary-foreground" : "text-[#1A1A1A]") }))] }));
90
+ const sharedProps = {
91
+ className: wrapperClasses,
92
+ "data-slot": "sidebar-nav-item",
93
+ "data-cy": buttonDataCy,
94
+ "aria-label": collapsed ? (typeof label === "string" ? label : undefined) : undefined,
95
+ ...(hasPopover && {
96
+ "aria-haspopup": "dialog",
97
+ "aria-expanded": isPopoverOpen,
98
+ }),
99
+ onClick: handleItemClick,
100
+ onMouseEnter: () => !collapsed && setIsHovered(true),
101
+ onMouseLeave: () => setIsHovered(false),
102
+ };
103
+ // Build the trigger element
104
+ const trigger = hasPopover ? (_jsx("button", { type: "button", ...sharedProps, children: content })) : href ? (_jsx(Link, { href: href, ...sharedProps, children: content })) : (_jsx("button", { type: "button", ...sharedProps, disabled: disabled && !onClick, className: cn(wrapperClasses, disabled && !onClick && "cursor-default opacity-60"), children: content }));
105
+ // Build the final element with popover/tooltip wrapping
106
+ const element = hasPopover ? (_jsxs(Popover, { open: isPopoverOpen, onOpenChange: setIsPopoverOpen, children: [collapsed ? (_jsxs(Tooltip, { children: [_jsx(TooltipPrimitive.Trigger, { asChild: true, children: _jsx(PopoverPrimitive.Trigger, { asChild: true, children: trigger }) }), _jsx(TooltipContent, { side: "right", children: typeof label === "string" ? label : "" })] })) : (_jsx(PopoverPrimitive.Trigger, { asChild: true, children: trigger })), React.isValidElement(popoverElement)
107
+ ? React.cloneElement(popoverElement, { onClose: () => setIsPopoverOpen(false) })
108
+ : popoverElement] })) : collapsed ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: trigger }), _jsx(TooltipContent, { side: "right", children: typeof label === "string" ? label : "" })] })) : (trigger);
109
+ return (_jsx(SidebarMenuItem, { className: className, children: element }));
110
+ }
111
+ SidebarNavItem.displayName = "SidebarNavItem";
112
+ /**
113
+ * A visual divider between sidebar nav groups or items.
114
+ */
115
+ export function SidebarNavDivider({ className }) {
116
+ return (_jsx("div", { "data-slot": "sidebar-nav-divider", className: cn("w-full border-b-[1.5px] border-[#E6E6E6] -my-2", className) }));
117
+ }
118
+ SidebarNavDivider.displayName = "SidebarNavDivider";
119
+ //# sourceMappingURL=sidebar-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-nav.js","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-nav.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAexD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,SAAS,EACT,aAAa,EACb,QAAQ,GACa;IACrB,OAAO,CACL,MAAC,YAAY,iBACD,mBAAmB,aACpB,KAAK,CAAC,CAAC,CAAC,qBAAqB,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACpE,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,aAE9B,KAAK,IAAI,KAAC,iBAAiB,cAAE,KAAK,GAAqB,EACxD,KAAC,mBAAmB,cAClB,KAAC,WAAW,IAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,YAC/C,QAAQ,GACG,GACM,IACT,CAChB,CAAC;AACJ,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AA2BhD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAC5B,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,OAAO,EACP,QAAQ,GACY;IACpB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC;IAE5D,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACpD,CAAC,eAAe,EAAE,IAAI,CAAC,CACxB,CAAC;IACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,+DAA+D;IAC/D,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7C,IAAI,OAAO,GAAoB,IAAI,CAAC;QACpC,MAAM,UAAU,GAAsB,EAAE,CAAC;QAEzC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,IACE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B,KAAK,CAAC,IAAY,EAAE,WAAW,KAAK,mBAAmB,EACxD,CAAC;gBACD,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;YAC3D,cAAc,EAAE,OAAO;SACxB,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CACH,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YACjB,CAAC,CAAC,MAAM,EACd,CAAC,KAAK,EAAE,IAAI,CAAC,CACd,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,MAAM,EAAE,CAAC;IAE7C,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,OAAO,EAAE,EAAE,CAAC;IACd,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,eAAe;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,QAAQ,EACR,aAAa;YACX,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,gBAAgB,CACvB,GACD,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,gBAAgB,CAAC;IAEtC,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC,EAAE,CACA,gEAAgE,EAChE,YAAY,EACZ,aAAa;YACX,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,+BAA+B,EACrC,QAAQ,IAAI,gCAAgC,CAC7C;QACH,CAAC,CAAC,EAAE,CACA,yEAAyE,EACzE,YAAY,EACZ,aAAa;YACX,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,+BAA+B,EACrC,QAAQ,IAAI,gCAAgC,CAC7C,CAAC;IAEN,oBAAoB;IACpB,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAC1B,eAAM,SAAS,EAAC,gDAAgD,YAC7D,MAAM,GACF,CACR,CAAC,CAAC,CAAC,CACF,8BACE,gBAAM,SAAS,EAAC,yBAAyB,aACvC,eAAM,SAAS,EAAC,gDAAgD,YAC7D,MAAM,GACF,EACP,eACE,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,aAAa;4BACX,CAAC,CAAC,yBAAyB;4BAC3B,CAAC,CAAC,QAAQ;gCACR,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,gBAAgB,CACvB,YAEA,KAAK,GACD,IACF,EACN,UAAU,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,IAAI,CAC7D,KAAC,YAAY,IACX,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gBAAgB,CAC7D,GACD,CACH,IACA,CACJ,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,kBAA2B;QACxC,SAAS,EAAE,YAAY;QACvB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QACrF,GAAG,CAAC,UAAU,IAAI;YAChB,eAAe,EAAE,QAAiB;YAClC,eAAe,EAAE,aAAa;SAC/B,CAAC;QACF,OAAO,EAAE,eAAe;QACxB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC;QACpD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;KACxC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAC3B,iBAAQ,IAAI,EAAC,QAAQ,KAAK,WAAW,YAClC,OAAO,GACD,CACV,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACT,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAM,WAAW,YAC9B,OAAO,GACH,CACR,CAAC,CAAC,CAAC,CACF,iBACE,IAAI,EAAC,QAAQ,KACT,WAAW,EACf,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,EAC9B,SAAS,EAAE,EAAE,CACX,cAAc,EACd,QAAQ,IAAI,CAAC,OAAO,IAAI,2BAA2B,CACpD,YAEA,OAAO,GACD,CACV,CAAC;IAEF,wDAAwD;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAC3B,MAAC,OAAO,IAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,aACzD,SAAS,CAAC,CAAC,CAAC,CACX,MAAC,OAAO,eACN,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC9B,OAAO,GACiB,GACF,EAC3B,KAAC,cAAc,IAAC,IAAI,EAAC,OAAO,YACzB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACxB,IACT,CACX,CAAC,CAAC,CAAC,CACF,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAAE,OAAO,GAA4B,CACvE,EAEA,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;gBACnC,CAAC,CAAC,KAAK,CAAC,YAAY,CAChB,cAA8D,EAC9D,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAC3C;gBACH,CAAC,CAAC,cAAc,IACV,CACX,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBAAE,OAAO,GAAkB,EAClD,KAAC,cAAc,IAAC,IAAI,EAAC,OAAO,YACzB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GACxB,IACT,CACX,CAAC,CAAC,CAAC,CACF,OAAO,CACR,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,IAAC,SAAS,EAAE,SAAS,YAClC,OAAO,GACQ,CACnB,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAU9C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAA0B;IACrE,OAAO,CACL,2BACY,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CAAC,gDAAgD,EAAE,SAAS,CAAC,GAC1E,CACH,CAAC;AACJ,CAAC;AAED,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ export interface SidebarToggleProps {
3
+ className?: string;
4
+ /** Custom icon component. Defaults to PanelLeftIcon. */
5
+ icon?: React.ComponentType<{
6
+ className?: string;
7
+ }>;
8
+ }
9
+ /**
10
+ * Collapse/expand toggle button for the sidebar.
11
+ * Uses useSidebar().toggleSidebar() internally.
12
+ */
13
+ export declare function SidebarToggle({ className, icon: Icon }: SidebarToggleProps): import("react/jsx-runtime").JSX.Element | null;
14
+ //# sourceMappingURL=sidebar-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-toggle.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,kBAAkB,kDA4B1E"}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { PanelLeftIcon } from "lucide-react";
4
+ import { cn } from "../../lib/utils";
5
+ import { useSidebar } from "../ui/sidebar";
6
+ /**
7
+ * Collapse/expand toggle button for the sidebar.
8
+ * Uses useSidebar().toggleSidebar() internally.
9
+ */
10
+ export function SidebarToggle({ className, icon: Icon }) {
11
+ const { toggleSidebar, state, isMobile } = useSidebar();
12
+ const collapsed = state === "collapsed";
13
+ if (isMobile)
14
+ return null;
15
+ const IconComp = Icon ?? PanelLeftIcon;
16
+ return (_jsx("div", { className: cn("flex", collapsed ? "justify-center" : "justify-end", className), children: _jsx("button", { type: "button", "data-slot": "sidebar-toggle", "data-cy": "sidebar-toggle", onClick: toggleSidebar, "aria-label": "Toggle sidebar", className: "flex h-8 w-8 items-center justify-center rounded-[8px] bg-[#F2F2F2] text-[#1A1A1A] transition-colors hover:bg-[#EDEDED] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30", children: _jsx(IconComp, { className: "h-4 w-4" }) }) }));
17
+ }
18
+ //# sourceMappingURL=sidebar-toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-toggle.js","sourceRoot":"","sources":["../../../src/components/sidebar/sidebar-toggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQ3C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAsB;IACzE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;IACxD,MAAM,SAAS,GAAG,KAAK,KAAK,WAAW,CAAC;IAExC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,QAAQ,GAAG,IAAI,IAAI,aAAa,CAAC;IAEvC,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,MAAM,EACN,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAC5C,SAAS,CACV,YAED,iBACE,IAAI,EAAC,QAAQ,eACH,gBAAgB,aAClB,gBAAgB,EACxB,OAAO,EAAE,aAAa,gBACX,gBAAgB,EAC3B,SAAS,EAAC,uMAAuM,YAEjN,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,GACzB,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Default active-path matcher.
3
+ * Returns true when the current path matches any of the given active paths
4
+ * using prefix matching.
5
+ */
6
+ export declare function defaultIsActivePath(currentPath: string, activePaths: string[]): boolean;
7
+ /**
8
+ * Hook that checks whether the current route matches any of the given active paths.
9
+ * Uses `usePathname()` from Next.js internally.
10
+ */
11
+ export declare function useSidebarActive(activePaths?: string[]): boolean;
12
+ //# sourceMappingURL=use-sidebar-active.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sidebar-active.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/use-sidebar-active.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CA0BT;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAOhE"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { usePathname } from "next/navigation";
4
+ /**
5
+ * Default active-path matcher.
6
+ * Returns true when the current path matches any of the given active paths
7
+ * using prefix matching.
8
+ */
9
+ export function defaultIsActivePath(currentPath, activePaths) {
10
+ return activePaths.some((activePath) => {
11
+ // Exact match
12
+ if (currentPath === activePath)
13
+ return true;
14
+ // Check if activePath contains query params
15
+ const [pathPart, queryPart] = activePath.split("?");
16
+ // If there's a query part, check path prefix + query param match
17
+ if (queryPart && currentPath.startsWith(pathPart)) {
18
+ const url = new URL(currentPath, "http://localhost");
19
+ const params = new URLSearchParams(queryPart);
20
+ for (const [key, value] of params) {
21
+ if (url.searchParams.get(key) !== value)
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ // Prefix match (ensure we match at path segment boundaries)
27
+ if (currentPath.startsWith(activePath)) {
28
+ const nextChar = currentPath[activePath.length];
29
+ return !nextChar || nextChar === "/" || nextChar === "?";
30
+ }
31
+ return false;
32
+ });
33
+ }
34
+ /**
35
+ * Hook that checks whether the current route matches any of the given active paths.
36
+ * Uses `usePathname()` from Next.js internally.
37
+ */
38
+ export function useSidebarActive(activePaths) {
39
+ const pathname = usePathname();
40
+ return useMemo(() => {
41
+ if (!activePaths || activePaths.length === 0)
42
+ return false;
43
+ return defaultIsActivePath(pathname, activePaths);
44
+ }, [pathname, activePaths]);
45
+ }
46
+ //# sourceMappingURL=use-sidebar-active.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sidebar-active.js","sourceRoot":"","sources":["../../../src/components/sidebar/use-sidebar-active.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,WAAqB;IAErB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QACrC,cAAc;QACd,IAAI,WAAW,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAE5C,4CAA4C;QAC5C,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpD,iEAAiE;QACjE,IAAI,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;oBAAE,OAAO,KAAK,CAAC;YACxD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;QAC3D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAsB;IACrD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,OAAO,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Separator };
5
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAIhE,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAA0B,EAC1B,UAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CActD;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
+ import { cn } from "../../lib/utils";
5
+ function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
6
+ return (_jsx(SeparatorPrimitive.Root, { "data-slot": "separator", decorative: decorative, orientation: orientation, className: cn("bg-border shrink-0", orientation === "horizontal" ? "h-px w-full" : "h-full w-px", className), ...props }));
7
+ }
8
+ export { Separator };
9
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","sourceRoot":"","sources":["../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,SAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAW,GAAG,YAAY,EAC1B,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EAC6C;IACrD,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,WAAW,EACrB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,oBAAoB,EACpB,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAC5D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,69 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { Button } from "./button";
4
+ import { Input } from "./input";
5
+ import { Separator } from "./separator";
6
+ import { TooltipContent } from "./tooltip";
7
+ type SidebarContextType = {
8
+ state: "expanded" | "collapsed";
9
+ open: boolean;
10
+ setOpen: (open: boolean) => void;
11
+ openMobile: boolean;
12
+ setOpenMobile: (open: boolean) => void;
13
+ isMobile: boolean;
14
+ toggleSidebar: () => void;
15
+ };
16
+ declare function useSidebar(): SidebarContextType;
17
+ declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React.ComponentProps<"div"> & {
18
+ defaultOpen?: boolean;
19
+ open?: boolean;
20
+ onOpenChange?: (open: boolean) => void;
21
+ }): import("react/jsx-runtime").JSX.Element;
22
+ declare function Sidebar({ variant, collapsible, className, children, ...props }: React.ComponentProps<"div"> & {
23
+ variant?: "sidebar" | "floating" | "inset";
24
+ collapsible?: "offcanvas" | "icon";
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
27
+ declare function SidebarRail({ className, ...props }: React.ComponentProps<"button">): import("react/jsx-runtime").JSX.Element;
28
+ declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
29
+ declare function SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>): import("react/jsx-runtime").JSX.Element;
30
+ declare function SidebarHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
31
+ declare function SidebarFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
32
+ declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
33
+ declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
34
+ declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
35
+ declare function SidebarGroupLabel({ className, asChild, ...props }: React.ComponentProps<"div"> & {
36
+ asChild?: boolean;
37
+ }): import("react/jsx-runtime").JSX.Element;
38
+ declare function SidebarGroupAction({ className, asChild, ...props }: React.ComponentProps<"button"> & {
39
+ asChild?: boolean;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
42
+ declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
43
+ declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
44
+ declare const sidebarMenuButtonVariants: (props?: ({
45
+ variant?: "default" | "outline" | null | undefined;
46
+ size?: "default" | "sm" | "lg" | null | undefined;
47
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
48
+ declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: React.ComponentProps<"button"> & {
49
+ asChild?: boolean;
50
+ isActive?: boolean;
51
+ tooltip?: string | React.ComponentProps<typeof TooltipContent>;
52
+ } & VariantProps<typeof sidebarMenuButtonVariants>): import("react/jsx-runtime").JSX.Element;
53
+ declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: React.ComponentProps<"button"> & {
54
+ asChild?: boolean;
55
+ showOnHover?: boolean;
56
+ }): import("react/jsx-runtime").JSX.Element;
57
+ declare function SidebarMenuBadge({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
58
+ declare function SidebarMenuSkeleton({ className, showIcon, ...props }: React.ComponentProps<"div"> & {
59
+ showIcon?: boolean;
60
+ }): import("react/jsx-runtime").JSX.Element;
61
+ declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
62
+ declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
63
+ declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: React.ComponentProps<"a"> & {
64
+ asChild?: boolean;
65
+ size?: "sm" | "md";
66
+ isActive?: boolean;
67
+ }): import("react/jsx-runtime").JSX.Element;
68
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, sidebarMenuButtonVariants, };
69
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Slot } from "@radix-ui/react-slot";
5
+ import { cva } from "class-variance-authority";
6
+ import { PanelLeftIcon } from "lucide-react";
7
+ import { useIsMobile } from "../../hooks/use-is-mobile";
8
+ import { cn } from "../../lib/utils";
9
+ import { Button } from "./button";
10
+ import { Input } from "./input";
11
+ import { Separator } from "./separator";
12
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "./sheet";
13
+ import { Skeleton } from "./skeleton";
14
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "./tooltip";
15
+ const SIDEBAR_WIDTH = "184px";
16
+ const SIDEBAR_WIDTH_MOBILE = "184px";
17
+ const SIDEBAR_WIDTH_ICON = "64px";
18
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
19
+ const SidebarContext = React.createContext(null);
20
+ function useSidebar() {
21
+ const context = React.useContext(SidebarContext);
22
+ if (!context) {
23
+ throw new Error("useSidebar must be used within a SidebarProvider.");
24
+ }
25
+ return context;
26
+ }
27
+ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
28
+ const isMobile = useIsMobile();
29
+ const [openMobile, setOpenMobile] = React.useState(false);
30
+ const [_open, _setOpen] = React.useState(defaultOpen);
31
+ const open = openProp ?? _open;
32
+ const setOpen = React.useCallback((value) => {
33
+ const openState = typeof value === "function" ? value(open) : value;
34
+ if (setOpenProp) {
35
+ setOpenProp(openState);
36
+ }
37
+ else {
38
+ _setOpen(openState);
39
+ }
40
+ }, [setOpenProp, open]);
41
+ const toggleSidebar = React.useCallback(() => {
42
+ return isMobile
43
+ ? setOpenMobile((open) => !open)
44
+ : setOpen((open) => !open);
45
+ }, [isMobile, setOpen, setOpenMobile]);
46
+ React.useEffect(() => {
47
+ const handleKeyDown = (event) => {
48
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT &&
49
+ (event.metaKey || event.ctrlKey)) {
50
+ event.preventDefault();
51
+ toggleSidebar();
52
+ }
53
+ };
54
+ window.addEventListener("keydown", handleKeyDown);
55
+ return () => window.removeEventListener("keydown", handleKeyDown);
56
+ }, [toggleSidebar]);
57
+ const state = open ? "expanded" : "collapsed";
58
+ const contextValue = React.useMemo(() => ({
59
+ state,
60
+ open,
61
+ setOpen,
62
+ isMobile,
63
+ openMobile,
64
+ setOpenMobile,
65
+ toggleSidebar,
66
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
67
+ return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx(TooltipProvider, { delayDuration: 0, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
68
+ "--sidebar-width": SIDEBAR_WIDTH,
69
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
70
+ ...style,
71
+ }, className: cn("group/sidebar-wrapper has-data-[variant=inset]:bg-neutral-50 flex min-h-svh w-full", className), ...props, children: children }) }) }));
72
+ }
73
+ function Sidebar({ variant = "sidebar", collapsible = "offcanvas", className, children, ...props }) {
74
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
75
+ if (isMobile) {
76
+ return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "bg-white text-sidebar-foreground border-r-0 w-(--sidebar-width) p-0 [&>button]:hidden", style: {
77
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
78
+ }, side: "left", children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
79
+ }
80
+ return (_jsxs("div", { className: "group peer text-sidebar-foreground hidden lg:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-slot": "sidebar", children: [_jsx("div", { className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-300 ease-in-out", "group-data-[collapsible=offcanvas]:w-0", variant === "floating" || variant === "inset"
81
+ ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
82
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-all duration-300 ease-in-out lg:flex", "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]", variant === "floating" || variant === "inset"
83
+ ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
84
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", className: "bg-white group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm", children: children }) })] }));
85
+ }
86
+ function SidebarTrigger({ className, onClick, ...props }) {
87
+ const { toggleSidebar } = useSidebar();
88
+ return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon", className: cn("h-7 w-7", className), onClick: (event) => {
89
+ onClick?.(event);
90
+ toggleSidebar();
91
+ }, ...props, children: [_jsx(PanelLeftIcon, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
92
+ }
93
+ function SidebarRail({ className, ...props }) {
94
+ const { toggleSidebar } = useSidebar();
95
+ return (_jsx("button", { "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear -right-4 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "cursor-w-resize", "[[data-state=collapsed]_&]:cursor-e-resize", "hover:group-data-[collapsible=offcanvas]:bg-neutral-50 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-collapsible=offcanvas]_&]:-right-2", className), ...props }));
96
+ }
97
+ function SidebarInset({ className, ...props }) {
98
+ return (_jsx("main", { "data-slot": "sidebar-inset", className: cn("bg-white relative flex w-full flex-1 min-w-0 flex-col", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className), ...props }));
99
+ }
100
+ function SidebarInput({ className, ...props }) {
101
+ return (_jsx(Input, { "data-slot": "sidebar-input", "data-sidebar": "input", className: cn("bg-background h-8 w-full shadow-none", className), ...props }));
102
+ }
103
+ function SidebarHeader({ className, ...props }) {
104
+ return (_jsx("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: cn("flex flex-col gap-2 w-full items-start group-data-[collapsible=icon]:items-center", className), ...props }));
105
+ }
106
+ function SidebarFooter({ className, ...props }) {
107
+ return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: cn("flex flex-col gap-2 px-3 py-2 mb-2 group-data-[collapsible=icon]:px-[7px]", className), ...props }));
108
+ }
109
+ function SidebarSeparator({ className, ...props }) {
110
+ return (_jsx(Separator, { "data-slot": "sidebar-separator", "data-sidebar": "separator", className: cn("bg-sidebar-border mx-2 w-auto", className), ...props }));
111
+ }
112
+ function SidebarContent({ className, ...props }) {
113
+ return (_jsx("div", { "data-slot": "sidebar-content", "data-sidebar": "content", className: cn("flex min-h-0 flex-1 flex-col gap-4 pt-2 pb-6 px-3 items-start overflow-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden transition-[padding] duration-300 ease-in-out group-data-[collapsible=icon]:overflow-hidden group-data-[collapsible=icon]:items-center group-data-[collapsible=icon]:px-[7px]", className), ...props }));
114
+ }
115
+ function SidebarGroup({ className, ...props }) {
116
+ return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
117
+ }
118
+ function SidebarGroupLabel({ className, asChild = false, ...props }) {
119
+ const Comp = asChild ? Slot : "div";
120
+ return (_jsx(Comp, { "data-slot": "sidebar-group-label", "data-sidebar": "group-label", className: cn("text-sidebar-foreground/70 ring-sidebar-ring flex px-3 py-2 shrink-0 items-center rounded-md text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className), ...props }));
121
+ }
122
+ function SidebarGroupAction({ className, asChild = false, ...props }) {
123
+ const Comp = asChild ? Slot : "button";
124
+ return (_jsx(Comp, { "data-slot": "sidebar-group-action", "data-sidebar": "group-action", className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", className), ...props }));
125
+ }
126
+ function SidebarGroupContent({ className, ...props }) {
127
+ return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props }));
128
+ }
129
+ function SidebarMenu({ className, ...props }) {
130
+ return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col", className), ...props }));
131
+ }
132
+ function SidebarMenuItem({ className, ...props }) {
133
+ return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
134
+ }
135
+ const sidebarMenuButtonVariants = cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
136
+ variants: {
137
+ variant: {
138
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
139
+ outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
140
+ },
141
+ size: {
142
+ default: "h-8 text-sm",
143
+ sm: "h-7 text-xs",
144
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
145
+ },
146
+ },
147
+ defaultVariants: {
148
+ variant: "default",
149
+ size: "default",
150
+ },
151
+ });
152
+ function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
153
+ const Comp = asChild ? Slot : "button";
154
+ const { isMobile, state } = useSidebar();
155
+ const button = (_jsx(Comp, { "data-slot": "sidebar-menu-button", "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: cn(sidebarMenuButtonVariants({ variant, size }), className), ...props }));
156
+ if (!tooltip) {
157
+ return button;
158
+ }
159
+ if (typeof tooltip === "string") {
160
+ tooltip = {
161
+ children: tooltip,
162
+ };
163
+ }
164
+ return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: button }), _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
165
+ }
166
+ function SidebarMenuAction({ className, asChild = false, showOnHover = false, ...props }) {
167
+ const Comp = asChild ? Slot : "button";
168
+ return (_jsx(Comp, { "data-slot": "sidebar-menu-action", "data-sidebar": "menu-action", className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover &&
169
+ "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", className), ...props }));
170
+ }
171
+ function SidebarMenuBadge({ className, ...props }) {
172
+ return (_jsx("div", { "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: cn("text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className), ...props }));
173
+ }
174
+ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
175
+ const width = React.useMemo(() => {
176
+ return `${Math.floor(Math.random() * 30) + 60}%`;
177
+ }, []);
178
+ return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn("flex h-10 items-center gap-3 rounded-lg px-3 py-2 bg-muted/30 border border-muted/30 mb-2", className), ...props, children: [showIcon && (_jsx(Skeleton, { className: "h-5 w-5 rounded-md", "data-sidebar": "menu-skeleton-icon" })), _jsx(Skeleton, { className: "h-4 flex-1 rounded", "data-sidebar": "menu-skeleton-text", style: {
179
+ width,
180
+ } })] }));
181
+ }
182
+ function SidebarMenuSub({ className, ...props }) {
183
+ return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", className), ...props }));
184
+ }
185
+ function SidebarMenuSubItem({ className, ...props }) {
186
+ return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props }));
187
+ }
188
+ function SidebarMenuSubButton({ asChild = false, size = "md", isActive = false, className, ...props }) {
189
+ const Comp = asChild ? Slot : "a";
190
+ return (_jsx(Comp, { "data-slot": "sidebar-menu-sub-button", "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: cn("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className), ...props }));
191
+ }
192
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, sidebarMenuButtonVariants, };
193
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/components/ui/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ export { Skeleton };
4
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "../../lib/utils";
4
+ function Skeleton({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "skeleton", className: cn("bg-muted animate-pulse rounded-md", className), ...props }));
6
+ }
7
+ export { Skeleton };
8
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../../src/components/ui/skeleton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACpE,OAAO,CACL,2BACY,UAAU,EACpB,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,KACzD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): import("react/jsx-runtime").JSX.Element;
4
+ declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
5
+ declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function TooltipContent({ className, sideOffset, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
8
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,iBAAS,eAAe,CAAC,EACvB,aAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,2CAQxD;AAED,iBAAS,OAAO,CAAC,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAEpD;AAED,iBAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAEvD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAcvD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4
+ import { cn } from "../../lib/utils";
5
+ function TooltipProvider({ delayDuration = 0, ...props }) {
6
+ return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
7
+ }
8
+ function Tooltip({ ...props }) {
9
+ return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
10
+ }
11
+ function TooltipTrigger({ ...props }) {
12
+ return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
13
+ }
14
+ function TooltipContent({ className, sideOffset = 4, ...props }) {
15
+ return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-50 overflow-hidden rounded-md px-3 py-1.5 text-xs", className), ...props }) }));
16
+ }
17
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
18
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/components/ui/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,SAAS,eAAe,CAAC,EACvB,aAAa,GAAG,CAAC,EACjB,GAAG,KAAK,EAC+C;IACvD,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,iBACd,kBAAkB,EAC5B,aAAa,EAAE,aAAa,KACxB,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,GAAG,KAAK,EAC2C;IACnD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AAClE,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EAC8C;IACtD,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,iBACb,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,mXAAmX,EACnX,SAAS,CACV,KACG,KAAK,GACT,GACsB,CAC3B,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -1,2 +1,5 @@
1
1
  export { useDataTable, useUrlState } from "../components/data-table";
2
+ export { useSidebar } from "../components/sidebar";
3
+ export { useSidebarActive } from "../components/sidebar";
4
+ export { useIsMobile } from "./use-is-mobile";
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,3 +1,6 @@
1
1
  "use client";
2
2
  export { useDataTable, useUrlState } from "../components/data-table";
3
+ export { useSidebar } from "../components/sidebar";
4
+ export { useSidebarActive } from "../components/sidebar";
5
+ export { useIsMobile } from "./use-is-mobile";
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useIsMobile(): boolean;
2
+ //# sourceMappingURL=use-is-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-is-mobile.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,YAgB1B"}
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ const MOBILE_BREAKPOINT = 1024;
3
+ export function useIsMobile() {
4
+ const [isMobile, setIsMobile] = React.useState(undefined);
5
+ React.useEffect(() => {
6
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
7
+ const onChange = () => {
8
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
9
+ };
10
+ mql.addEventListener("change", onChange);
11
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
12
+ return () => mql.removeEventListener("change", onChange);
13
+ }, []);
14
+ return !!isMobile;
15
+ }
16
+ //# sourceMappingURL=use-is-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-is-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC5C,SAAS,CACV,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./components/data-table";
2
2
  export * from "./components/page-header";
3
+ export * from "./components/sidebar";
3
4
  export * from "./hooks";
4
5
  export * from "./providers";
5
6
  export * from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  export * from "./components/data-table";
3
3
  export * from "./components/page-header";
4
+ export * from "./components/sidebar";
4
5
  export * from "./hooks";
5
6
  export * from "./providers";
6
7
  export * from "./utils";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { DataTableProvider, UrlStateProvider } from "../components/data-table";
2
+ export { SidebarProvider } from "../components/sidebar";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  "use client";
2
2
  export { DataTableProvider, UrlStateProvider } from "../components/data-table";
3
+ export { SidebarProvider } from "../components/sidebar";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export type { DataTableColumnMeta, DataTableQueryState, FilterConfig, ClientFilterConfig, ServerFilterConfig, NoFilterConfig, PaginationConfig, ClientPaginationConfig, ServerPaginationConfig, NoPaginationConfig, PaginationParams, } from "../components/data-table";
2
2
  export type { UrlStateConfig, UrlStateContextValue } from "../components/data-table";
3
3
  export type { PaymentLabel } from "../components/data-table";
4
+ export type { SidebarNavGroupProps, SidebarNavItemProps, } from "../components/sidebar";
5
+ export type { SidebarNavPopoverProps, SidebarNavPopoverItemProps, SidebarNavPopoverActionProps, } from "../components/sidebar";
6
+ export type { SidebarToggleProps } from "../components/sidebar";
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a5it/sync-ui",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "Shared UI components for A5 apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -59,22 +59,26 @@
59
59
  "@radix-ui/react-dropdown-menu": "^2.1.16",
60
60
  "@radix-ui/react-popover": "^1.1.15",
61
61
  "@radix-ui/react-scroll-area": "^1.2.10",
62
+ "@radix-ui/react-separator": "^1.1.7",
62
63
  "@radix-ui/react-slot": "^1.2.3",
63
64
  "@radix-ui/react-tabs": "^1.1.13",
65
+ "@radix-ui/react-tooltip": "^1.2.7",
64
66
  "@tanstack/react-table": "^8.21.3",
65
67
  "class-variance-authority": "^0.7.1",
66
68
  "clsx": "^2.1.1",
67
69
  "lucide-react": "^0.477.0",
70
+ "next": ">=13.0.0",
68
71
  "nuqs": "^2.7.2",
69
72
  "react": ">=19.0.0",
70
73
  "react-dom": ">=19.0.0",
71
- "tailwind-merge": "^3.3.1",
72
- "next": ">=13.0.0"
74
+ "tailwind-merge": "^3.3.1"
73
75
  },
74
76
  "devDependencies": {
77
+ "@radix-ui/react-popover": "^1.1.15",
78
+ "@radix-ui/react-separator": "^1.1.8",
79
+ "@radix-ui/react-tooltip": "^1.2.8",
75
80
  "@types/react": "^19.2.2",
76
81
  "@types/react-dom": "^19.2.2",
77
- "@radix-ui/react-popover": "^1.1.15",
78
82
  "typescript": "^5.9.3"
79
83
  },
80
84
  "publishConfig": {