@tribepad/themis 1.1.2 → 1.1.3
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/elements/Sidebar/SidebarMobileDrawer.d.ts.map +1 -1
- package/dist/elements/Sidebar/index.js +1 -1
- package/dist/elements/Sidebar/index.js.map +1 -1
- package/dist/elements/Sidebar/index.mjs +1 -1
- package/dist/elements/Sidebar/index.mjs.map +1 -1
- package/dist/elements/index.js +1 -1
- package/dist/elements/index.js.map +1 -1
- package/dist/elements/index.mjs +1 -1
- package/dist/elements/index.mjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/elements/Sidebar/Sidebar.stories.tsx +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMobileDrawer.d.ts","sourceRoot":"","sources":["../../../src/elements/Sidebar/SidebarMobileDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SidebarMobileDrawer.d.ts","sourceRoot":"","sources":["../../../src/elements/Sidebar/SidebarMobileDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAiGf,UAAU,wBAAwB;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAwH/F"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),zod=require('zod');var pt=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var ut=(e,t)=>{for(var a in t)pt(e,a,{get:t[a],enumerable:true});};function Le(e){let t=react.useCallback(o=>{let s=window.matchMedia(e);return s.addEventListener("change",o),()=>s.removeEventListener("change",o)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var Oe=O(()=>{"use client";});function v(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=O(()=>{});function ee(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var K,se,ie,U,J,le,_e=O(()=>{K=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],se=["min-h-[44px]","min-w-[44px]"],ie={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${ie.sm} px-2 text-xs`,default:`${ie.default} px-3 text-sm`,lg:`${ie.lg} px-4 text-base`},U=["motion-reduce:transition-none","motion-reduce:animate-none"],J=["transition-colors","duration-150"],le=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;exports.sidebarRailItemBadgeVariants=void 0;exports.sidebarPopoverVariants=void 0;exports.sidebarPanelVariants=void 0;exports.sidebarPanelHeaderVariants=void 0;exports.sidebarPanelHeaderTitleVariants=void 0;exports.sidebarCollapseButtonVariants=void 0;exports.sidebarMobileOverlayVariants=void 0;exports.sidebarMobileDrawerVariants=void 0;exports.sidebarMobileDrawerHeaderVariants=void 0;exports.sidebarMobileRailVariants=void 0;exports.sidebarMobileRailItemVariants=void 0;var I=O(()=>{_e();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[68px]","shrink-0","border-r","border-[var(--border)]","py-2","px-1.5","overflow-y-auto","overflow-x-hidden"],{variants:{variant:{default:"bg-[var(--menu-background)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col","gap-1"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(ee(K,U,J,["flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-0.5","px-1","py-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:"text-[var(--icon)]",primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},compoundVariants:[{railVariant:"default",isActive:true,className:"bg-[var(--menu-accent)] text-[var(--menu-foreground)]"},{railVariant:"default",isActive:false,className:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]"},{railVariant:"primary",isActive:true,className:"bg-white/20 text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"hover:bg-white/10 hover:text-[var(--primary-action-foreground)]"}],defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}}),exports.sidebarRailItemBadgeVariants=classVarianceAuthority.cva(["absolute","-top-1.5","-right-1.5","min-w-[18px]","h-[18px]","rounded-full","px-1","flex","items-center","justify-center","bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","text-[10px]","font-bold","leading-none"]),exports.sidebarPopoverVariants=classVarianceAuthority.cva(["h-full","w-full","overflow-y-auto","bg-[var(--content-background)]","text-[var(--content-foreground)]","text-sm","motion-safe:animate-in","motion-safe:fade-in-0","motion-safe:slide-in-from-bottom-1","motion-safe:duration-200","motion-safe:fill-mode-both","[animation-delay:120ms]"]),exports.sidebarPanelVariants=classVarianceAuthority.cva(["flex","flex-col","h-full","overflow-hidden","bg-[var(--content-background)]","text-[var(--content-foreground)]","motion-safe:transition-[max-width,opacity]","motion-safe:duration-[var(--transition-slow)]",...U],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[280px] w-[280px]",lg:"max-w-[340px] w-[340px]",xl:"max-w-[420px] w-[420px]"},isCollapsed:{true:"max-w-0 opacity-0 overflow-hidden",false:"opacity-100"}},defaultVariants:{width:"md",isCollapsed:false}}),exports.sidebarPanelHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","shrink-0","border-b","border-[var(--border)]"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(ee(se,K,U,J,["inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","[&_svg]:size-4","[&_svg]:shrink-0","cursor-pointer","mb-1"]),{variants:{railVariant:{default:["text-[var(--menu-foreground)]",...le],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),exports.sidebarMobileOverlayVariants=classVarianceAuthority.cva(["fixed","inset-0","z-50","bg-black/50"]),exports.sidebarMobileDrawerVariants=classVarianceAuthority.cva(["fixed","inset-y-0","left-0","z-50","flex","flex-col","w-[85vw]","max-w-[380px]","bg-[var(--content-background)]","shadow-[var(--shadow-lg)]"]),exports.sidebarMobileDrawerHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),exports.sidebarMobileRailVariants=classVarianceAuthority.cva(["flex","items-center","gap-1","px-2","py-2","overflow-x-auto","overflow-y-hidden","shrink-0","border-b","border-[var(--border)]","bg-[var(--menu-background)]"]),exports.sidebarMobileRailItemVariants=classVarianceAuthority.cva(ee(se,K,U,J,["flex","flex-col","items-center","justify-center","gap-0.5","px-2","py-1.5","rounded-[var(--radius-md)]","text-[var(--icon)]","shrink-0","cursor-pointer"]),{variants:{isActive:{true:["bg-[var(--menu-accent)]","text-[var(--menu-foreground)]"],false:[...le]}},defaultVariants:{isActive:false}});});function V(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function g(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function ye({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:o,onMobileOpenChange:s,mobileBreakpoint:n=768,className:i,"data-testid":l="sidebar"}){let[p,P]=react.useState(a),y=t!==void 0,b=y?t:p,h=react.useCallback(x=>{y||P(x),r?.(x);},[y,r]),w=react.useCallback(()=>h(!b),[h,b]),C=o??false,M=react.useCallback(x=>s?.(x),[s]),[u,m]=react.useState(null),f=react.useRef(null),D=react.useCallback(()=>{f.current&&(clearTimeout(f.current),f.current=null);},[]),A=react.useCallback((x=300)=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{f.current=null,m(null);},x);},[]);react.useEffect(()=>()=>{f.current&&clearTimeout(f.current);},[]);let L=Le(`(max-width: ${n-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,G=`sidebar-panel-${B}`,z=react.useMemo(()=>({isMobile:L,railId:k,panelId:G}),[L,k,G]),q=react.useMemo(()=>({isCollapsed:b,setCollapsed:h,toggleCollapsed:w,isMobileOpen:C,setMobileOpen:M,activePopoverId:u,setActivePopoverId:m,cancelPopoverClose:D,schedulePopoverClose:A}),[b,h,w,C,M,u,D,A]);return L?jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:q,children:e})}):jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:q,children:jsxRuntime.jsx("div",{className:v(exports.sidebarRootVariants(),i),"data-testid":l,children:e})})})}var Re,Pe,H=O(()=>{"use client";Oe();_();I();Re=react.createContext(null),Pe=react.createContext(null);ye.displayName="Sidebar";});var ot={};ut(ot,{SidebarMobileDrawer:()=>Qt});function Xt(e){return e>99?"99+":String(e)}function Zt(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,o=>{if(!react.isValidElement(o))return;let s=o.type.displayName;s==="SidebarRail"?(r=o.props["aria-label"]??r,react.Children.forEach(o.props.children,n=>{if(!react.isValidElement(n))return;n.type.displayName==="SidebarRailItem"&&t.push(n);})):s==="SidebarPanel"&&(a=o.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function Qt({children:e}){let{isMobileOpen:t,setMobileOpen:a}=g(),{railItems:r,panelContent:o,railAriaLabel:s}=Zt(e);return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:n=>{n||a(false);},className:exports.sidebarMobileOverlayVariants(),children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:exports.sidebarMobileDrawerVariants(),children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxRuntime.jsxs("header",{className:exports.sidebarMobileDrawerHeaderVariants(),children:[jsxRuntime.jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsxRuntime.jsx(reactAriaComponents.Button,{"aria-label":"Close navigation",className:v(exports.sidebarCollapseButtonVariants()),onPress:()=>a(false),children:jsxRuntime.jsx(lucideReact.X,{})})]}),r.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":s,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:r.map(n=>{let i=n.props;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":i.isActive?i.currentType??"page":void 0,isDisabled:i.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:i.isActive??false}),onPress:()=>{i.onPress?.(),i.href&&(window.location.href=i.href),a(false);},"data-testid":`sidebar-mobile-rail-item-${i.id}`,children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants(),"aria-hidden":"true",children:[i.icon,i.badgeCount!=null&&i.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Xt(i.badgeCount)})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({isActive:i.isActive??false}),children:i.label}),i.badgeCount!=null&&i.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[i.badgeCount," notifications"]})]},i.id)})}),o&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:o})]})})})}var nt=O(()=>{"use client";_();H();I();});H();_();H();_();H();I();var St=200,Rt=300;function Ue(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:s}=g(),n=react.useRef("IDLE"),i=react.useRef(null),l=react.useCallback(()=>{i.current&&(clearTimeout(i.current),i.current=null);},[]),p=a===e;react.useEffect(()=>{!p&&n.current!=="IDLE"?(l(),n.current="IDLE"):p&&(n.current="OPEN");},[p,l]),react.useEffect(()=>l,[l]);let P=react.useCallback(b=>{t&&b.pointerType==="mouse"&&(l(),o(),n.current!=="OPEN"&&(n.current="HOVERING_TRIGGER",i.current=setTimeout(()=>{n.current="OPEN",r(e);},St)));},[e,t,r,l,o]),y=react.useCallback(()=>{if(t){if(l(),n.current==="HOVERING_TRIGGER"){n.current="IDLE",r(null);return}n.current==="OPEN"&&s(Rt);}},[t,r,l,s]);return {onTriggerPointerEnter:P,onTriggerPointerLeave:y}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:v(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();I();function Nt(){let{activePopoverId:e,setActivePopoverId:t}=g(),{isMobile:a}=V(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let o=s=>{s.key==="Escape"&&(s.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),react.useEffect(()=>{if(!e)return;let o=n=>{let i=r.current,l=n.relatedTarget;if(!l||!i)return;let p=document.querySelector('[data-testid="sidebar-rail"]');!i.contains(l)&&!p?.contains(l)&&t(null);},s=r.current;return s?.addEventListener("focusout",o),()=>s?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsxRuntime.jsx(We,{ref:r})}var Fe=react.createContext(null);function Ie(){let e=react.useContext(Fe);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function $e({children:e}){let t=react.useRef(new Map),a=react.useCallback((n,i,l)=>{t.current.set(n,{content:i,label:l});},[]),r=react.useCallback(n=>{t.current.delete(n);},[]),o=react.useCallback(n=>t.current.get(n)??null,[]),s=react.useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsxRuntime.jsx(Fe.Provider,{value:s,children:e})}var We=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=g(),s=Ie();if(!a)return null;let n=s.getContent(a);return n?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${n.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:n.content}):null});We.displayName="PopoverContent";var Tt=300,wt={sm:220,md:280,lg:340,xl:420},Ve=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":s="sidebar-panel"},n)=>{let{isMobile:i}=V(),{isCollapsed:l,activePopoverId:p}=g(),P=react.useRef(null),y=p!==null,[b,h]=react.useState(!l);react.useEffect(()=>{if(l){h(false);return}let u=window.setTimeout(()=>h(true),Tt);return ()=>window.clearTimeout(u)},[l]);let C=r!==void 0&&!(!l&&b)?r:e;react.useEffect(()=>{if(!l)return;let u=P.current;if(u&&u.contains(document.activeElement)){let m=document.querySelector('[data-testid="sidebar-collapse-button"]');m&&window.requestAnimationFrame(()=>m.focus());}},[l]);let M=u=>{P.current=u,typeof n=="function"?n(u):n&&(n.current=u);};return i?null:jsxRuntime.jsxs("div",{className:"relative shrink-0 border-r border-[var(--border)]",children:[jsxRuntime.jsx("aside",{ref:M,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:v(exports.sidebarPanelVariants({width:t,isCollapsed:l}),o),"data-testid":s,children:C}),y&&jsxRuntime.jsx("div",{className:v("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${wt[t]}px`},children:jsxRuntime.jsx(Nt,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,children:t,as:a="h2",className:r,"data-testid":o="sidebar-panel-header"}){return jsxRuntime.jsxs("header",{className:v(exports.sidebarPanelHeaderVariants(),r),"data-testid":o,children:[jsxRuntime.jsx(a,{className:exports.sidebarPanelHeaderTitleVariants(),children:e}),t]})}Te.displayName="SidebarPanelHeader";I();var Ke=react.createContext("default");function Je(){return react.useContext(Ke)}var we=react.forwardRef(({children:e,"aria-label":t,variant:a="default",className:r,"data-testid":o="sidebar-rail"},s)=>{let{isMobile:n}=V();if(n)return null;let i=[],l=[];return react.Children.forEach(e,p=>{react.isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"?i.push(p):l.push(p);}),jsxRuntime.jsx(Ke.Provider,{value:a,children:jsxRuntime.jsxs("nav",{ref:s,"aria-label":t,className:v(exports.sidebarRailVariants({variant:a}),r),"data-testid":o,children:[i,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:l})]})})});we.displayName="SidebarRail";function Gt(e){let t=null,a=[];return react.Children.forEach(e,r=>{react.isValidElement(r)&&r.type.displayName==="SidebarPopover"?t=r:a.push(r);}),{popover:t,rest:a.length>0?a:null}}function zt(e){return e>99?"99+":String(e)}var et=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:s=false,currentType:n="page",isDisabled:i=false,onPress:l,children:p,className:P,"data-testid":y},b)=>{let{activePopoverId:h,setActivePopoverId:w}=g(),C=Je(),M=react.useRef(null),{popover:u}=Gt(p),m=u!==null,f=h===e,D=Ue(e,m),A=Ie();react.useEffect(()=>{if(m&&u)return A.register(e,u,t),()=>A.unregister(e)},[e,m,u,t,A]);let L=react.useCallback(()=>{m&&w(f?null:e),l?.();},[m,f,e,l,w]),B=react.useCallback(x=>{M.current=x,typeof b=="function"?b(x):b&&(b.current=x);},[b]),k=y??`sidebar-rail-item-${e}`,G=P?v(exports.sidebarRailItemVariants({railVariant:C,isActive:s,isDisabled:i}),P):exports.sidebarRailItemVariants({railVariant:C,isActive:s,isDisabled:i}),z=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants(),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:zt(o)})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({isActive:s}),children:t}),o!=null&&o>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),q=r&&!i?jsxRuntime.jsx(reactAriaComponents.Link,{ref:B,href:r,"aria-current":s?n:void 0,"aria-haspopup":m?"dialog":void 0,"aria-expanded":m?f:void 0,className:G,"data-testid":k,onPress:L,children:z}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:B,isDisabled:i,"aria-current":s?n:void 0,"aria-haspopup":m?"dialog":void 0,"aria-expanded":m?f:void 0,className:G,"data-testid":k,onPress:L,children:z});return jsxRuntime.jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:q})});et.displayName="SidebarRailItem";var Me=react.memo(et,(e,t)=>e.id===t.id&&e.isActive===t.isActive&&e.badgeCount===t.badgeCount&&e.isDisabled===t.isDisabled&&e.label===t.label&&e.className===t.className&&e.href===t.href);Me.displayName="SidebarRailItem";function Ae({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=g(),o=Je();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:v(exports.sidebarCollapseButtonVariants({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsxRuntime.jsx(lucideReact.PanelLeftOpen,{}):jsxRuntime.jsx(lucideReact.PanelLeftClose,{})})}Ae.displayName="SidebarCollapseButton";var Kt=react.lazy(()=>Promise.resolve().then(()=>(nt(),ot)).then(e=>({default:e.SidebarMobileDrawer})));function Jt({children:e}){let{isMobile:t}=V(),{isMobileOpen:a}=g();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(Kt,{children:e})})}function it(e){return jsxRuntime.jsx(ye,{...e,children:jsxRuntime.jsxs($e,{children:[e.children,jsxRuntime.jsx(Jt,{children:e.children})]})})}it.displayName="Sidebar";var ea=Object.assign(it,{Rail:we,RailItem:Me,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Ae});I();var E=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var st=zod.z.enum(["default","primary"]),lt=zod.z.enum(["sm","md","lg","xl"]),dt=zod.z.enum(["page","true","location"]),ct=zod.z.enum(["h1","h2","h3","h4"]),aa=E.extend({children:zod.z.custom(),isCollapsed:zod.z.boolean().optional(),defaultCollapsed:zod.z.boolean().optional().default(false),onCollapsedChange:zod.z.custom().optional(),isMobileOpen:zod.z.boolean().optional(),onMobileOpenChange:zod.z.custom().optional(),mobileBreakpoint:zod.z.number().optional().default(768)}),ra=E.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:st.optional().default("default")}),oa=E.extend({id:zod.z.string(),label:zod.z.string(),icon:zod.z.custom(),href:zod.z.string().optional(),badgeCount:zod.z.number().optional(),isActive:zod.z.boolean().optional(),currentType:dt.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional()}),na=E.extend({children:zod.z.custom()}),ia=E.extend({children:zod.z.custom(),width:lt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),sa=E.extend({title:zod.z.string(),children:zod.z.custom().optional(),as:ct.optional().default("h2")}),la=E.extend({});exports.Sidebar=ea;exports.SidebarCollapseButtonPropsSchema=la;exports.SidebarCurrentTypeSchema=dt;exports.SidebarPanelHeaderLevelSchema=ct;exports.SidebarPanelHeaderPropsSchema=sa;exports.SidebarPanelPropsSchema=ia;exports.SidebarPanelWidthSchema=lt;exports.SidebarPopoverPropsSchema=na;exports.SidebarPropsSchema=aa;exports.SidebarRailItemPropsSchema=oa;exports.SidebarRailPropsSchema=ra;exports.SidebarRailVariantSchema=st;//# sourceMappingURL=index.js.map
|
|
2
|
+
'use strict';var react=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime'),reactAriaComponents=require('react-aria-components'),lucideReact=require('lucide-react'),zod=require('zod');var pt=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var ut=(e,t)=>{for(var a in t)pt(e,a,{get:t[a],enumerable:true});};function _e(e){let t=react.useCallback(o=>{let s=window.matchMedia(e);return s.addEventListener("change",o),()=>s.removeEventListener("change",o)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var He=O(()=>{"use client";});function g(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=O(()=>{});function ee(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var K,se,ie,U,J,le,De=O(()=>{K=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],se=["min-h-[44px]","min-w-[44px]"],ie={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${ie.sm} px-2 text-xs`,default:`${ie.default} px-3 text-sm`,lg:`${ie.lg} px-4 text-base`},U=["motion-reduce:transition-none","motion-reduce:animate-none"],J=["transition-colors","duration-150"],le=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;exports.sidebarRailItemBadgeVariants=void 0;exports.sidebarPopoverVariants=void 0;exports.sidebarPanelVariants=void 0;exports.sidebarPanelHeaderVariants=void 0;exports.sidebarPanelHeaderTitleVariants=void 0;exports.sidebarCollapseButtonVariants=void 0;exports.sidebarMobileOverlayVariants=void 0;exports.sidebarMobileDrawerVariants=void 0;exports.sidebarMobileDrawerHeaderVariants=void 0;exports.sidebarMobileRailVariants=void 0;exports.sidebarMobileRailItemVariants=void 0;var V=O(()=>{De();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[68px]","shrink-0","border-r","border-[var(--border)]","py-2","px-1.5","overflow-y-auto","overflow-x-hidden"],{variants:{variant:{default:"bg-[var(--menu-background)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col","gap-1"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(ee(K,U,J,["flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-0.5","px-1","py-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:"text-[var(--icon)]",primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},compoundVariants:[{railVariant:"default",isActive:true,className:"bg-[var(--menu-accent)] text-[var(--menu-foreground)]"},{railVariant:"default",isActive:false,className:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]"},{railVariant:"primary",isActive:true,className:"bg-white/20 text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"hover:bg-white/10 hover:text-[var(--primary-action-foreground)]"}],defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}}),exports.sidebarRailItemBadgeVariants=classVarianceAuthority.cva(["absolute","-top-1.5","-right-1.5","min-w-[18px]","h-[18px]","rounded-full","px-1","flex","items-center","justify-center","bg-[var(--destructive-background)]","text-[var(--destructive-foreground)]","text-[10px]","font-bold","leading-none"]),exports.sidebarPopoverVariants=classVarianceAuthority.cva(["h-full","w-full","overflow-y-auto","bg-[var(--content-background)]","text-[var(--content-foreground)]","text-sm","motion-safe:animate-in","motion-safe:fade-in-0","motion-safe:slide-in-from-bottom-1","motion-safe:duration-200","motion-safe:fill-mode-both","[animation-delay:120ms]"]),exports.sidebarPanelVariants=classVarianceAuthority.cva(["flex","flex-col","h-full","overflow-hidden","bg-[var(--content-background)]","text-[var(--content-foreground)]","motion-safe:transition-[max-width,opacity]","motion-safe:duration-[var(--transition-slow)]",...U],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[280px] w-[280px]",lg:"max-w-[340px] w-[340px]",xl:"max-w-[420px] w-[420px]"},isCollapsed:{true:"max-w-0 opacity-0 overflow-hidden",false:"opacity-100"}},defaultVariants:{width:"md",isCollapsed:false}}),exports.sidebarPanelHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","shrink-0","border-b","border-[var(--border)]"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(ee(se,K,U,J,["inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","[&_svg]:size-4","[&_svg]:shrink-0","cursor-pointer","mb-1"]),{variants:{railVariant:{default:["text-[var(--menu-foreground)]",...le],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),exports.sidebarMobileOverlayVariants=classVarianceAuthority.cva(["fixed","inset-0","z-50","bg-black/50"]),exports.sidebarMobileDrawerVariants=classVarianceAuthority.cva(["fixed","inset-y-0","left-0","z-50","flex","flex-col","w-[85vw]","max-w-[380px]","bg-[var(--content-background)]","shadow-[var(--shadow-lg)]"]),exports.sidebarMobileDrawerHeaderVariants=classVarianceAuthority.cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),exports.sidebarMobileRailVariants=classVarianceAuthority.cva(["flex","items-center","gap-1","px-2","py-2","overflow-x-auto","overflow-y-hidden","shrink-0","border-b","border-[var(--border)]","bg-[var(--menu-background)]"]),exports.sidebarMobileRailItemVariants=classVarianceAuthority.cva(ee(se,K,U,J,["flex","flex-col","items-center","justify-center","gap-0.5","px-2","py-1.5","rounded-[var(--radius-md)]","text-[var(--icon)]","shrink-0","cursor-pointer"]),{variants:{isActive:{true:["bg-[var(--menu-accent)]","text-[var(--menu-foreground)]"],false:[...le]}},defaultVariants:{isActive:false}});});function T(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function R(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function ye({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:o,onMobileOpenChange:s,mobileBreakpoint:n=768,className:c,"data-testid":i="sidebar"}){let[p,x]=react.useState(a),l=t!==void 0,u=l?t:p,S=react.useCallback(y=>{l||x(y),r?.(y);},[l,r]),P=react.useCallback(()=>S(!u),[S,u]),C=o??false,M=react.useCallback(y=>s?.(y),[s]),[b,f]=react.useState(null),v=react.useRef(null),D=react.useCallback(()=>{v.current&&(clearTimeout(v.current),v.current=null);},[]),A=react.useCallback((y=300)=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null,f(null);},y);},[]);react.useEffect(()=>()=>{v.current&&clearTimeout(v.current);},[]);let L=_e(`(max-width: ${n-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,G=`sidebar-panel-${B}`,z=react.useMemo(()=>({isMobile:L,railId:k,panelId:G}),[L,k,G]),q=react.useMemo(()=>({isCollapsed:u,setCollapsed:S,toggleCollapsed:P,isMobileOpen:C,setMobileOpen:M,activePopoverId:b,setActivePopoverId:f,cancelPopoverClose:D,schedulePopoverClose:A}),[u,S,P,C,M,b,D,A]);return L?jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:q,children:e})}):jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:q,children:jsxRuntime.jsx("div",{className:g(exports.sidebarRootVariants(),c),"data-testid":i,children:e})})})}var Re,Pe,H=O(()=>{"use client";He();_();V();Re=react.createContext(null),Pe=react.createContext(null);ye.displayName="Sidebar";});var ot={};ut(ot,{SidebarMobileDrawer:()=>Yt});function Xt(e){return e>99?"99+":String(e)}function Zt(e){let t=null;return react.Children.forEach(e.props.children,a=>{react.isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function Qt(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,o=>{if(!react.isValidElement(o))return;let s=o.type.displayName;s==="SidebarRail"?(r=o.props["aria-label"]??r,react.Children.forEach(o.props.children,n=>{if(!react.isValidElement(n))return;if(n.type.displayName==="SidebarRailItem"){let i=n;t.push({props:i.props,popover:Zt(i)});}})):s==="SidebarPanel"&&(a=o.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function Yt({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:o}=R(),{railItems:s,panelContent:n,railAriaLabel:c}=Qt(e),p=s.find(l=>l.props.id===r)?.popover??n,x=()=>{o(null),a(false);};return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:l=>{l||x();},className:exports.sidebarMobileOverlayVariants(),children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:exports.sidebarMobileDrawerVariants(),children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxRuntime.jsxs("header",{className:exports.sidebarMobileDrawerHeaderVariants(),children:[jsxRuntime.jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsxRuntime.jsx(reactAriaComponents.Button,{"aria-label":"Close navigation",className:g(exports.sidebarCollapseButtonVariants()),onPress:x,children:jsxRuntime.jsx(lucideReact.X,{})})]}),s.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:s.map(({props:l,popover:u})=>{let S=u!=null,P=r===l.id;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":l.isActive?l.currentType??"page":void 0,"aria-haspopup":S?"dialog":void 0,"aria-expanded":S?P:void 0,isDisabled:l.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:(l.isActive??false)||P}),onPress:()=>{if(l.onPress?.(),S){o(P?null:l.id);return}if(l.href){window.location.href=l.href,x();return}},"data-testid":`sidebar-mobile-rail-item-${l.id}`,children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants(),"aria-hidden":"true",children:[l.icon,l.badgeCount!=null&&l.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Xt(l.badgeCount)})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({isActive:(l.isActive??false)||P}),children:l.label}),l.badgeCount!=null&&l.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[l.badgeCount," notifications"]})]},l.id)})}),p&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:p})]})})})}var nt=O(()=>{"use client";_();H();V();});H();_();H();_();H();V();var St=200,Rt=300;function $e(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:s}=R(),n=react.useRef("IDLE"),c=react.useRef(null),i=react.useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),p=a===e;react.useEffect(()=>{!p&&n.current!=="IDLE"?(i(),n.current="IDLE"):p&&(n.current="OPEN");},[p,i]),react.useEffect(()=>i,[i]);let x=react.useCallback(u=>{t&&u.pointerType==="mouse"&&(i(),o(),n.current!=="OPEN"&&(n.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{n.current="OPEN",r(e);},St)));},[e,t,r,i,o]),l=react.useCallback(()=>{if(t){if(i(),n.current==="HOVERING_TRIGGER"){n.current="IDLE",r(null);return}n.current==="OPEN"&&s(Rt);}},[t,r,i,s]);return {onTriggerPointerEnter:x,onTriggerPointerLeave:l}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:g(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();V();function Nt(){let{activePopoverId:e,setActivePopoverId:t}=R(),{isMobile:a}=T(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let o=s=>{s.key==="Escape"&&(s.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),react.useEffect(()=>{if(!e)return;let o=n=>{let c=r.current,i=n.relatedTarget;if(!i||!c)return;let p=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(i)&&!p?.contains(i)&&t(null);},s=r.current;return s?.addEventListener("focusout",o),()=>s?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsxRuntime.jsx(Xe,{ref:r})}var We=react.createContext(null);function Ce(){let e=react.useContext(We);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function je({children:e}){let t=react.useRef(new Map),a=react.useCallback((n,c,i)=>{t.current.set(n,{content:c,label:i});},[]),r=react.useCallback(n=>{t.current.delete(n);},[]),o=react.useCallback(n=>t.current.get(n)??null,[]),s=react.useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsxRuntime.jsx(We.Provider,{value:s,children:e})}var Xe=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=R(),s=Ce();if(!a)return null;let n=s.getContent(a);return n?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${n.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:n.content}):null});Xe.displayName="PopoverContent";var Tt=300,wt={sm:220,md:280,lg:340,xl:420},Ve=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":s="sidebar-panel"},n)=>{let{isMobile:c}=T(),{isCollapsed:i,activePopoverId:p}=R(),x=react.useRef(null),l=p!==null,[u,S]=react.useState(!i);react.useEffect(()=>{if(i){S(false);return}let b=window.setTimeout(()=>S(true),Tt);return ()=>window.clearTimeout(b)},[i]);let C=r!==void 0&&!(!i&&u)?r:e;react.useEffect(()=>{if(!i)return;let b=x.current;if(b&&b.contains(document.activeElement)){let f=document.querySelector('[data-testid="sidebar-collapse-button"]');f&&window.requestAnimationFrame(()=>f.focus());}},[i]);let M=b=>{x.current=b,typeof n=="function"?n(b):n&&(n.current=b);};return c?null:jsxRuntime.jsxs("div",{className:"relative shrink-0 border-r border-[var(--border)]",children:[jsxRuntime.jsx("aside",{ref:M,"aria-label":a,"aria-hidden":i,inert:i||void 0,className:g(exports.sidebarPanelVariants({width:t,isCollapsed:i}),o),"data-testid":s,children:C}),l&&jsxRuntime.jsx("div",{className:g("absolute top-0 left-0 z-10 h-full",i&&"border-r border-[var(--border)]"),style:{width:`${wt[t]}px`},children:jsxRuntime.jsx(Nt,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,children:t,as:a="h2",className:r,"data-testid":o="sidebar-panel-header"}){return jsxRuntime.jsxs("header",{className:g(exports.sidebarPanelHeaderVariants(),r),"data-testid":o,children:[jsxRuntime.jsx(a,{className:exports.sidebarPanelHeaderTitleVariants(),children:e}),t]})}Te.displayName="SidebarPanelHeader";V();var et=react.createContext("default");function tt(){return react.useContext(et)}var we=react.forwardRef(({children:e,"aria-label":t,variant:a="default",className:r,"data-testid":o="sidebar-rail"},s)=>{let{isMobile:n}=T();if(n)return null;let c=[],i=[];return react.Children.forEach(e,p=>{react.isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"?c.push(p):i.push(p);}),jsxRuntime.jsx(et.Provider,{value:a,children:jsxRuntime.jsxs("nav",{ref:s,"aria-label":t,className:g(exports.sidebarRailVariants({variant:a}),r),"data-testid":o,children:[c,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:i})]})})});we.displayName="SidebarRail";function Gt(e){let t=null,a=[];return react.Children.forEach(e,r=>{react.isValidElement(r)&&r.type.displayName==="SidebarPopover"?t=r:a.push(r);}),{popover:t,rest:a.length>0?a:null}}function zt(e){return e>99?"99+":String(e)}var at=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:s=false,currentType:n="page",isDisabled:c=false,onPress:i,children:p,className:x,"data-testid":l},u)=>{let{activePopoverId:S,setActivePopoverId:P}=R(),C=tt(),M=react.useRef(null),{popover:b}=Gt(p),f=b!==null,v=S===e,D=$e(e,f),A=Ce();react.useEffect(()=>{if(f&&b)return A.register(e,b,t),()=>A.unregister(e)},[e,f,b,t,A]);let L=react.useCallback(()=>{f&&P(v?null:e),i?.();},[f,v,e,i,P]),B=react.useCallback(y=>{M.current=y,typeof u=="function"?u(y):u&&(u.current=y);},[u]),k=l??`sidebar-rail-item-${e}`,G=x?g(exports.sidebarRailItemVariants({railVariant:C,isActive:s,isDisabled:c}),x):exports.sidebarRailItemVariants({railVariant:C,isActive:s,isDisabled:c}),z=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants(),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:zt(o)})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({isActive:s}),children:t}),o!=null&&o>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),q=r&&!c?jsxRuntime.jsx(reactAriaComponents.Link,{ref:B,href:r,"aria-current":s?n:void 0,"aria-haspopup":f?"dialog":void 0,"aria-expanded":f?v:void 0,className:G,"data-testid":k,onPress:L,children:z}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:B,isDisabled:c,"aria-current":s?n:void 0,"aria-haspopup":f?"dialog":void 0,"aria-expanded":f?v:void 0,className:G,"data-testid":k,onPress:L,children:z});return jsxRuntime.jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:q})});at.displayName="SidebarRailItem";var Me=react.memo(at,(e,t)=>e.id===t.id&&e.isActive===t.isActive&&e.badgeCount===t.badgeCount&&e.isDisabled===t.isDisabled&&e.label===t.label&&e.className===t.className&&e.href===t.href);Me.displayName="SidebarRailItem";function Ae({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=R(),o=tt();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:g(exports.sidebarCollapseButtonVariants({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsxRuntime.jsx(lucideReact.PanelLeftOpen,{}):jsxRuntime.jsx(lucideReact.PanelLeftClose,{})})}Ae.displayName="SidebarCollapseButton";var Jt=react.lazy(()=>Promise.resolve().then(()=>(nt(),ot)).then(e=>({default:e.SidebarMobileDrawer})));function ea({children:e}){let{isMobile:t}=T(),{isMobileOpen:a}=R();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(Jt,{children:e})})}function it(e){return jsxRuntime.jsx(ye,{...e,children:jsxRuntime.jsxs(je,{children:[e.children,jsxRuntime.jsx(ea,{children:e.children})]})})}it.displayName="Sidebar";var ta=Object.assign(it,{Rail:we,RailItem:Me,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Ae});V();var I=zod.z.object({className:zod.z.string().optional(),children:zod.z.any().optional(),id:zod.z.string().optional(),"aria-label":zod.z.string().optional(),"aria-labelledby":zod.z.string().optional(),"aria-describedby":zod.z.string().optional(),"aria-live":zod.z.enum(["off","polite","assertive"]).optional(),"aria-hidden":zod.z.boolean().optional(),"data-testid":zod.z.string().optional()});var st=zod.z.enum(["default","primary"]),lt=zod.z.enum(["sm","md","lg","xl"]),dt=zod.z.enum(["page","true","location"]),ct=zod.z.enum(["h1","h2","h3","h4"]),ra=I.extend({children:zod.z.custom(),isCollapsed:zod.z.boolean().optional(),defaultCollapsed:zod.z.boolean().optional().default(false),onCollapsedChange:zod.z.custom().optional(),isMobileOpen:zod.z.boolean().optional(),onMobileOpenChange:zod.z.custom().optional(),mobileBreakpoint:zod.z.number().optional().default(768)}),oa=I.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:st.optional().default("default")}),na=I.extend({id:zod.z.string(),label:zod.z.string(),icon:zod.z.custom(),href:zod.z.string().optional(),badgeCount:zod.z.number().optional(),isActive:zod.z.boolean().optional(),currentType:dt.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional()}),ia=I.extend({children:zod.z.custom()}),sa=I.extend({children:zod.z.custom(),width:lt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),la=I.extend({title:zod.z.string(),children:zod.z.custom().optional(),as:ct.optional().default("h2")}),da=I.extend({});exports.Sidebar=ta;exports.SidebarCollapseButtonPropsSchema=da;exports.SidebarCurrentTypeSchema=dt;exports.SidebarPanelHeaderLevelSchema=ct;exports.SidebarPanelHeaderPropsSchema=la;exports.SidebarPanelPropsSchema=sa;exports.SidebarPanelWidthSchema=lt;exports.SidebarPopoverPropsSchema=ia;exports.SidebarPropsSchema=ra;exports.SidebarRailItemPropsSchema=na;exports.SidebarRailPropsSchema=oa;exports.SidebarRailVariantSchema=st;//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|