@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.
- package/dist/components/FloatingNav/FloatingNav.d.ts +3 -0
- package/dist/components/FloatingNav/FloatingNav.d.ts.map +1 -0
- package/dist/components/FloatingNav/FloatingNav.js +10 -0
- package/dist/components/FloatingNav/FloatingNav.js.map +1 -0
- package/dist/components/FloatingNav/FloatingNav.types.d.ts +12 -0
- package/dist/components/FloatingNav/FloatingNav.types.d.ts.map +1 -0
- package/dist/components/FloatingNav/FloatingNav.types.js +2 -0
- package/dist/components/FloatingNav/FloatingNav.types.js.map +1 -0
- package/dist/components/FloatingNav/FloatingNav.variants.d.ts +11 -0
- package/dist/components/FloatingNav/FloatingNav.variants.d.ts.map +1 -0
- package/dist/components/FloatingNav/FloatingNav.variants.js +40 -0
- package/dist/components/FloatingNav/FloatingNav.variants.js.map +1 -0
- package/dist/components/FloatingNav/index.d.ts +5 -0
- package/dist/components/FloatingNav/index.d.ts.map +1 -0
- package/dist/components/FloatingNav/index.js +3 -0
- package/dist/components/FloatingNav/index.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.context.d.ts +4 -0
- package/dist/components/Sidebar/Sidebar.context.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.context.js +3 -0
- package/dist/components/Sidebar/Sidebar.context.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +15 -0
- package/dist/components/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.js +68 -0
- package/dist/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.types.d.ts +42 -0
- package/dist/components/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.types.js +2 -0
- package/dist/components/Sidebar/Sidebar.types.js.map +1 -0
- package/dist/components/Sidebar/Sidebar.variants.d.ts +7 -0
- package/dist/components/Sidebar/Sidebar.variants.d.ts.map +1 -0
- package/dist/components/Sidebar/Sidebar.variants.js +28 -0
- package/dist/components/Sidebar/Sidebar.variants.js.map +1 -0
- package/dist/components/Sidebar/SidebarDivider.d.ts +3 -0
- package/dist/components/Sidebar/SidebarDivider.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarDivider.js +7 -0
- package/dist/components/Sidebar/SidebarDivider.js.map +1 -0
- package/dist/components/Sidebar/SidebarFooter.d.ts +2 -0
- package/dist/components/Sidebar/SidebarFooter.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarFooter.js +5 -0
- package/dist/components/Sidebar/SidebarFooter.js.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarHeader.d.ts +2 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarHeader.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarHeader.js +12 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarHeader.js.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.d.ts +3 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.js +13 -0
- package/dist/components/Sidebar/SidebarHeader/SidebarTrigger.js.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/index.d.ts +2 -0
- package/dist/components/Sidebar/SidebarHeader/index.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarHeader/index.js +2 -0
- package/dist/components/Sidebar/SidebarHeader/index.js.map +1 -0
- package/dist/components/Sidebar/SidebarInset.d.ts +2 -0
- package/dist/components/Sidebar/SidebarInset.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarInset.js +6 -0
- package/dist/components/Sidebar/SidebarInset.js.map +1 -0
- package/dist/components/Sidebar/SidebarProvider.d.ts +3 -0
- package/dist/components/Sidebar/SidebarProvider.d.ts.map +1 -0
- package/dist/components/Sidebar/SidebarProvider.js +64 -0
- package/dist/components/Sidebar/SidebarProvider.js.map +1 -0
- package/dist/components/Sidebar/hooks/useSidebar.d.ts +3 -0
- package/dist/components/Sidebar/hooks/useSidebar.d.ts.map +1 -0
- package/dist/components/Sidebar/hooks/useSidebar.js +10 -0
- package/dist/components/Sidebar/hooks/useSidebar.js.map +1 -0
- package/dist/components/Sidebar/index.d.ts +9 -0
- package/dist/components/Sidebar/index.d.ts.map +1 -0
- package/dist/components/Sidebar/index.js +8 -0
- package/dist/components/Sidebar/index.js.map +1 -0
- package/dist/index.d.ts +113 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/sidebar.d.ts +0 -71
- package/dist/components/sidebar.d.ts.map +0 -1
- package/dist/components/sidebar.js +0 -218
- package/dist/components/sidebar.js.map +0 -1
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,oBAAoB;AAC7D,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC,SAAS,oBAAoB,CAAC,UAAmB;IAC/C,OAAO,UAAU,CAAC,CAAC,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,gBAAgB,GAAG,KAAK,EACxB,UAAU,EACV,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,WAAW,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACa;IACrB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,CAAC,gBAAgB,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,QAAQ,IAAI,KAAK,CAAC;IAE/B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAC/B,CAAC,KAA8C,EAAE,EAAE;QACjD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC;QAC7B,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,QAAQ,GACZ,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,MAAM,GAAG,GAAG,UAAU,IAAI,SAAS,qBAAqB,sBAAsB,iBAAiB,UAAU,EAAE,CAAC;IACvH,CAAC,EACD,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAChC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAEvC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC7C,IACE,KAAK,CAAC,GAAG,KAAK,yBAAyB;gBACvC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAChC,CAAC;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,KAAK,GAAiC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAE5E,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,aAAa;QACb,aAAa;KACd,CAAC,EACF,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IAEF,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1C,2BACY,iBAAiB,EAC3B,KAAK,EACH;gBACE,iBAAiB,EAAE,aAAa;gBAChC,sBAAsB,EAAE,uBAAuB;gBAC/C,GAAG,KAAK;aACc,EAE1B,SAAS,EAAE,EAAE,CACX,4GAA4G,EAC5G,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACL,GACkB,CAC3B,CAAC;AACJ,CAAC"}
|