@tribepad/themis 1.10.0 → 1.10.1
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/CHANGELOG.md +5 -0
- package/dist/elements/Sidebar/Sidebar.styles.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 +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.10.1] - 2026-07-08
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **`Sidebar` rail spacing + active-notch regression from 1.9.5 reverted.** 1.9.5 switched the rail to uniform padding (`p-1`), inset each rail item horizontally (`px-1`), and nudged the active-item notch out (`-right-1`) to compensate for that inset — but the combination misaligned the rail: items no longer sat flush and the notch drifted off the rail's right-edge divider. Reverted to `pl-1` on the rail, no `px-1` inset on rail items, and `right-0` on the active-item notch so it lands on the divider again. Visual-only — no API changes.
|
|
12
|
+
|
|
8
13
|
## [1.10.0] - 2026-07-07
|
|
9
14
|
|
|
10
15
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/Sidebar/Sidebar.styles.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,mBAAmB,oFAI9B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;8EA6B/B,CAAC;AAIF,eAAO,MAAM,0BAA0B,oFAGrC,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;
|
|
1
|
+
{"version":3,"file":"Sidebar.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/Sidebar/Sidebar.styles.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,mBAAmB,oFAI9B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;8EA6B/B,CAAC;AAIF,eAAO,MAAM,0BAA0B,oFAGrC,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;8EA8CnC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;8EAmDvC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;8EA8BxC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,oFAevC,CAAC;AAEH,eAAO,MAAM,4BAA4B,oFAgBvC,CAAC;AAMH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,oFAYjC,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;8EA8BhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,oFAOrC,CAAC;AAEH,eAAO,MAAM,+BAA+B,oFAK1C,CAAC;AAMH,eAAO,MAAM,6BAA6B;;8EA+BzC,CAAC;AAMF,eAAO,MAAM,4BAA4B,oFAKvC,CAAC;AAEH,eAAO,MAAM,2BAA2B,oFAUtC,CAAC;AAEH,eAAO,MAAM,iCAAiC,oFAS5C,CAAC;AAEH,eAAO,MAAM,yBAAyB,oFAYpC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;8EAoCzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,oFAK5C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;8EAmB9C,CAAC"}
|
|
@@ -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 vt=Object.defineProperty;var M=(e,t)=>()=>(e&&(t=e(e=0)),t);var xt=(e,t)=>{for(var a in t)vt(e,a,{get:t[a],enumerable:true});};function De(e){let t=react.useCallback(n=>{let o=window.matchMedia(e);return o.addEventListener("change",n),()=>o.removeEventListener("change",n)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var He=M(()=>{"use client";});function v(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=M(()=>{});function W(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var J,le,se,F,$,Be=M(()=>{J=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],le=["min-h-[44px]","min-w-[44px]"],se={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${se.sm} px-2 text-xs`,default:`${se.default} px-3 text-sm`,lg:`${se.lg} px-4 text-base`},F=["motion-reduce:transition-none","motion-reduce:animate-none"],$=["transition-colors","duration-150"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;var ke;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 Ge,ze,L=M(()=>{Be();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full","group/sidebar"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[80px]","shrink-0","p-1","relative","z-10"],{variants:{variant:{default:"bg-[var(--menu-background)] border-r border-[var(--border)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(W(J,F,$,["group/railitem","flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-1","py-1","px-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(W($,["relative","flex","items-center","justify-center","shrink-0","size-[30px]","rounded-[9px]","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)] group-data-[hovered]/railitem:bg-[var(--primary-action)]/10"},{railVariant:"default",isActive:true,className:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"text-[var(--primary-action-foreground)] group-data-[hovered]/railitem:bg-white/10"},{railVariant:"primary",isActive:true,className:"bg-[var(--primary-action-foreground)] text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[11px]","font-normal","leading-tight","tracking-[0.165px]","text-center","max-w-full","truncate"],{variants:{railVariant:{default:[],primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)]"},{railVariant:"default",isActive:true,className:"text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),ke=classVarianceAuthority.cva(["absolute","-right-1","top-1/2","z-10","size-[14px]","-translate-y-1/2","translate-x-1/2","rotate-45","bg-[var(--content-background)]","border-b","border-l","border-[var(--border)]","hidden","group-has-[[data-sidebar-panel]]/sidebar:block"]),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"]),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)]",...F],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[260px] w-[260px]",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"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(W(le,J,F,$,["group/railitem","inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","cursor-pointer","mb-1"]),{variants:{railVariant:{default:[],primary:[]}},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)]"]),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(W(le,J,F,$,["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(--primary-action)]","text-[var(--primary-action-foreground)]"],false:["data-[hovered]:bg-[var(--primary-action)]/10"]}},defaultVariants:{isActive:false}}),Ge=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),ze=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}});});function w(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function S(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function he({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:n,onMobileOpenChange:o,mobileBreakpoint:i=768,className:c,"data-testid":l="sidebar"}){let[f,g]=react.useState(a),s=t!==void 0,m=s?t:f,u=react.useCallback(C=>{s||g(C),r?.(C);},[s,r]),P=react.useCallback(()=>u(!m),[u,m]),I=n??false,O=react.useCallback(C=>o?.(C),[o]),[x,h]=react.useState(null),b=react.useRef(null),V=react.useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null);},[]),H=react.useCallback((C=300)=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,h(null);},C);},[]);react.useEffect(()=>()=>{b.current&&clearTimeout(b.current);},[]);let A=De(`(max-width: ${i-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,G=`sidebar-panel-${B}`,z=react.useMemo(()=>({isMobile:A,railId:k,panelId:G}),[A,k,G]),U=react.useMemo(()=>({isCollapsed:m,setCollapsed:u,toggleCollapsed:P,isMobileOpen:I,setMobileOpen:O,activePopoverId:x,setActivePopoverId:h,cancelPopoverClose:V,schedulePopoverClose:H}),[m,u,P,I,O,x,V,H]);return A?jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:e})}):jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:jsxRuntime.jsx("div",{className:v(exports.sidebarRootVariants(),c),"data-testid":l,children:e})})})}var Re,Pe,D=M(()=>{"use client";He();_();L();Re=react.createContext(null),Pe=react.createContext(null);he.displayName="Sidebar";});function Qt(e){if(!(e instanceof Element))return false;let t=e;for(let n=0;t&&n<100;n++){let o=t.tagName?.toLowerCase()??"";if(o.startsWith("grammarly-")||o.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let i=t.getRootNode();t=i instanceof ShadowRoot?i.host:null;}}let a=e;for(;a&&!a.tagName.includes("-");)a=a.parentElement;if(!a)return false;let r=a.parentElement;return r===document.body||r===document.documentElement}function st(e){return t=>!Qt(t)&&(e?.(t)??true)}var lt=M(()=>{});var ct={};xt(ct,{SidebarMobileDrawer:()=>ra});function ea(e){return e>99?"99+":String(e)}function ta(e){let t=null;return react.Children.forEach(e.props.children,a=>{react.isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function aa(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,n=>{if(!react.isValidElement(n))return;let o=n.type.displayName;o==="SidebarRail"?(r=n.props["aria-label"]??r,react.Children.forEach(n.props.children,i=>{if(!react.isValidElement(i))return;if(i.type.displayName==="SidebarRailItem"){let l=i;t.push({props:l.props,popover:ta(l)});}})):o==="SidebarPanel"&&(a=n.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function ra({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:n}=S(),{railItems:o,panelContent:i,railAriaLabel:c}=aa(e),f=o.find(s=>s.props.id===r)?.popover??i,g=()=>{n(null),a(false);};return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,shouldCloseOnInteractOutside:st(),isOpen:t,onOpenChange:s=>{s||g();},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:g,children:jsxRuntime.jsx(lucideReact.X,{})})]}),o.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:o.map(({props:s,popover:m})=>{let u=m!=null,P=r===s.id;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":s.isActive?s.currentType??"page":void 0,"aria-haspopup":u?"dialog":void 0,"aria-expanded":u?P:void 0,isDisabled:s.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:(s.isActive??false)||P}),onPress:()=>{if(s.onPress?.(),u){n(P?null:s.id);return}if(s.href){window.location.href=s.href,g();return}},"data-testid":`sidebar-mobile-rail-item-${s.id}`,children:[jsxRuntime.jsxs("span",{className:Ge(),"aria-hidden":"true",children:[s.icon,s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:ea(s.badgeCount)})]}),jsxRuntime.jsx("span",{className:ze({isActive:(s.isActive??false)||P}),children:s.label}),s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[s.badgeCount," notifications"]})]},s.id)})}),f&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:f})]})})})}var ut=M(()=>{"use client";_();lt();D();L();});D();_();D();_();D();L();var Nt=200,Et=300;function Ze(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:n,schedulePopoverClose:o}=S(),i=react.useRef("IDLE"),c=react.useRef(null),l=react.useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),f=a===e;react.useEffect(()=>{!f&&i.current!=="IDLE"?(l(),i.current="IDLE"):f&&(i.current="OPEN");},[f,l]),react.useEffect(()=>l,[l]);let g=react.useCallback(m=>{t&&m.pointerType==="mouse"&&(l(),n(),i.current!=="OPEN"&&(i.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{i.current="OPEN",r(e);},Nt)));},[e,t,r,l,n]),s=react.useCallback(()=>{if(t){if(l(),i.current==="HOVERING_TRIGGER"){i.current="IDLE",r(null);return}i.current==="OPEN"&&o(Et);}},[t,r,l,o]);return {onTriggerPointerEnter:g,onTriggerPointerLeave:s}}function Ie({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:v(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ie.displayName="SidebarPopover";_();D();L();function At(){let{activePopoverId:e,setActivePopoverId:t}=S(),{isMobile:a}=w(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let n=o=>{o.key==="Escape"&&(o.preventDefault(),t(null));};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),react.useEffect(()=>{if(!e)return;let n=i=>{let c=r.current,l=i.relatedTarget;if(!l||!c)return;let f=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(l)&&!f?.contains(l)&&t(null);},o=r.current;return o?.addEventListener("focusout",n),()=>o?.removeEventListener("focusout",n)},[e,t]),a||!e?null:jsxRuntime.jsx(qe,{ref:r})}var Qe=react.createContext(null);function Ce(){let e=react.useContext(Qe);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function Ye({children:e}){let t=react.useRef(new Map),a=react.useCallback((i,c,l)=>{t.current.set(i,{content:c,label:l});},[]),r=react.useCallback(i=>{t.current.delete(i);},[]),n=react.useCallback(i=>t.current.get(i)??null,[]),o=react.useMemo(()=>({register:a,unregister:r,getContent:n}),[a,r,n]);return jsxRuntime.jsx(Qe.Provider,{value:o,children:e})}var qe=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:n}=S(),o=Ce();if(!a)return null;let i=o.getContent(a);return i?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${i.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>n(300),children:i.content}):null});qe.displayName="PopoverContent";var _t=300,Dt={sm:220,md:260,lg:340,xl:420},Te=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:n,"data-testid":o="sidebar-panel"},i)=>{let{isMobile:c}=w(),{isCollapsed:l,activePopoverId:f}=S(),g=react.useRef(null),s=f!==null,[m,u]=react.useState(!l);react.useEffect(()=>{if(l){u(false);return}let x=window.setTimeout(()=>u(true),_t);return ()=>window.clearTimeout(x)},[l]);let I=r!==void 0&&!(!l&&m)?r:e;react.useEffect(()=>{if(!l)return;let x=g.current;if(x&&x.contains(document.activeElement)){let h=document.querySelector('[data-testid="sidebar-collapse-button"]');h&&window.requestAnimationFrame(()=>h.focus());}},[l]);let O=x=>{g.current=x,typeof i=="function"?i(x):i&&(i.current=x);};return c?null:jsxRuntime.jsxs("div",{className:v("relative shrink-0",!l&&"border-r border-[var(--border)]"),"data-sidebar-panel":"",children:[jsxRuntime.jsx("aside",{ref:O,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:v(exports.sidebarPanelVariants({width:t,isCollapsed:l}),n),"data-testid":o,children:I}),s&&jsxRuntime.jsx("div",{className:v("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${Dt[t]}px`},children:jsxRuntime.jsx(At,{})})]})});Te.displayName="SidebarPanel";function Ve({title:e,icon:t,children:a,as:r="h2",className:n,"data-testid":o="sidebar-panel-header"}){return jsxRuntime.jsx("header",{className:v(exports.sidebarPanelHeaderVariants(),n),"data-testid":o,children:a??jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsxRuntime.jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${o}-icon`,children:t}):null,jsxRuntime.jsx(r,{className:exports.sidebarPanelHeaderTitleVariants(),children:e})]})})}Ve.displayName="SidebarPanelHeader";L();var nt=react.createContext({variant:"default",showActiveIndicator:true});function ot(){return react.useContext(nt)}var Me=react.forwardRef(({children:e,"aria-label":t,variant:a="default",showActiveIndicator:r=true,className:n,"data-testid":o="sidebar-rail"},i)=>{let{isMobile:c}=w(),l=react.useMemo(()=>({variant:a,showActiveIndicator:r}),[a,r]);if(c)return null;let f=[],g=[],s=[];react.Children.forEach(e,u=>{if(react.isValidElement(u)&&u.type.displayName==="SidebarCollapseButton"){f.push(u);return}(react.isValidElement(u)?u.props.placement??"top":"top")==="bottom"?s.push(u):g.push(u);});let m=f.length>0;return jsxRuntime.jsx(nt.Provider,{value:l,children:jsxRuntime.jsxs("nav",{ref:i,"aria-label":t,className:v(exports.sidebarRailVariants({variant:a}),"pb-2",!m&&"pt-2",n),"data-testid":o,children:[f,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:g}),s.length>0&&jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:v(exports.sidebarRailToolbarVariants(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:s})]})})});Me.displayName="SidebarRail";function jt(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 Xt(e){return e>99?"99+":String(e)}var it=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:n,isActive:o=false,currentType:i="page",isDisabled:c=false,onPress:l,children:f,className:g,"data-testid":s},m)=>{let{activePopoverId:u,setActivePopoverId:P}=S(),{variant:I,showActiveIndicator:O}=ot(),x=react.useRef(null),{popover:h}=jt(f),b=h!==null,V=u===e,H=Ze(e,b),A=Ce();react.useEffect(()=>{if(b&&h)return A.register(e,h,t),()=>A.unregister(e)},[e,b,h,t,A]);let B=react.useCallback(()=>{b&&P(V?null:e),l?.();},[b,V,e,l,P]),k=react.useCallback(oe=>{x.current=oe,typeof m=="function"?m(oe):m&&(m.current=oe);},[m]),G=s??`sidebar-rail-item-${e}`,z=g?v(exports.sidebarRailItemVariants({railVariant:I,isActive:o,isDisabled:c}),g):exports.sidebarRailItemVariants({railVariant:I,isActive:o,isDisabled:c}),U=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"relative flex w-full items-center justify-center",children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants({railVariant:I,isActive:o}),"aria-hidden":"true",children:[a,n!=null&&n>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Xt(n)})]}),O&&o&&jsxRuntime.jsx("span",{className:ke(),"aria-hidden":"true"})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({railVariant:I,isActive:o}),children:t}),n!=null&&n>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[n," notifications"]})]}),C=r&&!c?jsxRuntime.jsx(reactAriaComponents.Link,{ref:k,href:r,"aria-current":o?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?V:void 0,className:z,"data-testid":G,onPress:B,children:U}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:k,isDisabled:c,"aria-current":o?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?V:void 0,className:z,"data-testid":G,onPress:B,children:U});return jsxRuntime.jsx("div",{onPointerEnter:H.onTriggerPointerEnter,onPointerLeave:H.onTriggerPointerLeave,children:C})});it.displayName="SidebarRailItem";var Le=react.memo(it,(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);Le.displayName="SidebarRailItem";function we({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=S(),{variant:n}=ot();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:v(exports.sidebarCollapseButtonVariants({railVariant:n}),e),"data-testid":t,onPress:r,children:jsxRuntime.jsx("span",{className:exports.sidebarRailItemIconVariants({railVariant:n,isActive:false}),"aria-hidden":"true",children:a?jsxRuntime.jsx(lucideReact.ChevronsRight,{}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{})})})}we.displayName="SidebarCollapseButton";var ia=react.lazy(()=>Promise.resolve().then(()=>(ut(),ct)).then(e=>({default:e.SidebarMobileDrawer})));function sa({children:e}){let{isMobile:t}=w(),{isMobileOpen:a}=S();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(ia,{children:e})})}function pt(e){return jsxRuntime.jsx(he,{...e,children:jsxRuntime.jsxs(Ye,{children:[e.children,jsxRuntime.jsx(sa,{children:e.children})]})})}pt.displayName="Sidebar";var la=Object.assign(pt,{Rail:Me,RailItem:Le,Popover:Ie,Panel:Te,PanelHeader:Ve,CollapseButton:we});L();var T=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 mt=zod.z.enum(["default","primary"]),bt=zod.z.enum(["sm","md","lg","xl"]),ft=zod.z.enum(["page","true","location"]),gt=zod.z.enum(["h1","h2","h3","h4"]),ca=zod.z.enum(["top","bottom"]),ua=T.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)}),pa=T.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:mt.optional().default("default"),showActiveIndicator:zod.z.boolean().optional().default(true)}),ma=T.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:ft.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional(),placement:ca.optional().default("top")}),ba=T.extend({children:zod.z.custom()}),fa=T.extend({children:zod.z.custom(),width:bt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),ga=T.extend({title:zod.z.string().optional(),icon:zod.z.custom().optional(),children:zod.z.custom().optional(),as:gt.optional().default("h2")}),va=T.extend({});exports.Sidebar=la;exports.SidebarCollapseButtonPropsSchema=va;exports.SidebarCurrentTypeSchema=ft;exports.SidebarPanelHeaderLevelSchema=gt;exports.SidebarPanelHeaderPropsSchema=ga;exports.SidebarPanelPropsSchema=fa;exports.SidebarPanelWidthSchema=bt;exports.SidebarPopoverPropsSchema=ba;exports.SidebarPropsSchema=ua;exports.SidebarRailItemPropsSchema=ma;exports.SidebarRailPropsSchema=pa;exports.SidebarRailVariantSchema=mt;//# 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 vt=Object.defineProperty;var M=(e,t)=>()=>(e&&(t=e(e=0)),t);var xt=(e,t)=>{for(var a in t)vt(e,a,{get:t[a],enumerable:true});};function De(e){let t=react.useCallback(n=>{let o=window.matchMedia(e);return o.addEventListener("change",n),()=>o.removeEventListener("change",n)},[e]),a=react.useCallback(()=>window.matchMedia(e).matches,[e]),r=react.useCallback(()=>false,[]);return react.useSyncExternalStore(t,a,r)}var He=M(()=>{"use client";});function v(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var _=M(()=>{});function W(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var J,le,se,F,$,Be=M(()=>{J=["focus-visible:outline-none","focus-visible:ring-2","focus-visible:ring-[var(--ring)]","focus-visible:ring-offset-2"],le=["min-h-[44px]","min-w-[44px]"],se={sm:"h-9",default:"h-10",lg:"h-11"},{sm:`${se.sm} px-2 text-xs`,default:`${se.default} px-3 text-sm`,lg:`${se.lg} px-4 text-base`},F=["motion-reduce:transition-none","motion-reduce:animate-none"],$=["transition-colors","duration-150"];});exports.sidebarRootVariants=void 0;exports.sidebarRailVariants=void 0;exports.sidebarRailToolbarVariants=void 0;exports.sidebarRailItemVariants=void 0;exports.sidebarRailItemIconVariants=void 0;exports.sidebarRailItemLabelVariants=void 0;var ke;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 Ge,ze,L=M(()=>{Be();exports.sidebarRootVariants=classVarianceAuthority.cva(["flex","h-full","group/sidebar"]),exports.sidebarRailVariants=classVarianceAuthority.cva(["flex","flex-col","w-[80px]","shrink-0","pl-1","relative","z-10"],{variants:{variant:{default:"bg-[var(--menu-background)] border-r border-[var(--border)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),exports.sidebarRailToolbarVariants=classVarianceAuthority.cva(["flex","flex-col"]),exports.sidebarRailItemVariants=classVarianceAuthority.cva(W(J,F,$,["group/railitem","flex","flex-col","items-center","justify-center","w-full","min-h-[44px]","gap-1","py-1","rounded-[var(--radius-md)]","cursor-pointer","relative","select-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]},isDisabled:{true:["pointer-events-none","opacity-50","cursor-not-allowed"],false:[]}},defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),exports.sidebarRailItemIconVariants=classVarianceAuthority.cva(W($,["relative","flex","items-center","justify-center","shrink-0","size-[30px]","rounded-[9px]","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),{variants:{railVariant:{default:[],primary:[]},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)] group-data-[hovered]/railitem:bg-[var(--primary-action)]/10"},{railVariant:"default",isActive:true,className:"bg-[var(--primary-action)] text-[var(--primary-action-foreground)]"},{railVariant:"primary",isActive:false,className:"text-[var(--primary-action-foreground)] group-data-[hovered]/railitem:bg-white/10"},{railVariant:"primary",isActive:true,className:"bg-[var(--primary-action-foreground)] text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),exports.sidebarRailItemLabelVariants=classVarianceAuthority.cva(["text-[11px]","font-normal","leading-tight","tracking-[0.165px]","text-center","max-w-full","truncate"],{variants:{railVariant:{default:[],primary:"text-[var(--primary-action-foreground)]"},isActive:{true:[],false:[]}},compoundVariants:[{railVariant:"default",isActive:false,className:"text-[var(--content-foreground)]"},{railVariant:"default",isActive:true,className:"text-[var(--primary-action)]"}],defaultVariants:{railVariant:"default",isActive:false}}),ke=classVarianceAuthority.cva(["absolute","right-0","top-1/2","z-10","size-[14px]","-translate-y-1/2","translate-x-1/2","rotate-45","bg-[var(--content-background)]","border-b","border-l","border-[var(--border)]","hidden","group-has-[[data-sidebar-panel]]/sidebar:block"]),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"]),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)]",...F],{variants:{width:{sm:"max-w-[220px] w-[220px]",md:"max-w-[260px] w-[260px]",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"]),exports.sidebarPanelHeaderTitleVariants=classVarianceAuthority.cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),exports.sidebarCollapseButtonVariants=classVarianceAuthority.cva(W(le,J,F,$,["group/railitem","inline-flex","items-center","justify-center","rounded-[var(--radius-md)]","cursor-pointer","mb-1"]),{variants:{railVariant:{default:[],primary:[]}},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)]"]),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(W(le,J,F,$,["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(--primary-action)]","text-[var(--primary-action-foreground)]"],false:["data-[hovered]:bg-[var(--primary-action)]/10"]}},defaultVariants:{isActive:false}}),Ge=classVarianceAuthority.cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),ze=classVarianceAuthority.cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}});});function w(){let e=react.useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function S(){let e=react.useContext(Pe);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function he({children:e,isCollapsed:t,defaultCollapsed:a=false,onCollapsedChange:r,isMobileOpen:n,onMobileOpenChange:o,mobileBreakpoint:i=768,className:c,"data-testid":l="sidebar"}){let[f,g]=react.useState(a),s=t!==void 0,m=s?t:f,u=react.useCallback(C=>{s||g(C),r?.(C);},[s,r]),P=react.useCallback(()=>u(!m),[u,m]),I=n??false,O=react.useCallback(C=>o?.(C),[o]),[x,h]=react.useState(null),b=react.useRef(null),V=react.useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null);},[]),H=react.useCallback((C=300)=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,h(null);},C);},[]);react.useEffect(()=>()=>{b.current&&clearTimeout(b.current);},[]);let A=De(`(max-width: ${i-1}px)`),B=react.useId(),k=`sidebar-rail-${B}`,G=`sidebar-panel-${B}`,z=react.useMemo(()=>({isMobile:A,railId:k,panelId:G}),[A,k,G]),U=react.useMemo(()=>({isCollapsed:m,setCollapsed:u,toggleCollapsed:P,isMobileOpen:I,setMobileOpen:O,activePopoverId:x,setActivePopoverId:h,cancelPopoverClose:V,schedulePopoverClose:H}),[m,u,P,I,O,x,V,H]);return A?jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:e})}):jsxRuntime.jsx(Re.Provider,{value:z,children:jsxRuntime.jsx(Pe.Provider,{value:U,children:jsxRuntime.jsx("div",{className:v(exports.sidebarRootVariants(),c),"data-testid":l,children:e})})})}var Re,Pe,D=M(()=>{"use client";He();_();L();Re=react.createContext(null),Pe=react.createContext(null);he.displayName="Sidebar";});function Qt(e){if(!(e instanceof Element))return false;let t=e;for(let n=0;t&&n<100;n++){let o=t.tagName?.toLowerCase()??"";if(o.startsWith("grammarly-")||o.startsWith("lt-")||t.hasAttribute("data-grammarly-shadow-root"))return true;if(t.parentElement)t=t.parentElement;else {let i=t.getRootNode();t=i instanceof ShadowRoot?i.host:null;}}let a=e;for(;a&&!a.tagName.includes("-");)a=a.parentElement;if(!a)return false;let r=a.parentElement;return r===document.body||r===document.documentElement}function st(e){return t=>!Qt(t)&&(e?.(t)??true)}var lt=M(()=>{});var ct={};xt(ct,{SidebarMobileDrawer:()=>ra});function ea(e){return e>99?"99+":String(e)}function ta(e){let t=null;return react.Children.forEach(e.props.children,a=>{react.isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function aa(e){let t=[],a=null,r="Navigation";return react.Children.forEach(e,n=>{if(!react.isValidElement(n))return;let o=n.type.displayName;o==="SidebarRail"?(r=n.props["aria-label"]??r,react.Children.forEach(n.props.children,i=>{if(!react.isValidElement(i))return;if(i.type.displayName==="SidebarRailItem"){let l=i;t.push({props:l.props,popover:ta(l)});}})):o==="SidebarPanel"&&(a=n.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function ra({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:n}=S(),{railItems:o,panelContent:i,railAriaLabel:c}=aa(e),f=o.find(s=>s.props.id===r)?.popover??i,g=()=>{n(null),a(false);};return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{isDismissable:true,shouldCloseOnInteractOutside:st(),isOpen:t,onOpenChange:s=>{s||g();},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:g,children:jsxRuntime.jsx(lucideReact.X,{})})]}),o.length>0&&jsxRuntime.jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:exports.sidebarMobileRailVariants(),children:o.map(({props:s,popover:m})=>{let u=m!=null,P=r===s.id;return jsxRuntime.jsxs(reactAriaComponents.Button,{"aria-current":s.isActive?s.currentType??"page":void 0,"aria-haspopup":u?"dialog":void 0,"aria-expanded":u?P:void 0,isDisabled:s.isDisabled,className:exports.sidebarMobileRailItemVariants({isActive:(s.isActive??false)||P}),onPress:()=>{if(s.onPress?.(),u){n(P?null:s.id);return}if(s.href){window.location.href=s.href,g();return}},"data-testid":`sidebar-mobile-rail-item-${s.id}`,children:[jsxRuntime.jsxs("span",{className:Ge(),"aria-hidden":"true",children:[s.icon,s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:ea(s.badgeCount)})]}),jsxRuntime.jsx("span",{className:ze({isActive:(s.isActive??false)||P}),children:s.label}),s.badgeCount!=null&&s.badgeCount>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[s.badgeCount," notifications"]})]},s.id)})}),f&&jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:f})]})})})}var ut=M(()=>{"use client";_();lt();D();L();});D();_();D();_();D();L();var Nt=200,Et=300;function Ze(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:n,schedulePopoverClose:o}=S(),i=react.useRef("IDLE"),c=react.useRef(null),l=react.useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),f=a===e;react.useEffect(()=>{!f&&i.current!=="IDLE"?(l(),i.current="IDLE"):f&&(i.current="OPEN");},[f,l]),react.useEffect(()=>l,[l]);let g=react.useCallback(m=>{t&&m.pointerType==="mouse"&&(l(),n(),i.current!=="OPEN"&&(i.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{i.current="OPEN",r(e);},Nt)));},[e,t,r,l,n]),s=react.useCallback(()=>{if(t){if(l(),i.current==="HOVERING_TRIGGER"){i.current="IDLE",r(null);return}i.current==="OPEN"&&o(Et);}},[t,r,l,o]);return {onTriggerPointerEnter:g,onTriggerPointerLeave:s}}function Ie({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsxRuntime.jsx("div",{className:v(exports.sidebarPopoverVariants(),t),"data-testid":a,children:e})}Ie.displayName="SidebarPopover";_();D();L();function At(){let{activePopoverId:e,setActivePopoverId:t}=S(),{isMobile:a}=w(),r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let n=o=>{o.key==="Escape"&&(o.preventDefault(),t(null));};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),react.useEffect(()=>{if(!e)return;let n=i=>{let c=r.current,l=i.relatedTarget;if(!l||!c)return;let f=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(l)&&!f?.contains(l)&&t(null);},o=r.current;return o?.addEventListener("focusout",n),()=>o?.removeEventListener("focusout",n)},[e,t]),a||!e?null:jsxRuntime.jsx(qe,{ref:r})}var Qe=react.createContext(null);function Ce(){let e=react.useContext(Qe);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function Ye({children:e}){let t=react.useRef(new Map),a=react.useCallback((i,c,l)=>{t.current.set(i,{content:c,label:l});},[]),r=react.useCallback(i=>{t.current.delete(i);},[]),n=react.useCallback(i=>t.current.get(i)??null,[]),o=react.useMemo(()=>({register:a,unregister:r,getContent:n}),[a,r,n]);return jsxRuntime.jsx(Qe.Provider,{value:o,children:e})}var qe=react.forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:n}=S(),o=Ce();if(!a)return null;let i=o.getContent(a);return i?jsxRuntime.jsx("div",{ref:t,role:"dialog","aria-label":`${i.label} details`,className:exports.sidebarPopoverVariants(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>n(300),children:i.content}):null});qe.displayName="PopoverContent";var _t=300,Dt={sm:220,md:260,lg:340,xl:420},Te=react.forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:n,"data-testid":o="sidebar-panel"},i)=>{let{isMobile:c}=w(),{isCollapsed:l,activePopoverId:f}=S(),g=react.useRef(null),s=f!==null,[m,u]=react.useState(!l);react.useEffect(()=>{if(l){u(false);return}let x=window.setTimeout(()=>u(true),_t);return ()=>window.clearTimeout(x)},[l]);let I=r!==void 0&&!(!l&&m)?r:e;react.useEffect(()=>{if(!l)return;let x=g.current;if(x&&x.contains(document.activeElement)){let h=document.querySelector('[data-testid="sidebar-collapse-button"]');h&&window.requestAnimationFrame(()=>h.focus());}},[l]);let O=x=>{g.current=x,typeof i=="function"?i(x):i&&(i.current=x);};return c?null:jsxRuntime.jsxs("div",{className:v("relative shrink-0",!l&&"border-r border-[var(--border)]"),"data-sidebar-panel":"",children:[jsxRuntime.jsx("aside",{ref:O,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:v(exports.sidebarPanelVariants({width:t,isCollapsed:l}),n),"data-testid":o,children:I}),s&&jsxRuntime.jsx("div",{className:v("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${Dt[t]}px`},children:jsxRuntime.jsx(At,{})})]})});Te.displayName="SidebarPanel";function Ve({title:e,icon:t,children:a,as:r="h2",className:n,"data-testid":o="sidebar-panel-header"}){return jsxRuntime.jsx("header",{className:v(exports.sidebarPanelHeaderVariants(),n),"data-testid":o,children:a??jsxRuntime.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsxRuntime.jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${o}-icon`,children:t}):null,jsxRuntime.jsx(r,{className:exports.sidebarPanelHeaderTitleVariants(),children:e})]})})}Ve.displayName="SidebarPanelHeader";L();var nt=react.createContext({variant:"default",showActiveIndicator:true});function ot(){return react.useContext(nt)}var Me=react.forwardRef(({children:e,"aria-label":t,variant:a="default",showActiveIndicator:r=true,className:n,"data-testid":o="sidebar-rail"},i)=>{let{isMobile:c}=w(),l=react.useMemo(()=>({variant:a,showActiveIndicator:r}),[a,r]);if(c)return null;let f=[],g=[],s=[];react.Children.forEach(e,u=>{if(react.isValidElement(u)&&u.type.displayName==="SidebarCollapseButton"){f.push(u);return}(react.isValidElement(u)?u.props.placement??"top":"top")==="bottom"?s.push(u):g.push(u);});let m=f.length>0;return jsxRuntime.jsx(nt.Provider,{value:l,children:jsxRuntime.jsxs("nav",{ref:i,"aria-label":t,className:v(exports.sidebarRailVariants({variant:a}),"pb-2",!m&&"pt-2",n),"data-testid":o,children:[f,jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:exports.sidebarRailToolbarVariants(),children:g}),s.length>0&&jsxRuntime.jsx(reactAriaComponents.Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:v(exports.sidebarRailToolbarVariants(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:s})]})})});Me.displayName="SidebarRail";function jt(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 Xt(e){return e>99?"99+":String(e)}var it=react.forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:n,isActive:o=false,currentType:i="page",isDisabled:c=false,onPress:l,children:f,className:g,"data-testid":s},m)=>{let{activePopoverId:u,setActivePopoverId:P}=S(),{variant:I,showActiveIndicator:O}=ot(),x=react.useRef(null),{popover:h}=jt(f),b=h!==null,V=u===e,H=Ze(e,b),A=Ce();react.useEffect(()=>{if(b&&h)return A.register(e,h,t),()=>A.unregister(e)},[e,b,h,t,A]);let B=react.useCallback(()=>{b&&P(V?null:e),l?.();},[b,V,e,l,P]),k=react.useCallback(oe=>{x.current=oe,typeof m=="function"?m(oe):m&&(m.current=oe);},[m]),G=s??`sidebar-rail-item-${e}`,z=g?v(exports.sidebarRailItemVariants({railVariant:I,isActive:o,isDisabled:c}),g):exports.sidebarRailItemVariants({railVariant:I,isActive:o,isDisabled:c}),U=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("span",{className:"relative flex w-full items-center justify-center",children:[jsxRuntime.jsxs("span",{className:exports.sidebarRailItemIconVariants({railVariant:I,isActive:o}),"aria-hidden":"true",children:[a,n!=null&&n>0&&jsxRuntime.jsx("span",{className:exports.sidebarRailItemBadgeVariants(),"aria-hidden":"true",children:Xt(n)})]}),O&&o&&jsxRuntime.jsx("span",{className:ke(),"aria-hidden":"true"})]}),jsxRuntime.jsx("span",{className:exports.sidebarRailItemLabelVariants({railVariant:I,isActive:o}),children:t}),n!=null&&n>0&&jsxRuntime.jsxs("span",{className:"sr-only",children:[n," notifications"]})]}),C=r&&!c?jsxRuntime.jsx(reactAriaComponents.Link,{ref:k,href:r,"aria-current":o?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?V:void 0,className:z,"data-testid":G,onPress:B,children:U}):jsxRuntime.jsx(reactAriaComponents.Button,{ref:k,isDisabled:c,"aria-current":o?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?V:void 0,className:z,"data-testid":G,onPress:B,children:U});return jsxRuntime.jsx("div",{onPointerEnter:H.onTriggerPointerEnter,onPointerLeave:H.onTriggerPointerLeave,children:C})});it.displayName="SidebarRailItem";var Le=react.memo(it,(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);Le.displayName="SidebarRailItem";function we({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=S(),{variant:n}=ot();return jsxRuntime.jsx(reactAriaComponents.Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:v(exports.sidebarCollapseButtonVariants({railVariant:n}),e),"data-testid":t,onPress:r,children:jsxRuntime.jsx("span",{className:exports.sidebarRailItemIconVariants({railVariant:n,isActive:false}),"aria-hidden":"true",children:a?jsxRuntime.jsx(lucideReact.ChevronsRight,{}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{})})})}we.displayName="SidebarCollapseButton";var ia=react.lazy(()=>Promise.resolve().then(()=>(ut(),ct)).then(e=>({default:e.SidebarMobileDrawer})));function sa({children:e}){let{isMobile:t}=w(),{isMobileOpen:a}=S();return !t||!a?null:jsxRuntime.jsx(react.Suspense,{fallback:null,children:jsxRuntime.jsx(ia,{children:e})})}function pt(e){return jsxRuntime.jsx(he,{...e,children:jsxRuntime.jsxs(Ye,{children:[e.children,jsxRuntime.jsx(sa,{children:e.children})]})})}pt.displayName="Sidebar";var la=Object.assign(pt,{Rail:Me,RailItem:Le,Popover:Ie,Panel:Te,PanelHeader:Ve,CollapseButton:we});L();var T=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 mt=zod.z.enum(["default","primary"]),bt=zod.z.enum(["sm","md","lg","xl"]),ft=zod.z.enum(["page","true","location"]),gt=zod.z.enum(["h1","h2","h3","h4"]),ca=zod.z.enum(["top","bottom"]),ua=T.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)}),pa=T.extend({children:zod.z.custom(),"aria-label":zod.z.string(),variant:mt.optional().default("default"),showActiveIndicator:zod.z.boolean().optional().default(true)}),ma=T.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:ft.optional().default("page"),isDisabled:zod.z.boolean().optional(),onPress:zod.z.custom().optional(),children:zod.z.custom().optional(),placement:ca.optional().default("top")}),ba=T.extend({children:zod.z.custom()}),fa=T.extend({children:zod.z.custom(),width:bt.optional().default("md"),"aria-label":zod.z.string(),skeleton:zod.z.custom().optional()}),ga=T.extend({title:zod.z.string().optional(),icon:zod.z.custom().optional(),children:zod.z.custom().optional(),as:gt.optional().default("h2")}),va=T.extend({});exports.Sidebar=la;exports.SidebarCollapseButtonPropsSchema=va;exports.SidebarCurrentTypeSchema=ft;exports.SidebarPanelHeaderLevelSchema=gt;exports.SidebarPanelHeaderPropsSchema=ga;exports.SidebarPanelPropsSchema=fa;exports.SidebarPanelWidthSchema=bt;exports.SidebarPopoverPropsSchema=ba;exports.SidebarPropsSchema=ua;exports.SidebarRailItemPropsSchema=ma;exports.SidebarRailPropsSchema=pa;exports.SidebarRailVariantSchema=mt;//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|