@powered-by-array/ui 1.33.0 → 1.35.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 (77) hide show
  1. package/dist/components/FloatingNav/FloatingNav.d.ts +3 -0
  2. package/dist/components/FloatingNav/FloatingNav.d.ts.map +1 -0
  3. package/dist/components/FloatingNav/FloatingNav.js +10 -0
  4. package/dist/components/FloatingNav/FloatingNav.js.map +1 -0
  5. package/dist/components/FloatingNav/FloatingNav.types.d.ts +12 -0
  6. package/dist/components/FloatingNav/FloatingNav.types.d.ts.map +1 -0
  7. package/dist/components/FloatingNav/FloatingNav.types.js +2 -0
  8. package/dist/components/FloatingNav/FloatingNav.types.js.map +1 -0
  9. package/dist/components/FloatingNav/FloatingNav.variants.d.ts +11 -0
  10. package/dist/components/FloatingNav/FloatingNav.variants.d.ts.map +1 -0
  11. package/dist/components/FloatingNav/FloatingNav.variants.js +40 -0
  12. package/dist/components/FloatingNav/FloatingNav.variants.js.map +1 -0
  13. package/dist/components/FloatingNav/index.d.ts +5 -0
  14. package/dist/components/FloatingNav/index.d.ts.map +1 -0
  15. package/dist/components/FloatingNav/index.js +3 -0
  16. package/dist/components/FloatingNav/index.js.map +1 -0
  17. package/dist/components/Sidebar/Sidebar.context.d.ts +4 -0
  18. package/dist/components/Sidebar/Sidebar.context.d.ts.map +1 -0
  19. package/dist/components/Sidebar/Sidebar.context.js +3 -0
  20. package/dist/components/Sidebar/Sidebar.context.js.map +1 -0
  21. package/dist/components/Sidebar/Sidebar.d.ts +15 -0
  22. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
  23. package/dist/components/Sidebar/Sidebar.js +68 -0
  24. package/dist/components/Sidebar/Sidebar.js.map +1 -0
  25. package/dist/components/Sidebar/Sidebar.types.d.ts +42 -0
  26. package/dist/components/Sidebar/Sidebar.types.d.ts.map +1 -0
  27. package/dist/components/Sidebar/Sidebar.types.js +2 -0
  28. package/dist/components/Sidebar/Sidebar.types.js.map +1 -0
  29. package/dist/components/Sidebar/Sidebar.variants.d.ts +7 -0
  30. package/dist/components/Sidebar/Sidebar.variants.d.ts.map +1 -0
  31. package/dist/components/Sidebar/Sidebar.variants.js +28 -0
  32. package/dist/components/Sidebar/Sidebar.variants.js.map +1 -0
  33. package/dist/components/Sidebar/SidebarDivider.d.ts +3 -0
  34. package/dist/components/Sidebar/SidebarDivider.d.ts.map +1 -0
  35. package/dist/components/Sidebar/SidebarDivider.js +7 -0
  36. package/dist/components/Sidebar/SidebarDivider.js.map +1 -0
  37. package/dist/components/Sidebar/SidebarFooter.d.ts +2 -0
  38. package/dist/components/Sidebar/SidebarFooter.d.ts.map +1 -0
  39. package/dist/components/Sidebar/SidebarFooter.js +5 -0
  40. package/dist/components/Sidebar/SidebarFooter.js.map +1 -0
  41. package/dist/components/Sidebar/SidebarHeader/SidebarHeader.d.ts +2 -0
  42. package/dist/components/Sidebar/SidebarHeader/SidebarHeader.d.ts.map +1 -0
  43. package/dist/components/Sidebar/SidebarHeader/SidebarHeader.js +12 -0
  44. package/dist/components/Sidebar/SidebarHeader/SidebarHeader.js.map +1 -0
  45. package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.d.ts +3 -0
  46. package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.d.ts.map +1 -0
  47. package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.js +13 -0
  48. package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.js.map +1 -0
  49. package/dist/components/Sidebar/SidebarHeader/index.d.ts +2 -0
  50. package/dist/components/Sidebar/SidebarHeader/index.d.ts.map +1 -0
  51. package/dist/components/Sidebar/SidebarHeader/index.js +2 -0
  52. package/dist/components/Sidebar/SidebarHeader/index.js.map +1 -0
  53. package/dist/components/Sidebar/SidebarInset.d.ts +2 -0
  54. package/dist/components/Sidebar/SidebarInset.d.ts.map +1 -0
  55. package/dist/components/Sidebar/SidebarInset.js +6 -0
  56. package/dist/components/Sidebar/SidebarInset.js.map +1 -0
  57. package/dist/components/Sidebar/SidebarProvider.d.ts +3 -0
  58. package/dist/components/Sidebar/SidebarProvider.d.ts.map +1 -0
  59. package/dist/components/Sidebar/SidebarProvider.js +64 -0
  60. package/dist/components/Sidebar/SidebarProvider.js.map +1 -0
  61. package/dist/components/Sidebar/hooks/useSidebar.d.ts +3 -0
  62. package/dist/components/Sidebar/hooks/useSidebar.d.ts.map +1 -0
  63. package/dist/components/Sidebar/hooks/useSidebar.js +10 -0
  64. package/dist/components/Sidebar/hooks/useSidebar.js.map +1 -0
  65. package/dist/components/Sidebar/index.d.ts +9 -0
  66. package/dist/components/Sidebar/index.d.ts.map +1 -0
  67. package/dist/components/Sidebar/index.js +8 -0
  68. package/dist/components/Sidebar/index.js.map +1 -0
  69. package/dist/index.d.ts +113 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +2 -1
  72. package/dist/index.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/components/sidebar.d.ts +0 -71
  75. package/dist/components/sidebar.d.ts.map +0 -1
  76. package/dist/components/sidebar.js +0 -218
  77. package/dist/components/sidebar.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ import type { FloatingNavProps } from "./FloatingNav.types.js";
