@alkimi.org/ui-kit 0.6.4 → 0.6.6
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/chunk-3ZEA35DM.js +3 -0
- package/dist/chunk-3ZEA35DM.js.map +1 -0
- package/dist/chunk-7FMGZ6EI.js +3 -0
- package/dist/chunk-7FMGZ6EI.js.map +1 -0
- package/dist/{chunk-Z2GFZUBS.js → chunk-KOYGHJMM.js} +2 -2
- package/dist/{chunk-Z2GFZUBS.js.map → chunk-KOYGHJMM.js.map} +1 -1
- package/dist/{chunk-4IGQAGUJ.mjs → chunk-OPJ5EH3F.mjs} +2 -2
- package/dist/{chunk-4IGQAGUJ.mjs.map → chunk-OPJ5EH3F.mjs.map} +1 -1
- package/dist/chunk-VFTGRKDL.mjs +3 -0
- package/dist/chunk-VFTGRKDL.mjs.map +1 -0
- package/dist/chunk-WO4QJVNB.mjs +3 -0
- package/dist/chunk-WO4QJVNB.mjs.map +1 -0
- package/dist/chunk-X53SMLIA.js +3 -0
- package/dist/chunk-X53SMLIA.js.map +1 -0
- package/dist/chunk-XWYFRIBU.mjs +3 -0
- package/dist/chunk-XWYFRIBU.mjs.map +1 -0
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/date-range-picker.mjs +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.mjs +1 -1
- package/dist/components/sidebar.d.mts +2 -1
- package/dist/components/sidebar.d.ts +2 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/sidebar.mjs +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-B7XXLTYN.js +0 -3
- package/dist/chunk-B7XXLTYN.js.map +0 -1
- package/dist/chunk-BB3WNO72.mjs +0 -3
- package/dist/chunk-BB3WNO72.mjs.map +0 -1
- package/dist/chunk-IHBEMOHH.js +0 -3
- package/dist/chunk-IHBEMOHH.js.map +0 -1
- package/dist/chunk-O4YZQS4C.mjs +0 -3
- package/dist/chunk-O4YZQS4C.mjs.map +0 -1
- package/dist/chunk-U32CS2M6.js +0 -3
- package/dist/chunk-U32CS2M6.js.map +0 -1
- package/dist/chunk-UOHFERPQ.mjs +0 -3
- package/dist/chunk-UOHFERPQ.mjs.map +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
var _chunk3BVMHDYAjs = require('./chunk-3BVMHDYA.js');var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _vaul = require('vaul');var _jsxruntime = require('react/jsx-runtime');var x="24rem",p=r.createContext(null);function R(){let e=r.useContext(p);if(!e)throw new Error("useDrawer must be used within a Drawer component.");return e}var h=r.forwardRef(({isOpen:e,onClose:o,width:a=x,children:n,...l},c)=>{let u=r.useRef(null),m=_chunk3BVMHDYAjs.a.call(void 0, "lg"),v=r.useMemo(()=>({isOpen:e,onClose:o,width:a}),[e,o,a]);return _jsxruntime.jsxs.call(void 0, p.Provider,{value:v,children:[!m&&_jsxruntime.jsx.call(void 0, _vaul.Drawer.Root,{open:e,onOpenChange:b=>{b||o()},direction:"left",children:_jsxruntime.jsxs.call(void 0, _vaul.Drawer.Portal,{children:[_jsxruntime.jsx.call(void 0, _vaul.Drawer.Overlay,{className:"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm"}),_jsxruntime.jsxs.call(void 0, _vaul.Drawer.Content,{className:"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none","aria-describedby":void 0,children:[_jsxruntime.jsx.call(void 0, _vaul.Drawer.Title,{className:"sr-only",children:"Drawer"}),n]})]})}),m&&_jsxruntime.jsxs.call(void 0, "div",{ref:c,className:"group/drawer peer","data-state":e?"open":"closed",...l,children:[_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "relative bg-sidebar transition-[width] duration-200 ease-linear",e?"":"w-0"),style:{width:e?a:"0"}}),_jsxruntime.jsx.call(void 0, "div",{ref:u,className:_chunkFUYXCJOQjs.a.call(void 0, "fixed right-0 z-40 transition-[right,width] duration-200 ease-linear flex","top-(--sidebar-top,0px) h-[calc(100svh-var(--sidebar-top,0px))]",e?"right-0":"right-[calc(var(--drawer-width)*-1)]"),style:{"--drawer-width":a,width:a},children:_jsxruntime.jsx.call(void 0, "div",{"data-drawer":"drawer",className:"flex h-full w-full flex-col",children:_jsxruntime.jsx.call(void 0, "div",{className:"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow",children:n})})})]})]})});h.displayName="Drawer";var y=r.forwardRef(({className:e,showCloseButton:o=!0,children:a,...n},l)=>{let{onClose:c}=R();return _jsxruntime.jsxs.call(void 0, "div",{ref:l,"data-drawer":"header",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border",e),...n,children:[_jsxruntime.jsx.call(void 0, "div",{className:"flex-1",children:a}),o&&_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{variant:"secondary",size:"icon",onClick:c,className:"h-8 w-8 shrink-0 rounded-full",children:[_jsxruntime.jsx.call(void 0, _lucidereact.X,{size:16}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Close drawer"})]})]})});y.displayName="DrawerHeader";var C=r.forwardRef(({className:e,...o},a)=>_jsxruntime.jsx.call(void 0, "h2",{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "text-lg font-semibold text-primary-accent",e),...o}));C.displayName="DrawerTitle";var N=r.forwardRef(({className:e,...o},a)=>_jsxruntime.jsx.call(void 0, "div",{ref:a,"data-drawer":"body",className:_chunkFUYXCJOQjs.a.call(void 0, "flex-1 overflow-auto p-4",e),...o}));N.displayName="DrawerBody";var g=r.forwardRef(({className:e,...o},a)=>_jsxruntime.jsx.call(void 0, "div",{ref:a,"data-drawer":"footer",className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col gap-2 p-4 border-t border-sidebar-border",e),...o}));g.displayName="DrawerFooter";exports.a = R; exports.b = h; exports.c = y; exports.d = C; exports.e = N; exports.f = g;
|
|
3
|
+
//# sourceMappingURL=chunk-3ZEA35DM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-3ZEA35DM.js","../src/components/drawer.tsx"],"names":["DRAWER_WIDTH","DrawerContext","useDrawer","context","Drawer","isOpen","onClose","width","children","props","ref","drawerRef","isDesktop","useMediaQuery","contextValue","jsxs","jsx","DrawerPrimitive","open","cn","DrawerHeader","className","showCloseButton","Button","X","DrawerTitle","DrawerBody","DrawerFooter"],"mappings":"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","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-3ZEA35DM.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { useMediaQuery } from \"@/lib/use-media-query\"\n\nconst DRAWER_WIDTH = \"24rem\"\n\n// Drawer Context\ntype DrawerContextProps = {\n isOpen: boolean\n onClose: () => void\n width?: string\n}\n\nconst DrawerContext = React.createContext<DrawerContextProps | null>(null)\n\nfunction useDrawer() {\n const context = React.useContext(DrawerContext)\n if (!context) {\n throw new Error(\"useDrawer must be used within a Drawer component.\")\n }\n return context\n}\n\n// Main Unified Drawer Component (Responsive)\nconst Drawer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n isOpen: boolean\n onClose: () => void\n width?: string\n }\n>(({ isOpen, onClose, width = DRAWER_WIDTH, children, ...props }, ref) => {\n const drawerRef = React.useRef<HTMLDivElement>(null)\n const isDesktop = useMediaQuery(\"lg\")\n\n const contextValue = React.useMemo<DrawerContextProps>(\n () => ({\n isOpen,\n onClose,\n width,\n }),\n [isOpen, onClose, width]\n )\n\n return (\n <DrawerContext.Provider value={contextValue}>\n {/* Mobile Drawer: visible < md breakpoint */}\n {!isDesktop && (\n <DrawerPrimitive.Root\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) onClose()\n }}\n direction=\"left\"\n >\n <DrawerPrimitive.Portal>\n <DrawerPrimitive.Overlay className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\" />\n <DrawerPrimitive.Content\n className=\"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none\"\n aria-describedby={undefined}\n >\n <DrawerPrimitive.Title className=\"sr-only\">\n Drawer\n </DrawerPrimitive.Title>\n {children}\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Portal>\n </DrawerPrimitive.Root>\n )}\n\n {/* Desktop Drawer: visible >= md breakpoint */}\n {isDesktop && (\n <div\n ref={ref}\n className=\"group/drawer peer\"\n data-state={isOpen ? \"open\" : \"closed\"}\n {...props}\n >\n {/* Spacer to push content */}\n <div\n className={cn(\n \"relative bg-sidebar transition-[width] duration-200 ease-linear\",\n isOpen ? \"\" : \"w-0\"\n )}\n style={\n {\n width: isOpen ? width : \"0\",\n } as React.CSSProperties\n }\n />\n\n {/* Fixed drawer panel */}\n <div\n ref={drawerRef}\n className={cn(\n \"fixed right-0 z-40 transition-[right,width] duration-200 ease-linear flex\",\n \"top-(--sidebar-top,0px) h-[calc(100svh-var(--sidebar-top,0px))]\",\n isOpen ? \"right-0\" : \"right-[calc(var(--drawer-width)*-1)]\"\n )}\n style={\n {\n \"--drawer-width\": width,\n width: width,\n } as React.CSSProperties\n }\n >\n <div data-drawer=\"drawer\" className=\"flex h-full w-full flex-col\">\n <div className=\"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )}\n </DrawerContext.Provider>\n )\n})\nDrawer.displayName = \"Drawer\"\n\n// Drawer Header\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n }\n>(({ className, showCloseButton = true, children, ...props }, ref) => {\n const { onClose } = useDrawer()\n\n return (\n <div\n ref={ref}\n data-drawer=\"header\"\n className={cn(\n \"flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border\",\n className\n )}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <Button\n variant=\"secondary\"\n size=\"icon\"\n onClick={onClose}\n className=\"h-8 w-8 shrink-0 rounded-full\"\n >\n <X size={16} />\n <span className=\"sr-only\">Close drawer</span>\n </Button>\n )}\n </div>\n )\n})\nDrawerHeader.displayName = \"DrawerHeader\"\n\n// Drawer Title\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<\"h2\">\n>(({ className, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n )\n})\nDrawerTitle.displayName = \"DrawerTitle\"\n\n// Drawer Body/Content\nconst DrawerBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"body\"\n className={cn(\"flex-1 overflow-auto p-4\", className)}\n {...props}\n />\n )\n})\nDrawerBody.displayName = \"DrawerBody\"\n\n// Drawer Footer\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"footer\"\n className={cn(\n \"flex flex-col gap-2 p-4 border-t border-sidebar-border\",\n className\n )}\n {...props}\n />\n )\n})\nDrawerFooter.displayName = \"DrawerFooter\"\n\nexport {\n Drawer,\n DrawerHeader,\n DrawerTitle,\n DrawerBody,\n DrawerFooter,\n useDrawer,\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
var _chunkX53SMLIAjs = require('./chunk-X53SMLIA.js');var _chunk7SOZ6MOVjs = require('./chunk-7SOZ6MOV.js');var _chunk752ERCMUjs = require('./chunk-752ERCMU.js');var _chunk5L5DM2X5js = require('./chunk-5L5DM2X5.js');var _chunkRA5BKFITjs = require('./chunk-RA5BKFIT.js');var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var e = _interopRequireWildcard(_react);var _reactslot = require('@radix-ui/react-slot');var _classvarianceauthority = require('class-variance-authority');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var ie="sidebar_state",se=3600*24*7,de="16.75rem",Y="23rem",le="calc(3rem + 0.75rem)",ce="b",J=e.createContext(null);function C(){let a=e.useContext(J);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}var pe=e.forwardRef(({defaultOpen:a=!0,open:t,onOpenChange:r,className:i,style:s,children:l,...f},c)=>{let[h,g]=e.useState(!1),[u,v]=e.useState(a),[S,w]=e.useState(!1),[R,N]=e.useState(a),x=_nullishCoalesce(t, () => (R)),m=e.useCallback(d=>{let p=typeof d=="function"?d(x):d;r?r(p):N(p),document.cookie=`${ie}=${p}; path=/; max-age=${se}`},[r,x]),M=e.useCallback(()=>{m(d=>!d)},[m]),I=e.useCallback(()=>{g(d=>!d)},[g]);e.useEffect(()=>{let d=p=>{p.key===ce&&(p.metaKey||p.ctrlKey)&&(p.preventDefault(),M())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[M]);let z=x?"expanded":"collapsed",Z=e.useMemo(()=>({state:z,isOpen:u,setOpen:m,openMobile:h,setOpenMobile:g,toggleSidebar:M,toggleMobileSidebar:I,setIsFullyOpen:v,isAnimating:S,setIsAnimating:w}),[z,u,m,h,g,M,I,v,S,w]),[ee,B]=e.useState(0),D=e.useRef(null);e.useEffect(()=>{let d=D.current;if(!d){B(0);return}let p=()=>{B(d.offsetHeight)};p();let A=new ResizeObserver(p);return A.observe(d),()=>A.disconnect()},[]);let _=e.Children.toArray(l),k=_.filter(d=>e.isValidElement(d)&&_optionalChain([d, 'access', _2 => _2.type, 'optionalAccess', _3 => _3.displayName])==="SidebarBanner"),ae=_.filter(d=>!e.isValidElement(d)||_optionalChain([d, 'access', _4 => _4.type, 'optionalAccess', _5 => _5.displayName])!=="SidebarBanner"),T=k.length>0;return _jsxruntime.jsx.call(void 0, J.Provider,{value:Z,children:_jsxruntime.jsx.call(void 0, _chunkX53SMLIAjs.a,{delayDuration:0,children:_jsxruntime.jsx.call(void 0, "div",{style:{"--sidebar-width":de,"--sidebar-width-icon":le,"--sidebar-top":T?`${ee}px`:"0px",...s},className:_chunkFUYXCJOQjs.a.call(void 0, "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",T&&"flex-col",i),ref:c,...f,children:T?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "div",{ref:D,children:k}),_jsxruntime.jsx.call(void 0, "div",{className:"flex flex-1",children:ae})]}):l})})})});pe.displayName="SidebarProvider";var be=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"banner",className:_chunkFUYXCJOQjs.a.call(void 0, "sticky top-0 z-20 w-full",a),...t}));be.displayName="SidebarBanner";var ue=e.forwardRef(({side:a="left",variant:t="sidebar",collapsible:r="offcanvas",className:i,children:s,...l},f)=>{let{state:c,openMobile:h,setOpenMobile:g,setIsFullyOpen:u,setIsAnimating:v}=C(),S=e.useRef(null),w=e.useRef(!0);return e.useEffect(()=>{let R=S.current;if(!R)return;if(w.current){w.current=!1,u(c==="expanded"),v(!1);return}v(!0);let N=setTimeout(()=>{u(c==="expanded"),v(!1)},300),x=m=>{m.target===R&&(m.propertyName==="left"||m.propertyName==="right"||m.propertyName==="width")&&(clearTimeout(N),u(c==="expanded"),v(!1))};return R.addEventListener("transitionend",x),()=>{R.removeEventListener("transitionend",x),clearTimeout(N)}},[c,u,v]),r==="none"?_jsxruntime.jsx.call(void 0, "aside",{className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),ref:f,...l,children:s}):_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.a,{open:h,onOpenChange:g,children:_jsxruntime.jsxs.call(void 0, _chunk752ERCMUjs.f,{"data-sidebar":"sidebar","data-mobile":"true",className:"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{width:Y,maxWidth:Y},side:a,children:[_jsxruntime.jsxs.call(void 0, _chunk752ERCMUjs.g,{className:"sr-only",children:[_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.i,{children:"Sidebar"}),_jsxruntime.jsx.call(void 0, _chunk752ERCMUjs.j,{children:"Displays the mobile sidebar."})]}),_jsxruntime.jsx.call(void 0, "div",{className:"flex h-full w-full flex-col",children:s})]})}),_jsxruntime.jsxs.call(void 0, "aside",{ref:f,className:"group peer hidden text-sidebar-foreground md:block","data-state":c,"data-collapsible":c==="collapsed"?r:"","data-variant":t,"data-side":a,children:[_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "w-(--sidebar-width) transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),_jsxruntime.jsx.call(void 0, "div",{ref:S,className:_chunkFUYXCJOQjs.a.call(void 0, "fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)",i),...l,children:_jsxruntime.jsx.call(void 0, "div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:_jsxruntime.jsx.call(void 0, "div",{className:"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full",children:s})})})]})]})});ue.displayName="Sidebar";var Q=e.forwardRef(({className:a,onClick:t,...r},i)=>{let{toggleSidebar:s,toggleMobileSidebar:l,openMobile:f}=C();return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:_chunkFUYXCJOQjs.a.call(void 0, "md:hidden bg-transparent hover:bg-transparent",a),onClick:c=>{_optionalChain([t, 'optionalCall', _6 => _6(c)]),l()},...r,children:[f?_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, _chunkQKOZTOYUjs.a.call(void 0, {variant:"secondary",size:"icon"})),children:_jsxruntime.jsx.call(void 0, _lucidereact.X,{size:16})}):_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, _chunkQKOZTOYUjs.a.call(void 0, {variant:"outline",size:"icon"})),children:_jsxruntime.jsx.call(void 0, _lucidereact.Menu,{size:16})}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Toggle Sidebar"})]}),_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:_chunkFUYXCJOQjs.a.call(void 0, "hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent",a),onClick:c=>{_optionalChain([t, 'optionalCall', _7 => _7(c)]),s()},...r,children:[_jsxruntime.jsx.call(void 0, "span",{className:"rounded-full hover:bg-secondary p-2",children:_jsxruntime.jsx.call(void 0, _lucidereact.PanelLeft,{size:16})}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Toggle Sidebar"})]})]})});Q.displayName="SidebarTrigger";var fe=e.forwardRef(({className:a,...t},r)=>{let{toggleSidebar:i}=C();return _jsxruntime.jsx.call(void 0, "button",{ref:r,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:i,title:"Toggle Sidebar",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...t})});fe.displayName="SidebarRail";var me=e.memo(e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "main",{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",a),...t})));me.displayName="SidebarInset";var ge=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, _chunkRA5BKFITjs.a,{ref:r,"data-sidebar":"input",className:_chunkFUYXCJOQjs.a.call(void 0, "h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...t}));ge.displayName="SidebarInput";var ve=e.forwardRef(({className:a,showTrigger:t=!1,children:r,...i},s)=>{let{state:l}=C();return _jsxruntime.jsxs.call(void 0, "div",{ref:s,"data-sidebar":"header",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full gap-2 p-2",l==="collapsed"?"justify-center items-center":"justify-between items-start",a),...i,children:[l!=="collapsed"&&_jsxruntime.jsx.call(void 0, "div",{className:"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden",children:_jsxruntime.jsx.call(void 0, "div",{className:"whitespace-nowrap",children:r})}),t&&_jsxruntime.jsx.call(void 0, Q,{})]})});ve.displayName="SidebarHeader";var he=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"footer",className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col gap-2 p-2",a),...t}));he.displayName="SidebarFooter";var Re=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, _chunk7SOZ6MOVjs.a,{ref:r,"data-sidebar":"separator",className:_chunkFUYXCJOQjs.a.call(void 0, "mx-2 w-auto bg-border",a),...t}));Re.displayName="SidebarSeparator";var xe=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"content",className:_chunkFUYXCJOQjs.a.call(void 0, "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",a),...t}));xe.displayName="SidebarContent";var Se=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"group",className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex w-full min-w-0 flex-col","group-data-[collapsible=icon]:p-0",a),...t}));Se.displayName="SidebarGroup";var we=e.forwardRef(({className:a,asChild:t=!1,...r},i)=>_jsxruntime.jsx.call(void 0, t?_reactslot.Slot:"div",{ref:i,"data-sidebar":"group-label",className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring 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",a),...r}));we.displayName="SidebarGroupLabel";var ye=e.forwardRef(({className:a,asChild:t=!1,...r},i)=>_jsxruntime.jsx.call(void 0, t?_reactslot.Slot:"button",{ref:i,"data-sidebar":"group-action",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",a),...r}));ye.displayName="SidebarGroupAction";var Ce=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"group-content",className:_chunkFUYXCJOQjs.a.call(void 0, "w-full text-sm",a),...t}));Ce.displayName="SidebarGroupContent";var Ne=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "ul",{ref:r,"data-sidebar":"menu",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full min-w-0 flex-col gap-1",a),...t}));Ne.displayName="SidebarMenu";var Me=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "li",{ref:r,"data-sidebar":"menu-item",className:_chunkFUYXCJOQjs.a.call(void 0, "group/menu-item relative",a),...t}));Me.displayName="SidebarMenuItem";var Te=_classvarianceauthority.cva.call(void 0, "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground",outline:"bg-sidebar shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),Ee= exports.s =e.forwardRef(({asChild:a=!1,isActive:t=!1,variant:r="default",size:i="default",tooltip:s,className:l,...f},c)=>{let h=a?_reactslot.Slot:"button",{state:g}=C(),u=_jsxruntime.jsx.call(void 0, h,{ref:c,"data-sidebar":"menu-button","data-size":i,"data-active":t,className:_chunkFUYXCJOQjs.a.call(void 0, Te({variant:r,size:i}),l),...f});return s?(typeof s=="string"&&(s={children:s}),_jsxruntime.jsxs.call(void 0, _chunkX53SMLIAjs.b,{children:[_jsxruntime.jsx.call(void 0, _chunkX53SMLIAjs.c,{asChild:!0,children:u}),_jsxruntime.jsx.call(void 0, _chunkX53SMLIAjs.d,{side:"right",align:"center",hidden:g!=="collapsed",...s})]})):u});Ee.displayName="SidebarMenuButton";var Pe=e.forwardRef(({className:a,asChild:t=!1,showOnHover:r=!1,...i},s)=>_jsxruntime.jsx.call(void 0, t?_reactslot.Slot:"button",{ref:s,"data-sidebar":"menu-action",className:_chunkFUYXCJOQjs.a.call(void 0, "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",r&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0",a),...i}));Pe.displayName="SidebarMenuAction";var He=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-sidebar":"menu-badge",className:_chunkFUYXCJOQjs.a.call(void 0, "pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...t}));He.displayName="SidebarMenuBadge";var Le=e.forwardRef(({className:a,showIcon:t=!1,...r},i)=>{let s=e.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return _jsxruntime.jsxs.call(void 0, "div",{ref:i,"data-sidebar":"menu-skeleton",className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-8 items-center gap-2 rounded-md px-2",a),...r,children:[t&&_jsxruntime.jsx.call(void 0, _chunk5L5DM2X5js.a,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),_jsxruntime.jsx.call(void 0, _chunk5L5DM2X5js.a,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})});Le.displayName="SidebarMenuSkeleton";var Ie=e.forwardRef(({className:a,...t},r)=>_jsxruntime.jsx.call(void 0, "ul",{ref:r,"data-sidebar":"menu-sub",className:_chunkFUYXCJOQjs.a.call(void 0, "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...t}));Ie.displayName="SidebarMenuSub";var ze=e.forwardRef(({...a},t)=>_jsxruntime.jsx.call(void 0, "li",{ref:t,...a}));ze.displayName="SidebarMenuSubItem";var Be=e.forwardRef(({asChild:a=!1,size:t="md",isActive:r,className:i,...s},l)=>_jsxruntime.jsx.call(void 0, a?_reactslot.Slot:"a",{ref:l,"data-sidebar":"menu-sub-button","data-size":t,"data-active":r,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...s}));Be.displayName="SidebarMenuSubButton";exports.a = C; exports.b = pe; exports.c = be; exports.d = ue; exports.e = Q; exports.f = fe; exports.g = me; exports.h = ge; exports.i = ve; exports.j = he; exports.k = Re; exports.l = xe; exports.m = Se; exports.n = we; exports.o = ye; exports.p = Ce; exports.q = Ne; exports.r = Me; exports.s = Ee; exports.t = Pe; exports.u = He; exports.v = Le; exports.w = Ie; exports.x = ze; exports.y = Be;
|
|
3
|
+
//# sourceMappingURL=chunk-7FMGZ6EI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-7FMGZ6EI.js","../src/components/sidebar.tsx"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","openMobile","setOpenMobile","isFullyOpen","setIsFullyOpen","isAnimating","setIsAnimating","_open","_setOpen","open","setOpen","value","openState"],"mappings":"AAAA,+8BAAY;AACZ,sDAA4D,sDAAwC,sDAAoE,sDAAwC,sDAAwC,sDAA+C,sDAAwC,uECCxT,iDACF,kEACkB,2CACJ,+CA6MrB,IAxLRA,EAAAA,CAAsB,eAAA,CACtBC,EAAAA,CAAyB,IAAA,CAAU,EAAA,CAAK,CAAA,CACxCC,EAAAA,CAAgB,UAAA,CAChBC,CAAAA,CAAuB,OAAA,CACvBC,EAAAA,CAAqB,sBAAA,CACrBC,EAAAA,CAA4B,GAAA,CAe5BC,CAAAA,CAAuB,CAAA,CAAA,aAAA,CAA0C,IAAI,CAAA,CAE3E,SAASC,CAAAA,CAAAA,CAAa,CACpB,IAAMC,CAAAA,CAAgB,CAAA,CAAA,UAAA,CAAWF,CAAc,CAAA,CAC/C,EAAA,CAAI,CAACE,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,mDAAmD,CAAA,CAGrE,OAAOA,CACT,CAEA,IAAMC,EAAAA,CAAwB,CAAA,CAAA,UAAA,CAQ5B,CACE,CACE,WAAA,CAAAC,CAAAA,CAAc,CAAA,CAAA,CACd,IAAA,CAAMC,CAAAA,CACN,YAAA,CAAcC,CAAAA,CACd,SAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CACAC,CAAAA,CAAAA,EACG,CACH,GAAM,CAACC,CAAAA,CAAYC,CAAa,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAClD,CAACC,CAAAA,CAAaC,CAAc,CAAA,CAAU,CAAA,CAAA,QAAA,CAASX,CAAW,CAAA,CAC1D,CAACY,CAAAA,CAAaC,CAAc,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAEpD,CAACC,CAAAA,CAAOC,CAAQ,CAAA,CAAU,CAAA,CAAA,QAAA,CAASf,CAAW,CAAA,CAC9CgB,CAAAA,kBAAOf,CAAAA,SAAYa,GAAAA,CACnBG,CAAAA,CAAgB,CAAA,CAAA,WAAA,CACnBC,CAAAA,EAAmD,CAClD,IAAMC,CAAAA,CAAY,OAAOD,CAAAA,EAAU,UAAA,CAAaA,CAAAA,CAAMF,CAAI,CAAA,CAAIE,CAAAA,CAC1DhB,CAAAA,CACFA,CAAAA,CAAYiB,CAAS,CAAA,CAErBJ,CAAAA,CAASI,CAAS,CAAA,CAGpB,QAAA,CAAS,MAAA,CAAS,CAAA,EAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-7FMGZ6EI.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft, X, Menu } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/button\"\nimport { Input } from \"@/components/input\"\nimport { Separator } from \"@/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16.75rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"23rem\"\nconst SIDEBAR_WIDTH_ICON = \"calc(3rem + 0.75rem)\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n isOpen: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n toggleSidebar: () => void\n toggleMobileSidebar: () => void\n setIsFullyOpen: (open: boolean) => void\n isAnimating: boolean\n setIsAnimating: (animating: boolean) => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const [openMobile, setOpenMobile] = React.useState(false)\n const [isFullyOpen, setIsFullyOpen] = React.useState(defaultOpen)\n const [isAnimating, setIsAnimating] = React.useState(false)\n\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n const toggleSidebar = React.useCallback(() => {\n setOpen((open) => !open)\n }, [setOpen])\n\n const toggleMobileSidebar = React.useCallback(() => {\n setOpenMobile((open) => !open)\n }, [setOpenMobile])\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n isOpen: isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n }),\n [\n state,\n isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n ]\n )\n\n const [bannerHeight, setBannerHeight] = React.useState(0)\n const bannerRef = React.useRef<HTMLDivElement>(null)\n\n // Measure banner height\n React.useEffect(() => {\n const banner = bannerRef.current\n if (!banner) {\n setBannerHeight(0)\n return\n }\n\n const updateHeight = () => {\n setBannerHeight(banner.offsetHeight)\n }\n\n updateHeight()\n\n const resizeObserver = new ResizeObserver(updateHeight)\n resizeObserver.observe(banner)\n\n return () => resizeObserver.disconnect()\n }, [])\n\n // Separate banner children (SidebarBanner) from layout children (Sidebar, SidebarInset)\n const childArray = React.Children.toArray(children)\n const bannerChildren = childArray.filter(\n (child) =>\n React.isValidElement(child) &&\n (child.type as React.FC & { displayName?: string })?.displayName ===\n \"SidebarBanner\"\n )\n const layoutChildren = childArray.filter(\n (child) =>\n !React.isValidElement(child) ||\n (child.type as React.FC & { displayName?: string })?.displayName !==\n \"SidebarBanner\"\n )\n\n const hasBanner = bannerChildren.length > 0\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n \"--sidebar-top\": hasBanner ? `${bannerHeight}px` : \"0px\",\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n hasBanner && \"flex-col\",\n className\n )}\n ref={ref}\n {...props}\n >\n {hasBanner ? (\n <>\n <div ref={bannerRef}>{bannerChildren}</div>\n <div className=\"flex flex-1\">{layoutChildren}</div>\n </>\n ) : (\n children\n )}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst SidebarBanner = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"banner\"\n className={cn(\"sticky top-0 z-20 w-full\", className)}\n {...props}\n />\n )\n})\nSidebarBanner.displayName = \"SidebarBanner\"\n\nconst Sidebar = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"aside\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { state, openMobile, setOpenMobile, setIsFullyOpen, setIsAnimating } =\n useSidebar()\n const sidebarRef = React.useRef<HTMLDivElement>(null)\n const isFirstRenderRef = React.useRef(true)\n\n // Track when the sidebar animation completes\n React.useEffect(() => {\n const sidebar = sidebarRef.current\n if (!sidebar) return\n\n // On first render, set isFullyOpen immediately without waiting for animation\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n return\n }\n\n // Mark as animating when state changes\n setIsAnimating(true)\n\n // Fallback timeout in case transitionend doesn't fire\n const fallbackTimeout = setTimeout(() => {\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n }, 300) // Slightly longer than the 200ms transition duration\n\n const handleTransitionEnd = (event: TransitionEvent) => {\n // Only respond to transitions on the sidebar itself, not children\n if (event.target !== sidebar) return\n\n // Check if we're transitioning width, left, or right properties\n if (\n event.propertyName === \"left\" ||\n event.propertyName === \"right\" ||\n event.propertyName === \"width\"\n ) {\n clearTimeout(fallbackTimeout)\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n }\n }\n\n sidebar.addEventListener(\"transitionend\", handleTransitionEnd)\n return () => {\n sidebar.removeEventListener(\"transitionend\", handleTransitionEnd)\n clearTimeout(fallbackTimeout)\n }\n }, [state, setIsFullyOpen, setIsAnimating])\n\n if (collapsible === \"none\") {\n return (\n <aside\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </aside>\n )\n }\n\n return (\n <>\n {/* Mobile Sheet - visible only on mobile (< md) */}\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n width: SIDEBAR_WIDTH_MOBILE,\n maxWidth: SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n\n {/* Desktop Sidebar - visible only on desktop (md+) */}\n <aside\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* Spacer to reserve horizontal space */}\n <div\n className={cn(\n \"w-(--sidebar-width) transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n {/* Fixed sidebar */}\n <div\n ref={sidebarRef}\n className={cn(\n \"fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n \"top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n <div className=\"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full\">\n {children}\n </div>\n </div>\n </div>\n </aside>\n </>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, toggleMobileSidebar, openMobile } = useSidebar()\n\n return (\n <>\n {/* Mobile trigger - visible only on mobile (< md) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"md:hidden bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleMobileSidebar()\n }}\n {...props}\n >\n {openMobile ? (\n <span\n className={cn(\n buttonVariants({ variant: \"secondary\", size: \"icon\" })\n )}\n >\n <X size={16} />\n </span>\n ) : (\n <span\n className={cn(buttonVariants({ variant: \"outline\", size: \"icon\" }))}\n >\n <Menu size={16} />\n </span>\n )}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n\n {/* Desktop trigger - visible only on desktop (md+) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <span className=\"rounded-full hover:bg-secondary p-2\">\n <PanelLeft size={16} />\n </span>\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n </>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.memo(\n React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n }\n )\n)\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showTrigger?: boolean\n }\n>(({ className, showTrigger = false, children, ...props }, ref) => {\n const { state } = useSidebar()\n\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n \"flex w-full gap-2 p-2\",\n state === \"collapsed\"\n ? \"justify-center items-center\"\n : \"justify-between items-start\",\n className\n )}\n {...props}\n >\n {state !== \"collapsed\" && (\n <div className=\"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden\">\n <div className=\"whitespace-nowrap\">{children}</div>\n </div>\n )}\n\n {showTrigger && <SidebarTrigger />}\n </div>\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col\",\n \"group-data-[collapsible=icon]:p-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-sidebar shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\"}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarBanner,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
-
var _chunkQPMDGUSQjs = require('./chunk-QPMDGUSQ.js');var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _datefns = require('date-fns');var _reactpopover = require('@radix-ui/react-popover'); var o = _interopRequireWildcard(_reactpopover);var _jsxruntime = require('react/jsx-runtime');var D=o.Root,
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
var _chunkQPMDGUSQjs = require('./chunk-QPMDGUSQ.js');var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _datefns = require('date-fns');var _reactpopover = require('@radix-ui/react-popover'); var o = _interopRequireWildcard(_reactpopover);var _jsxruntime = require('react/jsx-runtime');var D=o.Root,N=o.Trigger,P=r.forwardRef(({className:e,align:a="start",sideOffset:n=4,...i},s)=>_jsxruntime.jsx.call(void 0, o.Portal,{children:_jsxruntime.jsx.call(void 0, o.Content,{ref:s,align:a,sideOffset:n,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 w-auto rounded-3xl border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i})}));P.displayName=o.Content.displayName;var w=r.forwardRef(({dateRange:e,onDateRangeChange:a,placeholder:n="Pick a date range",disabled:i=!1,className:s,calendarProps:u,formatStr:m="LLL dd, y",numberOfMonths:v=2},g)=>{let[R,C]=r.useState(!1),h=()=>_optionalChain([e, 'optionalAccess', _ => _.from])?e.to?`${_datefns.format.call(void 0, e.from,m)} - ${_datefns.format.call(void 0, e.to,m)}`:_datefns.format.call(void 0, e.from,m):n;return _jsxruntime.jsxs.call(void 0, D,{open:R,onOpenChange:C,modal:!0,children:[_jsxruntime.jsx.call(void 0, N,{asChild:!0,children:_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{ref:g,variant:"outline",className:_chunkFUYXCJOQjs.a.call(void 0, "w-full min-w-0 justify-start text-left font-normal",!_optionalChain([e, 'optionalAccess', _2 => _2.from])&&"text-muted-foreground",s),disabled:i,children:[_jsxruntime.jsx.call(void 0, _lucidereact.CalendarIcon,{className:"mr-2 h-4 w-4 shrink-0"}),_jsxruntime.jsx.call(void 0, "span",{className:"truncate",children:h()})]})}),_jsxruntime.jsx.call(void 0, P,{className:"w-auto p-0",align:"start",children:_jsxruntime.jsx.call(void 0, _chunkQPMDGUSQjs.a,{mode:"range",selected:e,onSelect:b=>{_optionalChain([a, 'optionalCall', _3 => _3(b)])},defaultMonth:_optionalChain([e, 'optionalAccess', _4 => _4.from]),numberOfMonths:v,...u})})]})});w.displayName="DateRangePicker";exports.a = w;
|
|
3
|
+
//# sourceMappingURL=chunk-KOYGHJMM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-KOYGHJMM.js","../src/components/date-range-picker.tsx"],"names":["Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","jsx","cn","DateRangePicker","dateRange","onDateRangeChange","placeholder","disabled","calendarProps","formatStr","numberOfMonths","open","setOpen","formatDisplayValue"],"mappings":"AAAA,22BAAY;AACZ,sDAAuC,sDAAwC,sDAAwC,uECChG,2CACM,mCACN,uGACW,+CAe9B,IAREA,CAAAA,CAA2B,CAAA,CAAA,IAAA,CAC3BC,CAAAA,CAAkC,CAAA,CAAA,OAAA,CAElCC,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,KAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAS,UAAA,CAAAC,CAAAA,CAAa,CAAA,CAAG,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC3DC,6BAAAA,CAAkB,CAAA,MAAA,CAAjB,CACC,QAAA,CAAAA,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,KAAA,CAAOH,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,SAAA,CAAWI,gCAAAA,6bACT,CACAN,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAAA,CACF,CACD,CAAA,CACDJ,CAAAA,CAAe,WAAA,CAA+B,CAAA,CAAA,OAAA,CAAQ,WAAA,CAgBtD,IAAMQ,CAAAA,CAAwB,CAAA,CAAA,UAAA,CAI5B,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,mBAAA,CACd,QAAA,CAAAC,CAAAA,CAAW,CAAA,CAAA,CACX,SAAA,CAAAX,CAAAA,CACA,aAAA,CAAAY,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,WAAA,CACZ,cAAA,CAAAC,CAAAA,CAAiB,CACnB,CAAA,CACAV,CAAAA,CAAAA,EACG,CACH,GAAM,CAACW,CAAAA,CAAMC,CAAO,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAEtCC,CAAAA,CAAqB,CAAA,CAAA,kBACpBT,CAAAA,2BAAW,MAAA,CAIZA,CAAAA,CAAU,EAAA,CACL,CAAA,EAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-KOYGHJMM.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { format } from \"date-fns\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { Calendar } from \"@/components/calendar\"\n\nconst Popover = PopoverPrimitive.Root\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-auto rounded-3xl border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport interface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (dateRange: DateRange | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\"\n >\n formatStr?: string\n numberOfMonths?: number\n}\n\nconst DateRangePicker = React.forwardRef<\n HTMLButtonElement,\n DateRangePickerProps\n>(\n (\n {\n dateRange,\n onDateRangeChange,\n placeholder = \"Pick a date range\",\n disabled = false,\n className,\n calendarProps,\n formatStr = \"LLL dd, y\",\n numberOfMonths = 2,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n\n const formatDisplayValue = () => {\n if (!dateRange?.from) {\n return placeholder\n }\n\n if (dateRange.to) {\n return `${format(dateRange.from, formatStr)} - ${format(dateRange.to, formatStr)}`\n }\n\n return format(dateRange.from, formatStr)\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n className={cn(\n \"w-full min-w-0 justify-start text-left font-normal\",\n !dateRange?.from && \"text-muted-foreground\",\n className\n )}\n disabled={disabled}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4 shrink-0\" />\n <span className=\"truncate\">{formatDisplayValue()}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={(range) => {\n onDateRangeChange?.(range)\n }}\n defaultMonth={dateRange?.from}\n numberOfMonths={numberOfMonths}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nDateRangePicker.displayName = \"DateRangePicker\"\n\nexport { DateRangePicker }\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as f}from"./chunk-54WJMOJX.mjs";import{b as l}from"./chunk-2YRLGFWP.mjs";import{a as p}from"./chunk-S5TKCF6T.mjs";import*as r from"react";import{CalendarIcon as y}from"lucide-react";import{format as d}from"date-fns";import*as o from"@radix-ui/react-popover";import{jsx as t,jsxs as c}from"react/jsx-runtime";var D=o.Root,
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as f}from"./chunk-54WJMOJX.mjs";import{b as l}from"./chunk-2YRLGFWP.mjs";import{a as p}from"./chunk-S5TKCF6T.mjs";import*as r from"react";import{CalendarIcon as y}from"lucide-react";import{format as d}from"date-fns";import*as o from"@radix-ui/react-popover";import{jsx as t,jsxs as c}from"react/jsx-runtime";var D=o.Root,N=o.Trigger,P=r.forwardRef(({className:e,align:a="start",sideOffset:n=4,...i},s)=>t(o.Portal,{children:t(o.Content,{ref:s,align:a,sideOffset:n,className:p("z-50 w-auto rounded-3xl border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...i})}));P.displayName=o.Content.displayName;var w=r.forwardRef(({dateRange:e,onDateRangeChange:a,placeholder:n="Pick a date range",disabled:i=!1,className:s,calendarProps:u,formatStr:m="LLL dd, y",numberOfMonths:v=2},g)=>{let[R,C]=r.useState(!1),h=()=>e?.from?e.to?`${d(e.from,m)} - ${d(e.to,m)}`:d(e.from,m):n;return c(D,{open:R,onOpenChange:C,modal:!0,children:[t(N,{asChild:!0,children:c(l,{ref:g,variant:"outline",className:p("w-full min-w-0 justify-start text-left font-normal",!e?.from&&"text-muted-foreground",s),disabled:i,children:[t(y,{className:"mr-2 h-4 w-4 shrink-0"}),t("span",{className:"truncate",children:h()})]})}),t(P,{className:"w-auto p-0",align:"start",children:t(f,{mode:"range",selected:e,onSelect:b=>{a?.(b)},defaultMonth:e?.from,numberOfMonths:v,...u})})]})});w.displayName="DateRangePicker";export{w as a};
|
|
3
|
+
//# sourceMappingURL=chunk-OPJ5EH3F.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/date-range-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { format } from \"date-fns\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { Calendar } from \"@/components/calendar\"\n\nconst Popover = PopoverPrimitive.Root\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-auto rounded-3xl border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport interface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (dateRange: DateRange | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\"\n >\n formatStr?: string\n numberOfMonths?: number\n}\n\nconst DateRangePicker = React.forwardRef<\n HTMLButtonElement,\n DateRangePickerProps\n>(\n (\n {\n dateRange,\n onDateRangeChange,\n placeholder = \"Pick a date range\",\n disabled = false,\n className,\n calendarProps,\n formatStr = \"LLL dd, y\",\n numberOfMonths = 2,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n\n const formatDisplayValue = () => {\n if (!dateRange?.from) {\n return placeholder\n }\n\n if (dateRange.to) {\n return `${format(dateRange.from, formatStr)} - ${format(dateRange.to, formatStr)}`\n }\n\n return format(dateRange.from, formatStr)\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n className={cn(\n \"w-full min-w-
|
|
1
|
+
{"version":3,"sources":["../src/components/date-range-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { format } from \"date-fns\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { Calendar } from \"@/components/calendar\"\n\nconst Popover = PopoverPrimitive.Root\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-auto rounded-3xl border border-border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport interface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (dateRange: DateRange | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\"\n >\n formatStr?: string\n numberOfMonths?: number\n}\n\nconst DateRangePicker = React.forwardRef<\n HTMLButtonElement,\n DateRangePickerProps\n>(\n (\n {\n dateRange,\n onDateRangeChange,\n placeholder = \"Pick a date range\",\n disabled = false,\n className,\n calendarProps,\n formatStr = \"LLL dd, y\",\n numberOfMonths = 2,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n\n const formatDisplayValue = () => {\n if (!dateRange?.from) {\n return placeholder\n }\n\n if (dateRange.to) {\n return `${format(dateRange.from, formatStr)} - ${format(dateRange.to, formatStr)}`\n }\n\n return format(dateRange.from, formatStr)\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n className={cn(\n \"w-full min-w-0 justify-start text-left font-normal\",\n !dateRange?.from && \"text-muted-foreground\",\n className\n )}\n disabled={disabled}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4 shrink-0\" />\n <span className=\"truncate\">{formatDisplayValue()}</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={(range) => {\n onDateRangeChange?.(range)\n }}\n defaultMonth={dateRange?.from}\n numberOfMonths={numberOfMonths}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nDateRangePicker.displayName = \"DateRangePicker\"\n\nexport { DateRangePicker }\n"],"mappings":";2HAEA,UAAYA,MAAW,QACvB,OAAS,gBAAAC,MAAoB,eAC7B,OAAS,UAAAC,MAAc,WACvB,UAAYC,MAAsB,0BAe9B,cAAAC,EA8DM,QAAAC,MA9DN,oBARJ,IAAMC,EAA2B,OAC3BC,EAAkC,UAElCC,EAAuB,aAG3B,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAQ,QAAS,WAAAC,EAAa,EAAG,GAAGC,CAAM,EAAGC,IAC3DT,EAAkB,SAAjB,CACC,SAAAA,EAAkB,UAAjB,CACC,IAAKS,EACL,MAAOH,EACP,WAAYC,EACZ,UAAWG,EACT,8bACAL,CACF,EACC,GAAGG,EACN,EACF,CACD,EACDJ,EAAe,YAA+B,UAAQ,YAgBtD,IAAMO,EAAwB,aAI5B,CACE,CACE,UAAAC,EACA,kBAAAC,EACA,YAAAC,EAAc,oBACd,SAAAC,EAAW,GACX,UAAAV,EACA,cAAAW,EACA,UAAAC,EAAY,YACZ,eAAAC,EAAiB,CACnB,EACAT,IACG,CACH,GAAM,CAACU,EAAMC,CAAO,EAAU,WAAS,EAAK,EAEtCC,EAAqB,IACpBT,GAAW,KAIZA,EAAU,GACL,GAAGU,EAAOV,EAAU,KAAMK,CAAS,CAAC,MAAMK,EAAOV,EAAU,GAAIK,CAAS,CAAC,GAG3EK,EAAOV,EAAU,KAAMK,CAAS,EAP9BH,EAUX,OACEb,EAACC,EAAA,CAAQ,KAAMiB,EAAM,aAAcC,EAAS,MAAK,GAC/C,UAAApB,EAACG,EAAA,CAAe,QAAO,GACrB,SAAAF,EAACsB,EAAA,CACC,IAAKd,EACL,QAAQ,UACR,UAAWC,EACT,qDACA,CAACE,GAAW,MAAQ,wBACpBP,CACF,EACA,SAAUU,EAEV,UAAAf,EAACwB,EAAA,CAAa,UAAU,wBAAwB,EAChDxB,EAAC,QAAK,UAAU,WAAY,SAAAqB,EAAmB,EAAE,GACnD,EACF,EACArB,EAACI,EAAA,CAAe,UAAU,aAAa,MAAM,QAC3C,SAAAJ,EAACyB,EAAA,CACC,KAAK,QACL,SAAUb,EACV,SAAWc,GAAU,CACnBb,IAAoBa,CAAK,CAC3B,EACA,aAAcd,GAAW,KACzB,eAAgBM,EACf,GAAGF,EACN,EACF,GACF,CAEJ,CACF,EAEAL,EAAgB,YAAc","names":["React","CalendarIcon","format","PopoverPrimitive","jsx","jsxs","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","DateRangePicker","dateRange","onDateRangeChange","placeholder","disabled","calendarProps","formatStr","numberOfMonths","open","setOpen","formatDisplayValue","format","Button","CalendarIcon","Calendar","range"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as f}from"./chunk-4LR7SOCY.mjs";import{b as w}from"./chunk-2YRLGFWP.mjs";import{a as i}from"./chunk-S5TKCF6T.mjs";import*as r from"react";import{X as D}from"lucide-react";import{Drawer as d}from"vaul";import{jsx as t,jsxs as s}from"react/jsx-runtime";var x="24rem",p=r.createContext(null);function R(){let e=r.useContext(p);if(!e)throw new Error("useDrawer must be used within a Drawer component.");return e}var h=r.forwardRef(({isOpen:e,onClose:o,width:a=x,children:n,...l},c)=>{let u=r.useRef(null),m=f("lg"),v=r.useMemo(()=>({isOpen:e,onClose:o,width:a}),[e,o,a]);return s(p.Provider,{value:v,children:[!m&&t(d.Root,{open:e,onOpenChange:b=>{b||o()},direction:"left",children:s(d.Portal,{children:[t(d.Overlay,{className:"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm"}),s(d.Content,{className:"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none","aria-describedby":void 0,children:[t(d.Title,{className:"sr-only",children:"Drawer"}),n]})]})}),m&&s("div",{ref:c,className:"group/drawer peer","data-state":e?"open":"closed",...l,children:[t("div",{className:i("relative bg-sidebar transition-[width] duration-200 ease-linear",e?"":"w-0"),style:{width:e?a:"0"}}),t("div",{ref:u,className:i("fixed right-0 z-40 transition-[right,width] duration-200 ease-linear flex","top-(--sidebar-top,0px) h-[calc(100svh-var(--sidebar-top,0px))]",e?"right-0":"right-[calc(var(--drawer-width)*-1)]"),style:{"--drawer-width":a,width:a},children:t("div",{"data-drawer":"drawer",className:"flex h-full w-full flex-col",children:t("div",{className:"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow",children:n})})})]})]})});h.displayName="Drawer";var y=r.forwardRef(({className:e,showCloseButton:o=!0,children:a,...n},l)=>{let{onClose:c}=R();return s("div",{ref:l,"data-drawer":"header",className:i("flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border",e),...n,children:[t("div",{className:"flex-1",children:a}),o&&s(w,{variant:"secondary",size:"icon",onClick:c,className:"h-8 w-8 shrink-0 rounded-full",children:[t(D,{size:16}),t("span",{className:"sr-only",children:"Close drawer"})]})]})});y.displayName="DrawerHeader";var C=r.forwardRef(({className:e,...o},a)=>t("h2",{ref:a,className:i("text-lg font-semibold text-primary-accent",e),...o}));C.displayName="DrawerTitle";var N=r.forwardRef(({className:e,...o},a)=>t("div",{ref:a,"data-drawer":"body",className:i("flex-1 overflow-auto p-4",e),...o}));N.displayName="DrawerBody";var g=r.forwardRef(({className:e,...o},a)=>t("div",{ref:a,"data-drawer":"footer",className:i("flex flex-col gap-2 p-4 border-t border-sidebar-border",e),...o}));g.displayName="DrawerFooter";export{R as a,h as b,y as c,C as d,N as e,g as f};
|
|
3
|
+
//# sourceMappingURL=chunk-VFTGRKDL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/drawer.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { useMediaQuery } from \"@/lib/use-media-query\"\n\nconst DRAWER_WIDTH = \"24rem\"\n\n// Drawer Context\ntype DrawerContextProps = {\n isOpen: boolean\n onClose: () => void\n width?: string\n}\n\nconst DrawerContext = React.createContext<DrawerContextProps | null>(null)\n\nfunction useDrawer() {\n const context = React.useContext(DrawerContext)\n if (!context) {\n throw new Error(\"useDrawer must be used within a Drawer component.\")\n }\n return context\n}\n\n// Main Unified Drawer Component (Responsive)\nconst Drawer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n isOpen: boolean\n onClose: () => void\n width?: string\n }\n>(({ isOpen, onClose, width = DRAWER_WIDTH, children, ...props }, ref) => {\n const drawerRef = React.useRef<HTMLDivElement>(null)\n const isDesktop = useMediaQuery(\"lg\")\n\n const contextValue = React.useMemo<DrawerContextProps>(\n () => ({\n isOpen,\n onClose,\n width,\n }),\n [isOpen, onClose, width]\n )\n\n return (\n <DrawerContext.Provider value={contextValue}>\n {/* Mobile Drawer: visible < md breakpoint */}\n {!isDesktop && (\n <DrawerPrimitive.Root\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) onClose()\n }}\n direction=\"left\"\n >\n <DrawerPrimitive.Portal>\n <DrawerPrimitive.Overlay className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\" />\n <DrawerPrimitive.Content\n className=\"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none\"\n aria-describedby={undefined}\n >\n <DrawerPrimitive.Title className=\"sr-only\">\n Drawer\n </DrawerPrimitive.Title>\n {children}\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Portal>\n </DrawerPrimitive.Root>\n )}\n\n {/* Desktop Drawer: visible >= md breakpoint */}\n {isDesktop && (\n <div\n ref={ref}\n className=\"group/drawer peer\"\n data-state={isOpen ? \"open\" : \"closed\"}\n {...props}\n >\n {/* Spacer to push content */}\n <div\n className={cn(\n \"relative bg-sidebar transition-[width] duration-200 ease-linear\",\n isOpen ? \"\" : \"w-0\"\n )}\n style={\n {\n width: isOpen ? width : \"0\",\n } as React.CSSProperties\n }\n />\n\n {/* Fixed drawer panel */}\n <div\n ref={drawerRef}\n className={cn(\n \"fixed right-0 z-40 transition-[right,width] duration-200 ease-linear flex\",\n \"top-(--sidebar-top,0px) h-[calc(100svh-var(--sidebar-top,0px))]\",\n isOpen ? \"right-0\" : \"right-[calc(var(--drawer-width)*-1)]\"\n )}\n style={\n {\n \"--drawer-width\": width,\n width: width,\n } as React.CSSProperties\n }\n >\n <div data-drawer=\"drawer\" className=\"flex h-full w-full flex-col\">\n <div className=\"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )}\n </DrawerContext.Provider>\n )\n})\nDrawer.displayName = \"Drawer\"\n\n// Drawer Header\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n }\n>(({ className, showCloseButton = true, children, ...props }, ref) => {\n const { onClose } = useDrawer()\n\n return (\n <div\n ref={ref}\n data-drawer=\"header\"\n className={cn(\n \"flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border\",\n className\n )}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <Button\n variant=\"secondary\"\n size=\"icon\"\n onClick={onClose}\n className=\"h-8 w-8 shrink-0 rounded-full\"\n >\n <X size={16} />\n <span className=\"sr-only\">Close drawer</span>\n </Button>\n )}\n </div>\n )\n})\nDrawerHeader.displayName = \"DrawerHeader\"\n\n// Drawer Title\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<\"h2\">\n>(({ className, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n )\n})\nDrawerTitle.displayName = \"DrawerTitle\"\n\n// Drawer Body/Content\nconst DrawerBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"body\"\n className={cn(\"flex-1 overflow-auto p-4\", className)}\n {...props}\n />\n )\n})\nDrawerBody.displayName = \"DrawerBody\"\n\n// Drawer Footer\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"footer\"\n className={cn(\n \"flex flex-col gap-2 p-4 border-t border-sidebar-border\",\n className\n )}\n {...props}\n />\n )\n})\nDrawerFooter.displayName = \"DrawerFooter\"\n\nexport {\n Drawer,\n DrawerHeader,\n DrawerTitle,\n DrawerBody,\n DrawerFooter,\n useDrawer,\n}\n"],"mappings":"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","names":["React","X","DrawerPrimitive","jsx","jsxs","DRAWER_WIDTH","DrawerContext","useDrawer","context","Drawer","isOpen","onClose","width","children","props","ref","drawerRef","isDesktop","useMediaQuery","contextValue","DrawerPrimitive","open","cn","DrawerHeader","className","showCloseButton","Button","X","DrawerTitle","DrawerBody","DrawerFooter"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as m}from"./chunk-S5TKCF6T.mjs";import*as n from"react";import*as t from"@radix-ui/react-tooltip";import{jsx as o}from"react/jsx-runtime";var s=t.Provider,f=t.Root,P=t.Trigger,d=n.forwardRef(({className:i,sideOffset:e=4,asChild:r,...a},l)=>r?o(t.Portal,{children:o(t.Content,{ref:l,sideOffset:e,asChild:r,className:i,...a})}):o(t.Portal,{children:o(t.Content,{ref:l,sideOffset:e,className:m("z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",i),...a})}));d.displayName=t.Content.displayName;export{s as a,f as b,P as c,d};
|
|
3
|
+
//# sourceMappingURL=chunk-WO4QJVNB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tooltip.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, asChild, ...props }, ref) => {\n // When asChild is used, pass props through without default styling\n // The child component (e.g., Button) will receive the tooltip props directly\n if (asChild) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n asChild={asChild}\n className={className}\n {...props}\n />\n </TooltipPrimitive.Portal>\n )\n }\n\n // Default tooltip styling when not using asChild\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n )\n})\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAsB,0BAmB1B,cAAAC,MAAA,oBAfR,IAAMC,EAAmC,WAEnCC,EAA2B,OAE3BC,EAAkC,UAElCC,EAAuB,aAG3B,CAAC,CAAE,UAAAC,EAAW,WAAAC,EAAa,EAAG,QAAAC,EAAS,GAAGC,CAAM,EAAGC,IAG/CF,EAEAP,EAAkB,SAAjB,CACC,SAAAA,EAAkB,UAAjB,CACC,IAAKS,EACL,WAAYH,EACZ,QAASC,EACT,UAAWF,EACV,GAAGG,EACN,EACF,EAMFR,EAAkB,SAAjB,CACC,SAAAA,EAAkB,UAAjB,CACC,IAAKS,EACL,WAAYH,EACZ,UAAWI,EACT,+XACAL,CACF,EACC,GAAGG,EACN,EACF,CAEH,EACDJ,EAAe,YAA+B,UAAQ","names":["React","TooltipPrimitive","jsx","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","asChild","props","ref","cn"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var n = _interopRequireWildcard(_react);var _reacttooltip = require('@radix-ui/react-tooltip'); var t = _interopRequireWildcard(_reacttooltip);var _jsxruntime = require('react/jsx-runtime');var s=t.Provider,f= exports.b =t.Root,P= exports.c =t.Trigger,d= exports.d =n.forwardRef(({className:i,sideOffset:e=4,asChild:r,...a},l)=>r?_jsxruntime.jsx.call(void 0, t.Portal,{children:_jsxruntime.jsx.call(void 0, t.Content,{ref:l,sideOffset:e,asChild:r,className:i,...a})}):_jsxruntime.jsx.call(void 0, t.Portal,{children:_jsxruntime.jsx.call(void 0, t.Content,{ref:l,sideOffset:e,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",i),...a})}));d.displayName=t.Content.displayName;exports.a = s; exports.b = f; exports.c = P; exports.d = d;
|
|
3
|
+
//# sourceMappingURL=chunk-X53SMLIA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-X53SMLIA.js","../src/components/tooltip.tsx"],"names":["TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","asChild","props","ref","jsx","cn"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uECChB,uGACW,+CAmB1B,IAfFA,CAAAA,CAAmC,CAAA,CAAA,QAAA,CAEnCC,CAAAA,aAA2B,CAAA,CAAA,IAAA,CAE3BC,CAAAA,aAAkC,CAAA,CAAA,OAAA,CAElCC,CAAAA,aAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,UAAA,CAAAC,CAAAA,CAAa,CAAA,CAAG,OAAA,CAAAC,CAAAA,CAAS,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAG/CF,CAAAA,CAEAG,6BAAAA,CAAkB,CAAA,MAAA,CAAjB,CACC,QAAA,CAAAA,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,UAAA,CAAYH,CAAAA,CACZ,OAAA,CAASC,CAAAA,CACT,SAAA,CAAWF,CAAAA,CACV,GAAGG,CAAAA,CACN,CAAA,CACF,CAAA,CAMFE,6BAAAA,CAAkB,CAAA,MAAA,CAAjB,CACC,QAAA,CAAAA,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,UAAA,CAAYH,CAAAA,CACZ,SAAA,CAAWK,gCAAAA,8XACT,CACAN,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAAA,CACF,CAEH,CAAA,CACDJ,CAAAA,CAAe,WAAA,CAA+B,CAAA,CAAA,OAAA,CAAQ,WAAA,CAAA,2DAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-X53SMLIA.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, asChild, ...props }, ref) => {\n // When asChild is used, pass props through without default styling\n // The child component (e.g., Button) will receive the tooltip props directly\n if (asChild) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n asChild={asChild}\n className={className}\n {...props}\n />\n </TooltipPrimitive.Portal>\n )\n }\n\n // Default tooltip styling when not using asChild\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-xl border bg-tooltip px-4 py-2 text-sm text-primary-accent shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n )\n})\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as W,b as U,c as q,d as X}from"./chunk-WO4QJVNB.mjs";import{a as F}from"./chunk-YBV4CPVD.mjs";import{a as G,f as V,g as K,i as j,j as $}from"./chunk-DMHIFNXF.mjs";import{a as H}from"./chunk-CNRZOMR4.mjs";import{a as O}from"./chunk-ITTWKO7B.mjs";import{a as E,b as P}from"./chunk-2YRLGFWP.mjs";import{a as n}from"./chunk-S5TKCF6T.mjs";import*as e from"react";import{Slot as y}from"@radix-ui/react-slot";import{cva as te}from"class-variance-authority";import{PanelLeft as re,X as oe,Menu as ne}from"lucide-react";import{Fragment as L,jsx as o,jsxs as b}from"react/jsx-runtime";var ie="sidebar_state",se=3600*24*7,de="16.75rem",Y="23rem",le="calc(3rem + 0.75rem)",ce="b",J=e.createContext(null);function C(){let a=e.useContext(J);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}var pe=e.forwardRef(({defaultOpen:a=!0,open:t,onOpenChange:r,className:i,style:s,children:l,...f},c)=>{let[h,g]=e.useState(!1),[u,v]=e.useState(a),[S,w]=e.useState(!1),[R,N]=e.useState(a),x=t??R,m=e.useCallback(d=>{let p=typeof d=="function"?d(x):d;r?r(p):N(p),document.cookie=`${ie}=${p}; path=/; max-age=${se}`},[r,x]),M=e.useCallback(()=>{m(d=>!d)},[m]),I=e.useCallback(()=>{g(d=>!d)},[g]);e.useEffect(()=>{let d=p=>{p.key===ce&&(p.metaKey||p.ctrlKey)&&(p.preventDefault(),M())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[M]);let z=x?"expanded":"collapsed",Z=e.useMemo(()=>({state:z,isOpen:u,setOpen:m,openMobile:h,setOpenMobile:g,toggleSidebar:M,toggleMobileSidebar:I,setIsFullyOpen:v,isAnimating:S,setIsAnimating:w}),[z,u,m,h,g,M,I,v,S,w]),[ee,B]=e.useState(0),D=e.useRef(null);e.useEffect(()=>{let d=D.current;if(!d){B(0);return}let p=()=>{B(d.offsetHeight)};p();let A=new ResizeObserver(p);return A.observe(d),()=>A.disconnect()},[]);let _=e.Children.toArray(l),k=_.filter(d=>e.isValidElement(d)&&d.type?.displayName==="SidebarBanner"),ae=_.filter(d=>!e.isValidElement(d)||d.type?.displayName!=="SidebarBanner"),T=k.length>0;return o(J.Provider,{value:Z,children:o(W,{delayDuration:0,children:o("div",{style:{"--sidebar-width":de,"--sidebar-width-icon":le,"--sidebar-top":T?`${ee}px`:"0px",...s},className:n("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",T&&"flex-col",i),ref:c,...f,children:T?b(L,{children:[o("div",{ref:D,children:k}),o("div",{className:"flex flex-1",children:ae})]}):l})})})});pe.displayName="SidebarProvider";var be=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"banner",className:n("sticky top-0 z-20 w-full",a),...t}));be.displayName="SidebarBanner";var ue=e.forwardRef(({side:a="left",variant:t="sidebar",collapsible:r="offcanvas",className:i,children:s,...l},f)=>{let{state:c,openMobile:h,setOpenMobile:g,setIsFullyOpen:u,setIsAnimating:v}=C(),S=e.useRef(null),w=e.useRef(!0);return e.useEffect(()=>{let R=S.current;if(!R)return;if(w.current){w.current=!1,u(c==="expanded"),v(!1);return}v(!0);let N=setTimeout(()=>{u(c==="expanded"),v(!1)},300),x=m=>{m.target===R&&(m.propertyName==="left"||m.propertyName==="right"||m.propertyName==="width")&&(clearTimeout(N),u(c==="expanded"),v(!1))};return R.addEventListener("transitionend",x),()=>{R.removeEventListener("transitionend",x),clearTimeout(N)}},[c,u,v]),r==="none"?o("aside",{className:n("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),ref:f,...l,children:s}):b(L,{children:[o(G,{open:h,onOpenChange:g,children:b(V,{"data-sidebar":"sidebar","data-mobile":"true",className:"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{width:Y,maxWidth:Y},side:a,children:[b(K,{className:"sr-only",children:[o(j,{children:"Sidebar"}),o($,{children:"Displays the mobile sidebar."})]}),o("div",{className:"flex h-full w-full flex-col",children:s})]})}),b("aside",{ref:f,className:"group peer hidden text-sidebar-foreground md:block","data-state":c,"data-collapsible":c==="collapsed"?r:"","data-variant":t,"data-side":a,children:[o("div",{className:n("w-(--sidebar-width) transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),o("div",{ref:S,className:n("fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)",i),...l,children:o("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:o("div",{className:"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full",children:s})})})]})]})});ue.displayName="Sidebar";var Q=e.forwardRef(({className:a,onClick:t,...r},i)=>{let{toggleSidebar:s,toggleMobileSidebar:l,openMobile:f}=C();return b(L,{children:[b(P,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:n("md:hidden bg-transparent hover:bg-transparent",a),onClick:c=>{t?.(c),l()},...r,children:[f?o("span",{className:n(E({variant:"secondary",size:"icon"})),children:o(oe,{size:16})}):o("span",{className:n(E({variant:"outline",size:"icon"})),children:o(ne,{size:16})}),o("span",{className:"sr-only",children:"Toggle Sidebar"})]}),b(P,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:n("hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent",a),onClick:c=>{t?.(c),s()},...r,children:[o("span",{className:"rounded-full hover:bg-secondary p-2",children:o(re,{size:16})}),o("span",{className:"sr-only",children:"Toggle Sidebar"})]})]})});Q.displayName="SidebarTrigger";var fe=e.forwardRef(({className:a,...t},r)=>{let{toggleSidebar:i}=C();return o("button",{ref:r,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:i,title:"Toggle Sidebar",className:n("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...t})});fe.displayName="SidebarRail";var me=e.memo(e.forwardRef(({className:a,...t},r)=>o("main",{ref:r,className:n("relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",a),...t})));me.displayName="SidebarInset";var ge=e.forwardRef(({className:a,...t},r)=>o(O,{ref:r,"data-sidebar":"input",className:n("h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...t}));ge.displayName="SidebarInput";var ve=e.forwardRef(({className:a,showTrigger:t=!1,children:r,...i},s)=>{let{state:l}=C();return b("div",{ref:s,"data-sidebar":"header",className:n("flex w-full gap-2 p-2",l==="collapsed"?"justify-center items-center":"justify-between items-start",a),...i,children:[l!=="collapsed"&&o("div",{className:"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden",children:o("div",{className:"whitespace-nowrap",children:r})}),t&&o(Q,{})]})});ve.displayName="SidebarHeader";var he=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"footer",className:n("flex flex-col gap-2 p-2",a),...t}));he.displayName="SidebarFooter";var Re=e.forwardRef(({className:a,...t},r)=>o(F,{ref:r,"data-sidebar":"separator",className:n("mx-2 w-auto bg-border",a),...t}));Re.displayName="SidebarSeparator";var xe=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"content",className:n("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",a),...t}));xe.displayName="SidebarContent";var Se=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"group",className:n("relative flex w-full min-w-0 flex-col","group-data-[collapsible=icon]:p-0",a),...t}));Se.displayName="SidebarGroup";var we=e.forwardRef(({className:a,asChild:t=!1,...r},i)=>o(t?y:"div",{ref:i,"data-sidebar":"group-label",className:n("flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring 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",a),...r}));we.displayName="SidebarGroupLabel";var ye=e.forwardRef(({className:a,asChild:t=!1,...r},i)=>o(t?y:"button",{ref:i,"data-sidebar":"group-action",className:n("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",a),...r}));ye.displayName="SidebarGroupAction";var Ce=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"group-content",className:n("w-full text-sm",a),...t}));Ce.displayName="SidebarGroupContent";var Ne=e.forwardRef(({className:a,...t},r)=>o("ul",{ref:r,"data-sidebar":"menu",className:n("flex w-full min-w-0 flex-col gap-1",a),...t}));Ne.displayName="SidebarMenu";var Me=e.forwardRef(({className:a,...t},r)=>o("li",{ref:r,"data-sidebar":"menu-item",className:n("group/menu-item relative",a),...t}));Me.displayName="SidebarMenuItem";var Te=te("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground",outline:"bg-sidebar shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),Ee=e.forwardRef(({asChild:a=!1,isActive:t=!1,variant:r="default",size:i="default",tooltip:s,className:l,...f},c)=>{let h=a?y:"button",{state:g}=C(),u=o(h,{ref:c,"data-sidebar":"menu-button","data-size":i,"data-active":t,className:n(Te({variant:r,size:i}),l),...f});return s?(typeof s=="string"&&(s={children:s}),b(U,{children:[o(q,{asChild:!0,children:u}),o(X,{side:"right",align:"center",hidden:g!=="collapsed",...s})]})):u});Ee.displayName="SidebarMenuButton";var Pe=e.forwardRef(({className:a,asChild:t=!1,showOnHover:r=!1,...i},s)=>o(t?y:"button",{ref:s,"data-sidebar":"menu-action",className:n("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",r&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0",a),...i}));Pe.displayName="SidebarMenuAction";var He=e.forwardRef(({className:a,...t},r)=>o("div",{ref:r,"data-sidebar":"menu-badge",className:n("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...t}));He.displayName="SidebarMenuBadge";var Le=e.forwardRef(({className:a,showIcon:t=!1,...r},i)=>{let s=e.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return b("div",{ref:i,"data-sidebar":"menu-skeleton",className:n("flex h-8 items-center gap-2 rounded-md px-2",a),...r,children:[t&&o(H,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),o(H,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})});Le.displayName="SidebarMenuSkeleton";var Ie=e.forwardRef(({className:a,...t},r)=>o("ul",{ref:r,"data-sidebar":"menu-sub",className:n("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...t}));Ie.displayName="SidebarMenuSub";var ze=e.forwardRef(({...a},t)=>o("li",{ref:t,...a}));ze.displayName="SidebarMenuSubItem";var Be=e.forwardRef(({asChild:a=!1,size:t="md",isActive:r,className:i,...s},l)=>o(a?y:"a",{ref:l,"data-sidebar":"menu-sub-button","data-size":t,"data-active":r,className:n("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...s}));Be.displayName="SidebarMenuSubButton";export{C as a,pe as b,be as c,ue as d,Q as e,fe as f,me as g,ge as h,ve as i,he as j,Re as k,xe as l,Se as m,we as n,ye as o,Ce as p,Ne as q,Me as r,Ee as s,Pe as t,He as u,Le as v,Ie as w,ze as x,Be as y};
|
|
3
|
+
//# sourceMappingURL=chunk-XWYFRIBU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/sidebar.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft, X, Menu } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/button\"\nimport { Input } from \"@/components/input\"\nimport { Separator } from \"@/components/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\"\nimport { Skeleton } from \"@/components/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16.75rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"23rem\"\nconst SIDEBAR_WIDTH_ICON = \"calc(3rem + 0.75rem)\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n isOpen: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n toggleSidebar: () => void\n toggleMobileSidebar: () => void\n setIsFullyOpen: (open: boolean) => void\n isAnimating: boolean\n setIsAnimating: (animating: boolean) => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const [openMobile, setOpenMobile] = React.useState(false)\n const [isFullyOpen, setIsFullyOpen] = React.useState(defaultOpen)\n const [isAnimating, setIsAnimating] = React.useState(false)\n\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n const toggleSidebar = React.useCallback(() => {\n setOpen((open) => !open)\n }, [setOpen])\n\n const toggleMobileSidebar = React.useCallback(() => {\n setOpenMobile((open) => !open)\n }, [setOpenMobile])\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n isOpen: isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n }),\n [\n state,\n isFullyOpen,\n setOpen,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n toggleMobileSidebar,\n setIsFullyOpen,\n isAnimating,\n setIsAnimating,\n ]\n )\n\n const [bannerHeight, setBannerHeight] = React.useState(0)\n const bannerRef = React.useRef<HTMLDivElement>(null)\n\n // Measure banner height\n React.useEffect(() => {\n const banner = bannerRef.current\n if (!banner) {\n setBannerHeight(0)\n return\n }\n\n const updateHeight = () => {\n setBannerHeight(banner.offsetHeight)\n }\n\n updateHeight()\n\n const resizeObserver = new ResizeObserver(updateHeight)\n resizeObserver.observe(banner)\n\n return () => resizeObserver.disconnect()\n }, [])\n\n // Separate banner children (SidebarBanner) from layout children (Sidebar, SidebarInset)\n const childArray = React.Children.toArray(children)\n const bannerChildren = childArray.filter(\n (child) =>\n React.isValidElement(child) &&\n (child.type as React.FC & { displayName?: string })?.displayName ===\n \"SidebarBanner\"\n )\n const layoutChildren = childArray.filter(\n (child) =>\n !React.isValidElement(child) ||\n (child.type as React.FC & { displayName?: string })?.displayName !==\n \"SidebarBanner\"\n )\n\n const hasBanner = bannerChildren.length > 0\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n \"--sidebar-top\": hasBanner ? `${bannerHeight}px` : \"0px\",\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n hasBanner && \"flex-col\",\n className\n )}\n ref={ref}\n {...props}\n >\n {hasBanner ? (\n <>\n <div ref={bannerRef}>{bannerChildren}</div>\n <div className=\"flex flex-1\">{layoutChildren}</div>\n </>\n ) : (\n children\n )}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst SidebarBanner = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"banner\"\n className={cn(\"sticky top-0 z-20 w-full\", className)}\n {...props}\n />\n )\n})\nSidebarBanner.displayName = \"SidebarBanner\"\n\nconst Sidebar = React.forwardRef<\n HTMLElement,\n React.ComponentProps<\"aside\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { state, openMobile, setOpenMobile, setIsFullyOpen, setIsAnimating } =\n useSidebar()\n const sidebarRef = React.useRef<HTMLDivElement>(null)\n const isFirstRenderRef = React.useRef(true)\n\n // Track when the sidebar animation completes\n React.useEffect(() => {\n const sidebar = sidebarRef.current\n if (!sidebar) return\n\n // On first render, set isFullyOpen immediately without waiting for animation\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n return\n }\n\n // Mark as animating when state changes\n setIsAnimating(true)\n\n // Fallback timeout in case transitionend doesn't fire\n const fallbackTimeout = setTimeout(() => {\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n }, 300) // Slightly longer than the 200ms transition duration\n\n const handleTransitionEnd = (event: TransitionEvent) => {\n // Only respond to transitions on the sidebar itself, not children\n if (event.target !== sidebar) return\n\n // Check if we're transitioning width, left, or right properties\n if (\n event.propertyName === \"left\" ||\n event.propertyName === \"right\" ||\n event.propertyName === \"width\"\n ) {\n clearTimeout(fallbackTimeout)\n setIsFullyOpen(state === \"expanded\")\n setIsAnimating(false)\n }\n }\n\n sidebar.addEventListener(\"transitionend\", handleTransitionEnd)\n return () => {\n sidebar.removeEventListener(\"transitionend\", handleTransitionEnd)\n clearTimeout(fallbackTimeout)\n }\n }, [state, setIsFullyOpen, setIsAnimating])\n\n if (collapsible === \"none\") {\n return (\n <aside\n className={cn(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </aside>\n )\n }\n\n return (\n <>\n {/* Mobile Sheet - visible only on mobile (< md) */}\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n width: SIDEBAR_WIDTH_MOBILE,\n maxWidth: SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n\n {/* Desktop Sidebar - visible only on desktop (md+) */}\n <aside\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* Spacer to reserve horizontal space */}\n <div\n className={cn(\n \"w-(--sidebar-width) transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\n )}\n />\n {/* Fixed sidebar */}\n <div\n ref={sidebarRef}\n className={cn(\n \"fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n \"top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n <div className=\"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full\">\n {children}\n </div>\n </div>\n </div>\n </aside>\n </>\n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar, toggleMobileSidebar, openMobile } = useSidebar()\n\n return (\n <>\n {/* Mobile trigger - visible only on mobile (< md) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"md:hidden bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleMobileSidebar()\n }}\n {...props}\n >\n {openMobile ? (\n <span\n className={cn(\n buttonVariants({ variant: \"secondary\", size: \"icon\" })\n )}\n >\n <X size={16} />\n </span>\n ) : (\n <span\n className={cn(buttonVariants({ variant: \"outline\", size: \"icon\" }))}\n >\n <Menu size={16} />\n </span>\n )}\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n\n {/* Desktop trigger - visible only on desktop (md+) */}\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\n \"hidden md:flex h-7 w-7 bg-transparent hover:bg-transparent\",\n className\n )}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <span className=\"rounded-full hover:bg-secondary p-2\">\n <PanelLeft size={16} />\n </span>\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n </>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nconst SidebarInset = React.memo(\n React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n }\n )\n)\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarInput.displayName = \"SidebarInput\"\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showTrigger?: boolean\n }\n>(({ className, showTrigger = false, children, ...props }, ref) => {\n const { state } = useSidebar()\n\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n \"flex w-full gap-2 p-2\",\n state === \"collapsed\"\n ? \"justify-center items-center\"\n : \"justify-between items-start\",\n className\n )}\n {...props}\n >\n {state !== \"collapsed\" && (\n <div className=\"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden\">\n <div className=\"whitespace-nowrap\">{children}</div>\n </div>\n )}\n\n {showTrigger && <SidebarTrigger />}\n </div>\n )\n})\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n})\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-border\", className)}\n {...props}\n />\n )\n})\nSidebarSeparator.displayName = \"SidebarSeparator\"\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col\",\n \"group-data-[collapsible=icon]:p-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n))\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n))\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n))\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"hover:bg-sidebar-accent/20 hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-sidebar shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const { state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\"}\n {...tooltip}\n />\n </Tooltip>\n )\n }\n)\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarBanner,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n"],"mappings":"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","names":["React","Slot","cva","PanelLeft","X","Menu","Fragment","jsx","jsxs","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","openMobile","setOpenMobile","isFullyOpen","setIsFullyOpen","isAnimating","setIsAnimating","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","toggleMobileSidebar","handleKeyDown","event","state","contextValue","bannerHeight","setBannerHeight","bannerRef","banner","updateHeight","resizeObserver","childArray","bannerChildren","child","layoutChildren","hasBanner","TooltipProvider","cn","SidebarBanner","Sidebar","side","variant","collapsible","sidebarRef","isFirstRenderRef","sidebar","fallbackTimeout","handleTransitionEnd","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","buttonVariants","X","Menu","PanelLeft","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","showTrigger","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
-
"use client";var
|
|
2
|
+
"use client";var _chunkKOYGHJMMjs = require('../chunk-KOYGHJMM.js');require('../chunk-QPMDGUSQ.js');require('../chunk-QKOZTOYU.js');require('../chunk-FUYXCJOQ.js');require('../chunk-XYO4VLMF.js');exports.DateRangePicker = _chunkKOYGHJMMjs.a;
|
|
3
3
|
//# sourceMappingURL=date-range-picker.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use client";import{a}from"../chunk-
|
|
2
|
+
"use client";import{a}from"../chunk-OPJ5EH3F.mjs";import"../chunk-54WJMOJX.mjs";import"../chunk-2YRLGFWP.mjs";import"../chunk-S5TKCF6T.mjs";import"../chunk-KPAOPUY2.mjs";export{a as DateRangePicker};
|
|
3
3
|
//# sourceMappingURL=date-range-picker.mjs.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
-
"use client";var
|
|
2
|
+
"use client";var _chunk3ZEA35DMjs = require('../chunk-3ZEA35DM.js');require('../chunk-3BVMHDYA.js');require('../chunk-QKOZTOYU.js');require('../chunk-FUYXCJOQ.js');require('../chunk-XYO4VLMF.js');exports.Drawer = _chunk3ZEA35DMjs.b; exports.DrawerBody = _chunk3ZEA35DMjs.e; exports.DrawerFooter = _chunk3ZEA35DMjs.f; exports.DrawerHeader = _chunk3ZEA35DMjs.c; exports.DrawerTitle = _chunk3ZEA35DMjs.d; exports.useDrawer = _chunk3ZEA35DMjs.a;
|
|
3
3
|
//# sourceMappingURL=drawer.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use client";import{a,b,c,d,e,f}from"../chunk-
|
|
2
|
+
"use client";import{a,b,c,d,e,f}from"../chunk-VFTGRKDL.mjs";import"../chunk-4LR7SOCY.mjs";import"../chunk-2YRLGFWP.mjs";import"../chunk-S5TKCF6T.mjs";import"../chunk-KPAOPUY2.mjs";export{b as Drawer,e as DrawerBody,f as DrawerFooter,c as DrawerHeader,d as DrawerTitle,a as useDrawer};
|
|
3
3
|
//# sourceMappingURL=drawer.mjs.map
|
|
@@ -25,6 +25,7 @@ declare const SidebarProvider: React.ForwardRefExoticComponent<Omit<React.ClassA
|
|
|
25
25
|
open?: boolean;
|
|
26
26
|
onOpenChange?: (open: boolean) => void;
|
|
27
27
|
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
declare const SidebarBanner: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
28
29
|
declare const Sidebar: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
|
|
29
30
|
side?: "left" | "right";
|
|
30
31
|
variant?: "sidebar" | "floating" | "inset";
|
|
@@ -74,4 +75,4 @@ declare const SidebarMenuSubButton: React.ForwardRefExoticComponent<Omit<React.C
|
|
|
74
75
|
isActive?: boolean;
|
|
75
76
|
}, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
76
77
|
|
|
77
|
-
export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
|
|
78
|
+
export { Sidebar, SidebarBanner, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
|