2
+ export declare function FloatingNav({ items, label, className, ref, ...props }: FloatingNavProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=FloatingNav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAmClB"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/cn.js";
3
+ import { floatingNavItemVariants, floatingNavVariants, } from "./FloatingNav.variants.js";
4
+ export function FloatingNav({ items, label, className, ref, ...props }) {
5
+ return (_jsx("nav", { ref: ref, "data-slot": "floating-nav", "aria-label": label, className: cn(floatingNavVariants.root, className), ...props, children: _jsx("ul", { "data-slot": "floating-nav-list", className: cn(floatingNavVariants.list), children: items.map((item, index) => {
6
+ const active = item.isActive ?? false;
7
+ return (_jsx("li", { children: _jsxs("button", { type: "button", "data-slot": "floating-nav-item", "data-active": active, "aria-current": active ? "page" : undefined, onClick: item.onClick, className: cn(floatingNavItemVariants({ active })), children: [item.icon != null && (_jsx("span", { "data-slot": "floating-nav-item-icon", "aria-hidden": "true", children: item.icon })), _jsx("span", { "data-slot": "floating-nav-item-label", children: item.label })] }) }, `${item.label}-${index}`));
8
+ }) }) }));
9
+ }
10
+ //# sourceMappingURL=FloatingNav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.js","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACS;IACjB,OAAO,CACL,cACE,GAAG,EAAE,GAAG,eACE,cAAc,gBACZ,KAAK,EACjB,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,KAC9C,KAAK,YAET,0BAAc,mBAAmB,EAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YACtE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;gBACtC,OAAO,CACL,uBACE,kBACE,IAAI,EAAC,QAAQ,eACH,mBAAmB,iBAChB,MAAM,kBACL,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,aAEjD,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CACpB,4BAAgB,wBAAwB,iBAAa,MAAM,YACxD,IAAI,CAAC,IAAI,GACL,CACR,EACD,4BAAgB,yBAAyB,YAAE,IAAI,CAAC,KAAK,GAAQ,IACtD,IAfF,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAgB5B,CACN,CAAC;YACJ,CAAC,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ export type FloatingNavItem = {
3
+ icon?: ReactNode;
4
+ label: string;
5
+ isActive?: boolean;
6
+ onClick?: () => void;
7
+ };
8
+ export type FloatingNavProps = Omit<ComponentProps<"nav">, "children"> & {
9
+ items: FloatingNavItem[];
10
+ label: string;
11
+ };
12
+ //# sourceMappingURL=FloatingNav.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.types.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACvE,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FloatingNav.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.types.js","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ export declare const floatingNavVariants: {
3
+ readonly root: "inline-flex items-center";
4
+ readonly list: "flex items-center gap-4 list-none m-0 p-0";
5
+ readonly badge: "ml-1 inline-flex items-center justify-center";
6
+ };
7
+ export declare const floatingNavItemVariants: (props?: ({
8
+ active?: boolean | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ export type FloatingNavItemVariants = VariantProps<typeof floatingNavItemVariants>;
11
+ //# sourceMappingURL=FloatingNav.variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.variants.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;8EAmCnC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { cva } from "class-variance-authority";
2
+ export const floatingNavVariants = {
3
+ root: "inline-flex items-center",
4
+ list: "flex items-center gap-4 list-none m-0 p-0",
5
+ badge: "ml-1 inline-flex items-center justify-center",
6
+ };
7
+ export const floatingNavItemVariants = cva([
8
+ "inline-flex items-center justify-center gap-3 whitespace-nowrap",
9
+ "rounded-full px-3 py-2",
10
+ "text-sm font-medium leading-5",
11
+ "cursor-pointer",
12
+ "outline-none transition-all",
13
+ "focus-visible:ring-2 focus-visible:ring-[var(--color-semantic-floating-nav-focus)] focus-visible:ring-offset-2",
14
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
15
+ "[&_svg]:size-4 [&_svg]:shrink-0",
16
+ "border-[0.8px]",
17
+ ], {
18
+ variants: {
19
+ active: {
20
+ true: [
21
+ "bg-gradient-to-b from-[var(--color-semantic-floating-nav-active-from)] to-[var(--color-semantic-floating-nav-active-to)]",
22
+ "hover:opacity-90 active:opacity-80",
23
+ "text-[var(--color-semantic-floating-nav-active-fg)]",
24
+ "border-[var(--color-semantic-floating-nav-active-border)]",
25
+ ],
26
+ false: [
27
+ "border-transparent",
28
+ "[background:var(--color-semantic-floating-nav-default-bg)]",
29
+ "hover:[background:var(--color-semantic-floating-nav-default-bg-hover)]",
30
+ "active:[background:var(--color-semantic-floating-nav-default-bg-active)]",
31
+ "text-[var(--color-semantic-floating-nav-default-fg)]",
32
+ "shadow-[var(--color-semantic-floating-nav-default-shadow)]",
33
+ ],
34
+ },
35
+ },
36
+ defaultVariants: {
37
+ active: false,
38
+ },
39
+ });
40
+ //# sourceMappingURL=FloatingNav.variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingNav.variants.js","sourceRoot":"","sources":["../../../src/components/FloatingNav/FloatingNav.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,2CAA2C;IACjD,KAAK,EAAE,8CAA8C;CAC7C,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CACxC;IACE,iEAAiE;IACjE,wBAAwB;IACxB,+BAA+B;IAC/B,gBAAgB;IAChB,6BAA6B;IAC7B,gHAAgH;IAChH,8EAA8E;IAC9E,iCAAiC;IACjC,gBAAgB;CACjB,EACD;IACE,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,0HAA0H;gBAC1H,oCAAoC;gBACpC,qDAAqD;gBACrD,2DAA2D;aAC5D;YACD,KAAK,EAAE;gBACL,oBAAoB;gBACpB,4DAA4D;gBAC5D,wEAAwE;gBACxE,0EAA0E;gBAC1E,sDAAsD;gBACtD,4DAA4D;aAC7D;SACF;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,KAAK;KACd;CACF,CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { FloatingNav } from "./FloatingNav.js";
2
+ export { floatingNavItemVariants, floatingNavVariants, } from "./FloatingNav.variants.js";
3
+ export type { FloatingNavItem, FloatingNavProps, } from "./FloatingNav.types.js";
4
+ export type { FloatingNavItemVariants } from "./FloatingNav.variants.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingNav/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { FloatingNav } from "./FloatingNav.js";
2
+ export { floatingNavItemVariants, floatingNavVariants, } from "./FloatingNav.variants.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FloatingNav/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import type { SidebarContextValue } from "./Sidebar.types.js";
3
+ export declare const SidebarContext: React.Context<SidebarContextValue | null>;
4
+ //# sourceMappingURL=Sidebar.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.context.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,eAAO,MAAM,cAAc,2CAAwD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ export const SidebarContext = React.createContext(null);
3
+ //# sourceMappingURL=Sidebar.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.context.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAA6B,IAAI,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import type { SidebarContextValue, SidebarGroupLabelProps, SidebarMenuButtonProps, SidebarMenuSubButtonProps, SidebarProps } from "./Sidebar.types.js";
3
+ export declare const SidebarContext: React.Context<SidebarContextValue | null>;
4
+ export declare function Sidebar({ side, variant, collapsible, className, children, ...props }: SidebarProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function SidebarContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ export declare function SidebarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ export declare function SidebarGroupLabel({ className, asChild, ...props }: SidebarGroupLabelProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function SidebarGroupContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ export declare function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
10
+ export declare function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: SidebarMenuButtonProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">): import("react/jsx-runtime").JSX.Element;
13
+ export declare function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
14
+ export declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: SidebarMenuSubButtonProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAM5B,eAAO,MAAM,cAAc,2CAAwD,CAAC;AAEpF,wBAAgB,OAAO,CAAC,EACtB,IAAa,EACb,OAAmB,EACnB,WAAyB,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,YAAY,2CA6Ed;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAalF;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAShF;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,OAAe,EACf,GAAG,KAAK,EACT,EAAE,sBAAsB,2CAexB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAS7B;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAY9E;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CASlF;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAe,EACf,QAAgB,EAChB,OAAmB,EACnB,IAAgB,EAChB,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,2CAuCxB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAajF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAS5B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAe,EACf,IAAW,EACX,QAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,yBAAyB,2CAoB3B"}
@@ -0,0 +1,68 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import * as React from "react";
5
+ import { cn } from "../../lib/cn.js";
6
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "../sheet.js";
7
+ import { Tooltip, TooltipContent, TooltipTrigger } from "../tooltip.js";
8
+ import { sidebarMenuButtonVariants } from "./Sidebar.variants.js";
9
+ import { useSidebar } from "./hooks/useSidebar.js";
10
+ import { SidebarHeader } from "./SidebarHeader/SidebarHeader.js";
11
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
12
+ export const SidebarContext = React.createContext(null);
13
+ export function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }) {
14
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
15
+ if (collapsible === "none") {
16
+ return (_jsx("div", { "data-slot": "sidebar", className: cn("bg-[var(--color-semantic-sidebar-bg)] text-[var(--color-semantic-sidebar-fg)] flex h-full w-(--sidebar-width) flex-col", className), ...props, children: children }));
17
+ }
18
+ if (isMobile) {
19
+ return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "bg-[var(--color-semantic-sidebar-bg)] text-[var(--color-semantic-sidebar-fg)] w-(--sidebar-width) p-0 [&>button]:hidden", style: {
20
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
21
+ }, side: side, 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 })] }) }));
22
+ }
23
+ return (_jsx("div", { className: "group peer text-[var(--color-semantic-sidebar-fg)] hidden shrink-0 md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: _jsx("div", { "data-slot": "sidebar-container", className: cn("fixed inset-y-0 z-[60] hidden h-svh w-(--sidebar-width) border-0 hover:border-0 box-border isolate transition-[left,right,width] duration-200 ease-linear md:flex", side === "left"
24
+ ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
25
+ : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", variant === "floating" || variant === "inset"
26
+ ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
27
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", className), ...props, children: _jsxs("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "bg-[var(--color-semantic-sidebar-bg)] flex h-full w-full flex-col box-border border-r-1 border-r-[var(--color-semantic-sidebar-border)] pl-[12px] pr-[12px]", children: [_jsx(SidebarHeader, {}), children] }) }) }));
28
+ }
29
+ export function SidebarContent({ className, ...props }) {
30
+ return (_jsx("div", { "data-slot": "sidebar-content", "data-sidebar": "content", className: cn("flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden", "[&::-webkit-scrollbar]:hidden [scrollbar-width:none] [-ms-overflow-style:none]", className), ...props }));
31
+ }
32
+ export function SidebarGroup({ className, ...props }) {
33
+ return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col px-0 py-0", className), ...props }));
34
+ }
35
+ export function SidebarGroupLabel({ className, asChild = false, ...props }) {
36
+ const Comp = asChild ? Slot : "div";
37
+ return (_jsx(Comp, { "data-slot": "sidebar-group-label", "data-sidebar": "group-label", className: cn("text-[var(--color-semantic-sidebar-fg-muted)] ring-[var(--color-semantic-sidebar-ring)] flex h-8 shrink-0 items-center rounded-md px-2 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 }));
38
+ }
39
+ export function SidebarGroupContent({ className, ...props }) {
40
+ return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props }));
41
+ }
42
+ export function SidebarMenu({ className, ...props }) {
43
+ return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-0 group-data-[collapsible=icon]:items-center", className), ...props }));
44
+ }
45
+ export function SidebarMenuItem({ className, ...props }) {
46
+ return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
47
+ }
48
+ export function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
49
+ const Comp = asChild ? Slot : "button";
50
+ const { isMobile, state } = useSidebar();
51
+ 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), suppressHydrationWarning: true, ...props }));
52
+ if (!tooltip) {
53
+ return button;
54
+ }
55
+ const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
56
+ return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: button }), _jsx(TooltipContent, { side: "right", align: "center", sideOffset: 12, hidden: state !== "collapsed" || isMobile, ...tooltipProps, className: cn("overflow-visible", tooltipProps?.className) })] }));
57
+ }
58
+ export function SidebarMenuSub({ className, ...props }) {
59
+ return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("border-[var(--color-semantic-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 }));
60
+ }
61
+ export function SidebarMenuSubItem({ className, ...props }) {
62
+ return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props }));
63
+ }
64
+ export function SidebarMenuSubButton({ asChild = false, size = "md", isActive = false, className, ...props }) {
65
+ const Comp = asChild ? Slot : "a";
66
+ return (_jsx(Comp, { "data-slot": "sidebar-menu-sub-button", "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: cn("text-[var(--color-semantic-sidebar-fg)] ring-[var(--color-semantic-sidebar-ring)] hover:bg-[var(--color-semantic-sidebar-accent-bg)] hover:text-[var(--color-semantic-sidebar-accent-fg)] active:bg-[var(--color-semantic-sidebar-accent-bg)] active:text-[var(--color-semantic-sidebar-accent-fg)] [&>svg]:text-[var(--color-semantic-sidebar-accent-fg)] 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-[var(--color-semantic-sidebar-accent-bg)] data-[active=true]:text-[var(--color-semantic-sidebar-accent-fg)]", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className), ...props }));
67
+ }
68
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { ComponentProps } from "react";
2
+ import type { TooltipContent } from "../tooltip.js";
3
+ import type { SidebarMenuButtonVariants } from "./Sidebar.variants.js";
4
+ export type SidebarState = "expanded" | "collapsed";
5
+ export type SidebarContextValue = {
6
+ state: SidebarState;
7
+ open: boolean;
8
+ setOpen: (open: boolean) => void;
9
+ openMobile: boolean;
10
+ setOpenMobile: (open: boolean) => void;
11
+ isMobile: boolean;
12
+ toggleSidebar: () => void;
13
+ };
14
+ export type SidebarProviderProps = ComponentProps<"div"> & {
15
+ defaultCollapsed?: boolean;
16
+ tenantSlug?: string;
17
+ open?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ };
20
+ export type SidebarSide = "left" | "right";
21
+ export type SidebarVariant = "sidebar" | "floating" | "inset";
22
+ export type SidebarCollapsible = "offcanvas" | "icon" | "none";
23
+ export type SidebarProps = ComponentProps<"div"> & {
24
+ side?: SidebarSide;
25
+ variant?: SidebarVariant;
26
+ collapsible?: SidebarCollapsible;
27
+ };
28
+ export type SidebarMenuButtonProps = ComponentProps<"button"> & SidebarMenuButtonVariants & {
29
+ asChild?: boolean;
30
+ isActive?: boolean;
31
+ tooltip?: string | ComponentProps<typeof TooltipContent>;
32
+ };
33
+ export type SidebarMenuSubButtonProps = ComponentProps<"a"> & {
34
+ asChild?: boolean;
35
+ size?: "sm" | "md";
36
+ isActive?: boolean;
37
+ };
38
+ export type SidebarGroupLabelProps = ComponentProps<"div"> & {
39
+ asChild?: boolean;
40
+ };
41
+ export type { SidebarMenuButtonVariants };
42
+ //# sourceMappingURL=Sidebar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3C,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACjD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAC3D,yBAAyB,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC;CAC1D,CAAC;AAEJ,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Sidebar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.types.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ export declare const sidebarMenuButtonVariants: (props?: ({
3
+ variant?: "default" | "outline" | null | undefined;
4
+ size?: "default" | "sm" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export type SidebarMenuButtonVariants = VariantProps<typeof sidebarMenuButtonVariants>;
7
+ //# sourceMappingURL=Sidebar.variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.variants.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,yBAAyB;;;8EA6BrC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { cva } from "class-variance-authority";
2
+ export const sidebarMenuButtonVariants = cva([
3
+ "peer/menu-button flex w-full items-center overflow-hidden h-12 px-3 text-left text-sm outline-hidden",
4
+ "ring-[var(--color-semantic-sidebar-ring)] transition-[width,height,padding,background]",
5
+ "focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50",
6
+ "group-has-data-[sidebar=menu-action]/menu-item:pr-8",
7
+ "aria-disabled:pointer-events-none aria-disabled:opacity-50",
8
+ "data-[active=true]:font-medium data-[active=true]:text-[var(--color-semantic-sidebar-accent-fg)]",
9
+ "group-data-[collapsible=icon]:size-12! group-data-[collapsible=icon]:p-1.5! group-data-[collapsible=icon]:rounded-xl",
10
+ "[&>span:last-child]:truncate [&>svg]:size-4.5 [&>svg]:shrink-0",
11
+ ], {
12
+ variants: {
13
+ variant: {
14
+ default: "",
15
+ outline: "bg-[var(--color-semantic-sidebar-outline-bg)] shadow-[0_0_0_1px_var(--color-semantic-sidebar-border)] hover:shadow-[0_0_0_1px_var(--color-semantic-sidebar-accent-bg)]",
16
+ },
17
+ size: {
18
+ default: "h-12 text-sm",
19
+ sm: "h-7 text-xs",
20
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
21
+ },
22
+ },
23
+ defaultVariants: {
24
+ variant: "default",
25
+ size: "default",
26
+ },
27
+ });
28
+ //# sourceMappingURL=Sidebar.variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.variants.js","sourceRoot":"","sources":["../../../src/components/Sidebar/Sidebar.variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAC1C;IACE,sGAAsG;IACtG,wFAAwF;IACxF,uEAAuE;IACvE,qDAAqD;IACrD,4DAA4D;IAC5D,kGAAkG;IAClG,sHAAsH;IACtH,gEAAgE;CACjE,EACD;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,OAAO,EACL,wKAAwK;SAC3K;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,cAAc;YACvB,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,iDAAiD;SACtD;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ export declare function SidebarDivider({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SidebarDivider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarDivider.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarDivider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAa7B"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../lib/cn.js";
4
+ export function SidebarDivider({ className, ...props }) {
5
+ return (_jsx("div", { role: "presentation", "data-slot": "sidebar-divider", "data-sidebar": "divider", className: cn("h-px w-full shrink-0 bg-[var(--color-semantic-sidebar-border)]", className), ...props }));
6
+ }
7
+ //# sourceMappingURL=SidebarDivider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarDivider.js","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarDivider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACoB;IAC5B,OAAO,CACL,cACE,IAAI,EAAC,cAAc,eACT,iBAAiB,kBACd,SAAS,EACtB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function SidebarFooter({ children, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SidebarFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarFooter.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarFooter.tsx"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWhF"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function SidebarFooter({ children, ...props }) {
3
+ return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: "flex flex-col gap-0 px-0 pb-4", ...props, children: children }));
4
+ }
5
+ //# sourceMappingURL=SidebarFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarFooter.js","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarFooter.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA+B;IAC/E,OAAO,CACL,2BACY,gBAAgB,kBACb,QAAQ,EACrB,SAAS,EAAC,+BAA+B,KACrC,KAAK,YAER,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function SidebarHeader(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SidebarHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/SidebarHeader.tsx"],"names":[],"mappings":"AAQA,wBAAgB,aAAa,4CAyC5B"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { ArrayLogo, ArrayLogoSlashes } from "../../../logos/index.js";
4
+ import { Button } from "../../Button/Button.js";
5
+ import { PanelLeft } from "lucide-react";
6
+ import { SidebarDivider } from "../SidebarDivider.js";
7
+ import { useSidebar } from "../hooks/useSidebar.js";
8
+ export function SidebarHeader() {
9
+ const { toggleSidebar } = useSidebar();
10
+ return (_jsxs("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: "flex flex-col items-center self-stretch", children: [_jsxs("div", { className: "flex justify-between items-center w-full pr-[12px] pl-[21px] pt-[28px] pb-[28px] group-data-[collapsible=icon]:hidden", children: [_jsx(ArrayLogo, { title: "Array", className: "h-[18px]" }), _jsx(Button, { type: "button", variant: "tertiary", onClick: toggleSidebar, "aria-label": "Collapse sidebar", children: _jsx(PanelLeft, {}) })] }), _jsx("div", { className: "hidden w-full min-w-0 flex-col items-center pl-[12px] pr-[12px] pt-[28px] pb-[28px] group-data-[collapsible=icon]:flex", children: _jsxs(Button, { type: "button", variant: "tertiary", onClick: toggleSidebar, "aria-label": "Expand sidebar", className: "group/logo-toggle", children: [_jsx(ArrayLogoSlashes, { title: "Array", className: "h-5 w-auto group-hover/logo-toggle:hidden group-focus-visible/logo-toggle:hidden" }), _jsx(PanelLeft, { "aria-hidden": "true", className: "hidden group-hover/logo-toggle:block group-focus-visible/logo-toggle:block" })] }) }), _jsx(SidebarDivider, {})] }));
11
+ }
12
+ //# sourceMappingURL=SidebarHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarHeader.js","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/SidebarHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC;IAEvC,OAAO,CACL,4BACY,gBAAgB,kBACb,QAAQ,EACrB,SAAS,EAAC,yCAAyC,aAEnD,eAAK,SAAS,EAAC,uHAAuH,aACpI,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,GAAG,EAChD,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,aAAa,gBACX,kBAAkB,YAE7B,KAAC,SAAS,KAAG,GACN,IACL,EACN,cAAK,SAAS,EAAC,wHAAwH,YACrI,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,aAAa,gBACX,gBAAgB,EAC3B,SAAS,EAAC,mBAAmB,aAE7B,KAAC,gBAAgB,IACf,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,kFAAkF,GAC5F,EACF,KAAC,SAAS,mBACI,MAAM,EAClB,SAAS,EAAC,4EAA4E,GACtF,IACK,GACL,EACN,KAAC,cAAc,KAAG,IACd,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Button } from "../../Button/Button.js";
2
+ export declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SidebarTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/SidebarTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAmBrC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { PanelLeftIcon } from "lucide-react";
3
+ import { Button } from "../../Button/Button.js";
4
+ import { useSidebar } from "../hooks/useSidebar.js";
5
+ import { cn } from "../../../lib/cn.js";
6
+ export function SidebarTrigger({ className, onClick, ...props }) {
7
+ const { toggleSidebar } = useSidebar();
8
+ return (_jsx(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "tertiary", size: "sm", className: cn("size-7", className), onClick: (event) => {
9
+ onClick?.(event);
10
+ toggleSidebar();
11
+ }, ...props, children: _jsx(PanelLeftIcon, {}) }));
12
+ }
13
+ //# sourceMappingURL=SidebarTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarTrigger.js","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/SidebarTrigger.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,UAAU,cAAc,CAAC,EAC7B,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EAC4B;IACpC,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC;IAEvC,OAAO,CACL,KAAC,MAAM,oBACQ,SAAS,eACZ,iBAAiB,EAC3B,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAClC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC,KACG,KAAK,YAET,KAAC,aAAa,KAAG,GACV,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SidebarHeader } from "./SidebarHeader.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SidebarHeader } from "./SidebarHeader.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Sidebar/SidebarHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function SidebarInset({ className, ...props }: React.ComponentProps<"main">): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SidebarInset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarInset.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarInset.tsx"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAajF"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/cn.js";
3
+ export function SidebarInset({ className, ...props }) {
4
+ return (_jsx("main", { "data-slot": "sidebar-inset", className: cn("relative flex min-h-0 w-full flex-1 flex-col bg-[var(--color-semantic-bg-base)]", "md:pl-[var(--sidebar-width)] md:peer-data-[state=collapsed]:peer-data-[collapsible=offcanvas]:pl-0 md:peer-data-[state=collapsed]:peer-data-[collapsible=icon]:pl-[var(--sidebar-width-icon)]", "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 }));
5
+ }
6
+ //# sourceMappingURL=SidebarInset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarInset.js","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarInset.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IAChF,OAAO,CACL,4BACY,eAAe,EACzB,SAAS,EAAE,EAAE,CACX,iFAAiF,EACjF,+LAA+L,EAC/L,iNAAiN,EACjN,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SidebarProviderProps } from "./Sidebar.types.js";
2
+ export declare function SidebarProvider({ defaultCollapsed, tenantSlug, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: SidebarProviderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SidebarProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarProvider.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAuB,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAWpF,wBAAgB,eAAe,CAAC,EAC9B,gBAAwB,EACxB,UAAU,EACV,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,WAAW,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAkFtB"}
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { useIsMobile } from "../../hooks/use-is-mobile.js";
5
+ import { cn } from "../../lib/cn.js";
6
+ import { SidebarContext } from "./Sidebar.js";
7
+ const SIDEBAR_COOKIE_MAX_AGE = 31536000; // 1 year in seconds
8
+ const SIDEBAR_WIDTH = "240px";
9
+ const SIDEBAR_WIDTH_COLLAPSED = "60px";
10
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
11
+ function getSidebarCookieName(tenantSlug) {
12
+ return tenantSlug ? `sidebarCollapsed:${tenantSlug}` : "sidebarCollapsed";
13
+ }
14
+ export function SidebarProvider({ defaultCollapsed = false, tenantSlug, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
15
+ const isMobile = useIsMobile();
16
+ const [openMobile, setOpenMobile] = React.useState(false);
17
+ const defaultOpen = !defaultCollapsed;
18
+ const [_open, _setOpen] = React.useState(defaultOpen);
19
+ const open = openProp ?? _open;
20
+ const setOpen = React.useCallback((value) => {
21
+ const openState = typeof value === "function" ? value(open) : value;
22
+ if (setOpenProp) {
23
+ setOpenProp(openState);
24
+ }
25
+ else {
26
+ _setOpen(openState);
27
+ }
28
+ const collapsed = !openState;
29
+ const cookieName = getSidebarCookieName(tenantSlug);
30
+ const isSecure = typeof window !== "undefined" && window.location.protocol === "https:";
31
+ const secureFlag = isSecure ? "; Secure" : "";
32
+ document.cookie = `${cookieName}=${collapsed}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}; SameSite=Lax${secureFlag}`;
33
+ }, [setOpenProp, open, tenantSlug]);
34
+ const toggleSidebar = React.useCallback(() => {
35
+ return isMobile ? setOpenMobile((value) => !value) : setOpen((value) => !value);
36
+ }, [isMobile, setOpen, setOpenMobile]);
37
+ React.useEffect(() => {
38
+ const handleKeyDown = (event) => {
39
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT &&
40
+ (event.metaKey || event.ctrlKey)) {
41
+ event.preventDefault();
42
+ toggleSidebar();
43
+ }
44
+ };
45
+ window.addEventListener("keydown", handleKeyDown);
46
+ return () => window.removeEventListener("keydown", handleKeyDown);
47
+ }, [toggleSidebar]);
48
+ const state = open ? "expanded" : "collapsed";
49
+ const contextValue = React.useMemo(() => ({
50
+ state,
51
+ open,
52
+ setOpen,
53
+ isMobile,
54
+ openMobile,
55
+ setOpenMobile,
56
+ toggleSidebar,
57
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
58
+ return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
59
+ "--sidebar-width": SIDEBAR_WIDTH,
60
+ "--sidebar-width-icon": SIDEBAR_WIDTH_COLLAPSED,
61
+ ...style,
62
+ }, className: cn("group/sidebar-wrapper has-data-[variant=inset]:bg-[var(--color-semantic-sidebar-bg)] flex min-h-svh w-full", className), ...props, children: children }) }));
63
+ }
64
+ //# sourceMappingURL=SidebarProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../../../src/components/Sidebar/SidebarProvider.tsx"],"names":[],"mappings":"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"}