@tribepad/themis 1.5.7 → 1.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/elements/AlertDialog/index.js +1 -1
  3. package/dist/elements/AlertDialog/index.js.map +1 -1
  4. package/dist/elements/AlertDialog/index.mjs +1 -1
  5. package/dist/elements/AlertDialog/index.mjs.map +1 -1
  6. package/dist/elements/Badge/index.js +1 -1
  7. package/dist/elements/Badge/index.js.map +1 -1
  8. package/dist/elements/Badge/index.mjs +1 -1
  9. package/dist/elements/Badge/index.mjs.map +1 -1
  10. package/dist/elements/Breadcrumbs/index.js +1 -1
  11. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  12. package/dist/elements/Breadcrumbs/index.mjs +1 -1
  13. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  14. package/dist/elements/Button/index.js +1 -1
  15. package/dist/elements/Button/index.js.map +1 -1
  16. package/dist/elements/Button/index.mjs +1 -1
  17. package/dist/elements/Button/index.mjs.map +1 -1
  18. package/dist/elements/Card/index.js +1 -1
  19. package/dist/elements/Card/index.js.map +1 -1
  20. package/dist/elements/Card/index.mjs +1 -1
  21. package/dist/elements/Card/index.mjs.map +1 -1
  22. package/dist/elements/Carousel/index.js +1 -1
  23. package/dist/elements/Carousel/index.js.map +1 -1
  24. package/dist/elements/Carousel/index.mjs +1 -1
  25. package/dist/elements/Carousel/index.mjs.map +1 -1
  26. package/dist/elements/Chart/index.js +1 -1
  27. package/dist/elements/Chart/index.js.map +1 -1
  28. package/dist/elements/Chart/index.mjs +1 -1
  29. package/dist/elements/Chart/index.mjs.map +1 -1
  30. package/dist/elements/ChatInterface/index.js +1 -1
  31. package/dist/elements/ChatInterface/index.js.map +1 -1
  32. package/dist/elements/ChatInterface/index.mjs +1 -1
  33. package/dist/elements/ChatInterface/index.mjs.map +1 -1
  34. package/dist/elements/Checkbox/index.js +1 -1
  35. package/dist/elements/Checkbox/index.js.map +1 -1
  36. package/dist/elements/Checkbox/index.mjs +1 -1
  37. package/dist/elements/Checkbox/index.mjs.map +1 -1
  38. package/dist/elements/CheckboxGroup/index.js +1 -1
  39. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  40. package/dist/elements/CheckboxGroup/index.mjs +1 -1
  41. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  42. package/dist/elements/ColorPicker/index.js +1 -1
  43. package/dist/elements/ColorPicker/index.js.map +1 -1
  44. package/dist/elements/ColorPicker/index.mjs +1 -1
  45. package/dist/elements/ColorPicker/index.mjs.map +1 -1
  46. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -1
  47. package/dist/elements/Combobox/index.js +1 -1
  48. package/dist/elements/Combobox/index.js.map +1 -1
  49. package/dist/elements/Combobox/index.mjs +1 -1
  50. package/dist/elements/Combobox/index.mjs.map +1 -1
  51. package/dist/elements/DatePicker/index.js +1 -1
  52. package/dist/elements/DatePicker/index.js.map +1 -1
  53. package/dist/elements/DatePicker/index.mjs +1 -1
  54. package/dist/elements/DatePicker/index.mjs.map +1 -1
  55. package/dist/elements/Dropdown/index.js +1 -1
  56. package/dist/elements/Dropdown/index.js.map +1 -1
  57. package/dist/elements/Dropdown/index.mjs +1 -1
  58. package/dist/elements/Dropdown/index.mjs.map +1 -1
  59. package/dist/elements/FileField/index.js +1 -1
  60. package/dist/elements/FileField/index.js.map +1 -1
  61. package/dist/elements/FileField/index.mjs +1 -1
  62. package/dist/elements/FileField/index.mjs.map +1 -1
  63. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -1
  64. package/dist/elements/Modal/index.js +1 -1
  65. package/dist/elements/Modal/index.js.map +1 -1
  66. package/dist/elements/Modal/index.mjs +1 -1
  67. package/dist/elements/Modal/index.mjs.map +1 -1
  68. package/dist/elements/NumberField/index.js +1 -1
  69. package/dist/elements/NumberField/index.js.map +1 -1
  70. package/dist/elements/NumberField/index.mjs +1 -1
  71. package/dist/elements/NumberField/index.mjs.map +1 -1
  72. package/dist/elements/PageTitle/PageTitle.d.ts.map +1 -1
  73. package/dist/elements/PageTitle/PageTitle.styles.d.ts.map +1 -1
  74. package/dist/elements/PageTitle/index.js +1 -1
  75. package/dist/elements/PageTitle/index.js.map +1 -1
  76. package/dist/elements/PageTitle/index.mjs +1 -1
  77. package/dist/elements/PageTitle/index.mjs.map +1 -1
  78. package/dist/elements/Pagination/index.js +1 -1
  79. package/dist/elements/Pagination/index.js.map +1 -1
  80. package/dist/elements/Pagination/index.mjs +1 -1
  81. package/dist/elements/Pagination/index.mjs.map +1 -1
  82. package/dist/elements/Panel/Panel.d.ts.map +1 -1
  83. package/dist/elements/Panel/index.js +1 -1
  84. package/dist/elements/Panel/index.js.map +1 -1
  85. package/dist/elements/Panel/index.mjs +1 -1
  86. package/dist/elements/Panel/index.mjs.map +1 -1
  87. package/dist/elements/PasswordField/index.js +1 -1
  88. package/dist/elements/PasswordField/index.js.map +1 -1
  89. package/dist/elements/PasswordField/index.mjs +1 -1
  90. package/dist/elements/PasswordField/index.mjs.map +1 -1
  91. package/dist/elements/RadioGroup/index.js +1 -1
  92. package/dist/elements/RadioGroup/index.js.map +1 -1
  93. package/dist/elements/RadioGroup/index.mjs +1 -1
  94. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  95. package/dist/elements/RatingScale/RatingScale.styles.d.ts.map +1 -1
  96. package/dist/elements/RatingScale/index.js +1 -1
  97. package/dist/elements/RatingScale/index.js.map +1 -1
  98. package/dist/elements/RatingScale/index.mjs +1 -1
  99. package/dist/elements/RatingScale/index.mjs.map +1 -1
  100. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  101. package/dist/elements/Resizable/index.js +1 -1
  102. package/dist/elements/Resizable/index.js.map +1 -1
  103. package/dist/elements/Resizable/index.mjs +1 -1
  104. package/dist/elements/Resizable/index.mjs.map +1 -1
  105. package/dist/elements/SearchField/index.js +1 -1
  106. package/dist/elements/SearchField/index.js.map +1 -1
  107. package/dist/elements/SearchField/index.mjs +1 -1
  108. package/dist/elements/SearchField/index.mjs.map +1 -1
  109. package/dist/elements/Select/Select.styles.d.ts.map +1 -1
  110. package/dist/elements/Select/index.js +1 -1
  111. package/dist/elements/Select/index.js.map +1 -1
  112. package/dist/elements/Select/index.mjs +1 -1
  113. package/dist/elements/Select/index.mjs.map +1 -1
  114. package/dist/elements/Sidebar/Sidebar.styles.d.ts +34 -3
  115. package/dist/elements/Sidebar/Sidebar.styles.d.ts.map +1 -1
  116. package/dist/elements/Sidebar/Sidebar.types.d.ts +6 -0
  117. package/dist/elements/Sidebar/Sidebar.types.d.ts.map +1 -1
  118. package/dist/elements/Sidebar/SidebarPanel.d.ts.map +1 -1
  119. package/dist/elements/Sidebar/SidebarRail.d.ts.map +1 -1
  120. package/dist/elements/Sidebar/index.js +1 -1
  121. package/dist/elements/Sidebar/index.js.map +1 -1
  122. package/dist/elements/Sidebar/index.mjs +1 -1
  123. package/dist/elements/Sidebar/index.mjs.map +1 -1
  124. package/dist/elements/SituationalJudgement/index.js +1 -1
  125. package/dist/elements/SituationalJudgement/index.js.map +1 -1
  126. package/dist/elements/SituationalJudgement/index.mjs +1 -1
  127. package/dist/elements/SituationalJudgement/index.mjs.map +1 -1
  128. package/dist/elements/Switch/index.js +1 -1
  129. package/dist/elements/Switch/index.js.map +1 -1
  130. package/dist/elements/Switch/index.mjs +1 -1
  131. package/dist/elements/Switch/index.mjs.map +1 -1
  132. package/dist/elements/Table/index.js +1 -1
  133. package/dist/elements/Table/index.js.map +1 -1
  134. package/dist/elements/Table/index.mjs +1 -1
  135. package/dist/elements/Table/index.mjs.map +1 -1
  136. package/dist/elements/Tabs/Tabs.d.ts.map +1 -1
  137. package/dist/elements/Tabs/index.js +1 -1
  138. package/dist/elements/Tabs/index.js.map +1 -1
  139. package/dist/elements/Tabs/index.mjs +1 -1
  140. package/dist/elements/Tabs/index.mjs.map +1 -1
  141. package/dist/elements/TextField/index.js +1 -1
  142. package/dist/elements/TextField/index.js.map +1 -1
  143. package/dist/elements/TextField/index.mjs +1 -1
  144. package/dist/elements/TextField/index.mjs.map +1 -1
  145. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  146. package/dist/elements/Toast/index.js +1 -1
  147. package/dist/elements/Toast/index.js.map +1 -1
  148. package/dist/elements/Toast/index.mjs +1 -1
  149. package/dist/elements/Toast/index.mjs.map +1 -1
  150. package/dist/elements/Tooltip/index.js +1 -1
  151. package/dist/elements/Tooltip/index.js.map +1 -1
  152. package/dist/elements/Tooltip/index.mjs +1 -1
  153. package/dist/elements/Tooltip/index.mjs.map +1 -1
  154. package/dist/elements/Wizard/Wizard.types.d.ts +19 -0
  155. package/dist/elements/Wizard/Wizard.types.d.ts.map +1 -1
  156. package/dist/elements/Wizard/WizardContent.d.ts +17 -8
  157. package/dist/elements/Wizard/WizardContent.d.ts.map +1 -1
  158. package/dist/elements/Wizard/index.js +1 -1
  159. package/dist/elements/Wizard/index.js.map +1 -1
  160. package/dist/elements/Wizard/index.mjs +1 -1
  161. package/dist/elements/Wizard/index.mjs.map +1 -1
  162. package/dist/elements/index.js +1 -1
  163. package/dist/elements/index.js.map +1 -1
  164. package/dist/elements/index.mjs +1 -1
  165. package/dist/elements/index.mjs.map +1 -1
  166. package/dist/index.js +2 -2
  167. package/dist/index.js.map +1 -1
  168. package/dist/index.mjs +2 -2
  169. package/dist/index.mjs.map +1 -1
  170. package/dist/styles/index.js +1 -1
  171. package/dist/styles/index.js.map +1 -1
  172. package/dist/styles/index.mjs +1 -1
  173. package/dist/styles/index.mjs.map +1 -1
  174. package/dist/styles/interaction-states.d.ts +2 -2
  175. package/dist/styles/interaction-states.d.ts.map +1 -1
  176. package/package.json +1 -1
  177. package/src/elements/PageTitle/PageTitle.stories.tsx +15 -19
  178. package/src/elements/Sidebar/Sidebar.stories.tsx +13 -2
  179. package/src/elements/Wizard/Wizard.stories.tsx +95 -0
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import {createContext,forwardRef,useRef,useState,useEffect,Children,isValidElement,useCallback,memo,lazy,useContext,useId,useMemo,Suspense,useSyncExternalStore}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Toolbar,Link,Button,ModalOverlay,Modal,Dialog}from'react-aria-components';import {PanelLeftOpen,PanelLeftClose,X as X$1}from'lucide-react';import {z}from'zod';var ut=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var mt=(e,t)=>{for(var a in t)ut(e,a,{get:t[a],enumerable:true});};function He(e){let t=useCallback(o=>{let i=window.matchMedia(e);return i.addEventListener("change",o),()=>i.removeEventListener("change",o)},[e]),a=useCallback(()=>window.matchMedia(e).matches,[e]),r=useCallback(()=>false,[]);return useSyncExternalStore(t,a,r)}var De=O(()=>{"use client";});function g(...e){return twMerge(clsx(e))}var _=O(()=>{});function ee(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var K,le,se,U,J,de,Be=O(()=>{K=["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`},U=["motion-reduce:transition-none","motion-reduce:animate-none"],J=["transition-colors","duration-150"],de=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});var ce,pe,te,ae,F,$,W,j,ue,me,be,X,fe,ve,ge,xe,Se,T=O(()=>{Be();ce=cva(["flex","h-full","group/sidebar"]),pe=cva(["flex","flex-col","w-[68px]","shrink-0","pl-1","overflow-y-auto","overflow-x-hidden","border-r","border-[var(--border)]","group-has-[[data-sidebar-panel]]/sidebar:border-r-0"],{variants:{variant:{default:"bg-[var(--menu-background)]",primary:"bg-[var(--primary-action)]"}},defaultVariants:{variant:"default"}}),te=cva(["flex","flex-col","gap-1"]),ae=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)] rounded-r-none"},{railVariant:"default",isActive:false,className:"hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)] hover:rounded-r-none"},{railVariant:"primary",isActive:true,className:"bg-white/20 text-[var(--primary-action-foreground)] rounded-r-none"},{railVariant:"primary",isActive:false,className:"hover:bg-white/10 hover:text-[var(--primary-action-foreground)] hover:rounded-r-none"}],defaultVariants:{railVariant:"default",isActive:false,isDisabled:false}}),F=cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),$=cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}}),W=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"]),j=cva(["h-full","w-full","overflow-y-auto","bg-[var(--accent)]","text-[var(--accent-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]"]),ue=cva(["flex","flex-col","h-full","overflow-hidden","bg-[var(--menu-accent)]","text-[var(--menu-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}}),me=cva(["flex","items-center","justify-between","px-3","py-2","shrink-0"]),be=cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),X=cva(ee(le,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)]",...de],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),fe=cva(["fixed","inset-0","z-50","bg-black/50"]),ve=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)]"]),ge=cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),xe=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)]"]),Se=cva(ee(le,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:[...de]}},defaultVariants:{isActive:false}});});function w(){let e=useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function R(){let e=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:i,mobileBreakpoint:n=768,className:c,"data-testid":s="sidebar"}){let[u,p]=useState(a),l=t!==void 0,m=l?t:u,S=useCallback(h=>{l||p(h),r?.(h);},[l,r]),P=useCallback(()=>S(!m),[S,m]),V=o??false,M=useCallback(h=>i?.(h),[i]),[f,v]=useState(null),x=useRef(null),D=useCallback(()=>{x.current&&(clearTimeout(x.current),x.current=null);},[]),A=useCallback((h=300)=>{x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{x.current=null,v(null);},h);},[]);useEffect(()=>()=>{x.current&&clearTimeout(x.current);},[]);let L=He(`(max-width: ${n-1}px)`),B=useId(),k=`sidebar-rail-${B}`,G=`sidebar-panel-${B}`,z=useMemo(()=>({isMobile:L,railId:k,panelId:G}),[L,k,G]),q=useMemo(()=>({isCollapsed:m,setCollapsed:S,toggleCollapsed:P,isMobileOpen:V,setMobileOpen:M,activePopoverId:f,setActivePopoverId:v,cancelPopoverClose:D,schedulePopoverClose:A}),[m,S,P,V,M,f,D,A]);return L?jsx(Re.Provider,{value:z,children:jsx(Pe.Provider,{value:q,children:e})}):jsx(Re.Provider,{value:z,children:jsx(Pe.Provider,{value:q,children:jsx("div",{className:g(ce(),c),"data-testid":s,children:e})})})}var Re,Pe,H=O(()=>{"use client";De();_();T();Re=createContext(null),Pe=createContext(null);ye.displayName="Sidebar";});var nt={};mt(nt,{SidebarMobileDrawer:()=>Yt});function Xt(e){return e>99?"99+":String(e)}function Zt(e){let t=null;return Children.forEach(e.props.children,a=>{isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function Qt(e){let t=[],a=null,r="Navigation";return Children.forEach(e,o=>{if(!isValidElement(o))return;let i=o.type.displayName;i==="SidebarRail"?(r=o.props["aria-label"]??r,Children.forEach(o.props.children,n=>{if(!isValidElement(n))return;if(n.type.displayName==="SidebarRailItem"){let s=n;t.push({props:s.props,popover:Zt(s)});}})):i==="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:i,panelContent:n,railAriaLabel:c}=Qt(e),u=i.find(l=>l.props.id===r)?.popover??n,p=()=>{o(null),a(false);};return jsx(ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:l=>{l||p();},className:fe(),children:jsx(Modal,{className:ve(),children:jsxs(Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxs("header",{className:ge(),children:[jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsx(Button,{"aria-label":"Close navigation",className:g(X()),onPress:p,children:jsx(X$1,{})})]}),i.length>0&&jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:xe(),children:i.map(({props:l,popover:m})=>{let S=m!=null,P=r===l.id;return jsxs(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:Se({isActive:(l.isActive??false)||P}),onPress:()=>{if(l.onPress?.(),S){o(P?null:l.id);return}if(l.href){window.location.href=l.href,p();return}},"data-testid":`sidebar-mobile-rail-item-${l.id}`,children:[jsxs("span",{className:F(),"aria-hidden":"true",children:[l.icon,l.badgeCount!=null&&l.badgeCount>0&&jsx("span",{className:W(),"aria-hidden":"true",children:Xt(l.badgeCount)})]}),jsx("span",{className:$({isActive:(l.isActive??false)||P}),children:l.label}),l.badgeCount!=null&&l.badgeCount>0&&jsxs("span",{className:"sr-only",children:[l.badgeCount," notifications"]})]},l.id)})}),u&&jsx("div",{className:"flex-1 overflow-y-auto bg-[var(--content-background)] text-[var(--content-foreground)]","data-testid":"sidebar-mobile-panel-content",children:u})]})})})}var it=O(()=>{"use client";_();H();T();});H();_();H();_();H();T();var Rt=200,Pt=300;function We(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:i}=R(),n=useRef("IDLE"),c=useRef(null),s=useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),u=a===e;useEffect(()=>{!u&&n.current!=="IDLE"?(s(),n.current="IDLE"):u&&(n.current="OPEN");},[u,s]),useEffect(()=>s,[s]);let p=useCallback(m=>{t&&m.pointerType==="mouse"&&(s(),o(),n.current!=="OPEN"&&(n.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{n.current="OPEN",r(e);},Rt)));},[e,t,r,s,o]),l=useCallback(()=>{if(t){if(s(),n.current==="HOVERING_TRIGGER"){n.current="IDLE",r(null);return}n.current==="OPEN"&&i(Pt);}},[t,r,s,i]);return {onTriggerPointerEnter:p,onTriggerPointerLeave:l}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsx("div",{className:g(j(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();T();function It(){let{activePopoverId:e,setActivePopoverId:t}=R(),{isMobile:a}=w(),r=useRef(null);return useEffect(()=>{if(!e)return;let o=i=>{i.key==="Escape"&&(i.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),useEffect(()=>{if(!e)return;let o=n=>{let c=r.current,s=n.relatedTarget;if(!s||!c)return;let u=document.querySelector('[data-testid="sidebar-rail"]');!c.contains(s)&&!u?.contains(s)&&t(null);},i=r.current;return i?.addEventListener("focusout",o),()=>i?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsx(Ze,{ref:r})}var je=createContext(null);function Ce(){let e=useContext(je);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function Xe({children:e}){let t=useRef(new Map),a=useCallback((n,c,s)=>{t.current.set(n,{content:c,label:s});},[]),r=useCallback(n=>{t.current.delete(n);},[]),o=useCallback(n=>t.current.get(n)??null,[]),i=useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsx(je.Provider,{value:i,children:e})}var Ze=forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=R(),i=Ce();if(!a)return null;let n=i.getContent(a);return n?jsx("div",{ref:t,role:"dialog","aria-label":`${n.label} details`,className:j(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:n.content}):null});Ze.displayName="PopoverContent";var wt=300,Mt={sm:220,md:280,lg:340,xl:420},Ve=forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":i="sidebar-panel"},n)=>{let{isMobile:c}=w(),{isCollapsed:s,activePopoverId:u}=R(),p=useRef(null),l=u!==null,[m,S]=useState(!s);useEffect(()=>{if(s){S(false);return}let f=window.setTimeout(()=>S(true),wt);return ()=>window.clearTimeout(f)},[s]);let V=r!==void 0&&!(!s&&m)?r:e;useEffect(()=>{if(!s)return;let f=p.current;if(f&&f.contains(document.activeElement)){let v=document.querySelector('[data-testid="sidebar-collapse-button"]');v&&window.requestAnimationFrame(()=>v.focus());}},[s]);let M=f=>{p.current=f,typeof n=="function"?n(f):n&&(n.current=f);};return c?null:jsxs("div",{className:"relative shrink-0 border-r border-[var(--border)]","data-sidebar-panel":"",children:[jsx("aside",{ref:M,"aria-label":a,"aria-hidden":s,inert:s||void 0,className:g(ue({width:t,isCollapsed:s}),o),"data-testid":i,children:V}),l&&jsx("div",{className:g("absolute top-0 left-0 z-10 h-full",s&&"border-r border-[var(--border)]"),style:{width:`${Mt[t]}px`},children:jsx(It,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,icon:t,children:a,as:r="h2",className:o,"data-testid":i="sidebar-panel-header"}){return jsx("header",{className:g(me(),o),"data-testid":i,children:a??jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${i}-icon`,children:t}):null,jsx(r,{className:be(),children:e})]})})}Te.displayName="SidebarPanelHeader";T();var tt=createContext("default");function at(){return useContext(tt)}var Me=forwardRef(({children:e,"aria-label":t,variant:a="default",className:r,"data-testid":o="sidebar-rail"},i)=>{let{isMobile:n}=w();if(n)return null;let c=[],s=[],u=[];return Children.forEach(e,p=>{if(isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"){c.push(p);return}(isValidElement(p)?p.props.placement??"top":"top")==="bottom"?u.push(p):s.push(p);}),jsx(tt.Provider,{value:a,children:jsxs("nav",{ref:i,"aria-label":t,className:g(pe({variant:a}),r),"data-testid":o,children:[c,jsx(Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:te(),children:s}),u.length>0&&jsx(Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:g(te(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:u})]})})});Me.displayName="SidebarRail";function Gt(e){let t=null,a=[];return Children.forEach(e,r=>{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 rt=forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:i=false,currentType:n="page",isDisabled:c=false,onPress:s,children:u,className:p,"data-testid":l},m)=>{let{activePopoverId:S,setActivePopoverId:P}=R(),V=at(),M=useRef(null),{popover:f}=Gt(u),v=f!==null,x=S===e,D=We(e,v),A=Ce();useEffect(()=>{if(v&&f)return A.register(e,f,t),()=>A.unregister(e)},[e,v,f,t,A]);let L=useCallback(()=>{v&&P(x?null:e),s?.();},[v,x,e,s,P]),B=useCallback(h=>{M.current=h,typeof m=="function"?m(h):m&&(m.current=h);},[m]),k=l??`sidebar-rail-item-${e}`,G=p?g(ae({railVariant:V,isActive:i,isDisabled:c}),p):ae({railVariant:V,isActive:i,isDisabled:c}),z=jsxs(Fragment,{children:[jsxs("span",{className:F(),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsx("span",{className:W(),"aria-hidden":"true",children:zt(o)})]}),jsx("span",{className:$({isActive:i}),children:t}),o!=null&&o>0&&jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),q=r&&!c?jsx(Link,{ref:B,href:r,"aria-current":i?n:void 0,"aria-haspopup":v?"dialog":void 0,"aria-expanded":v?x:void 0,className:G,"data-testid":k,onPress:L,children:z}):jsx(Button,{ref:B,isDisabled:c,"aria-current":i?n:void 0,"aria-haspopup":v?"dialog":void 0,"aria-expanded":v?x:void 0,className:G,"data-testid":k,onPress:L,children:z});return jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:q})});rt.displayName="SidebarRailItem";var Ae=memo(rt,(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);Ae.displayName="SidebarRailItem";function Le({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=R(),o=at();return jsx(Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:g(X({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsx(PanelLeftOpen,{}):jsx(PanelLeftClose,{})})}Le.displayName="SidebarCollapseButton";var Jt=lazy(()=>Promise.resolve().then(()=>(it(),nt)).then(e=>({default:e.SidebarMobileDrawer})));function ea({children:e}){let{isMobile:t}=w(),{isMobileOpen:a}=R();return !t||!a?null:jsx(Suspense,{fallback:null,children:jsx(Jt,{children:e})})}function st(e){return jsx(ye,{...e,children:jsxs(Xe,{children:[e.children,jsx(ea,{children:e.children})]})})}st.displayName="Sidebar";var ta=Object.assign(st,{Rail:Me,RailItem:Ae,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Le});T();var C=z.object({className:z.string().optional(),children:z.any().optional(),id:z.string().optional(),"aria-label":z.string().optional(),"aria-labelledby":z.string().optional(),"aria-describedby":z.string().optional(),"aria-live":z.enum(["off","polite","assertive"]).optional(),"aria-hidden":z.boolean().optional(),"data-testid":z.string().optional()});var lt=z.enum(["default","primary"]),dt=z.enum(["sm","md","lg","xl"]),ct=z.enum(["page","true","location"]),pt=z.enum(["h1","h2","h3","h4"]),ra=z.enum(["top","bottom"]),oa=C.extend({children:z.custom(),isCollapsed:z.boolean().optional(),defaultCollapsed:z.boolean().optional().default(false),onCollapsedChange:z.custom().optional(),isMobileOpen:z.boolean().optional(),onMobileOpenChange:z.custom().optional(),mobileBreakpoint:z.number().optional().default(768)}),na=C.extend({children:z.custom(),"aria-label":z.string(),variant:lt.optional().default("default")}),ia=C.extend({id:z.string(),label:z.string(),icon:z.custom(),href:z.string().optional(),badgeCount:z.number().optional(),isActive:z.boolean().optional(),currentType:ct.optional().default("page"),isDisabled:z.boolean().optional(),onPress:z.custom().optional(),children:z.custom().optional(),placement:ra.optional().default("top")}),sa=C.extend({children:z.custom()}),la=C.extend({children:z.custom(),width:dt.optional().default("md"),"aria-label":z.string(),skeleton:z.custom().optional()}),da=C.extend({title:z.string().optional(),icon:z.custom().optional(),children:z.custom().optional(),as:pt.optional().default("h2")}),ca=C.extend({});export{ta as Sidebar,ca as SidebarCollapseButtonPropsSchema,ct as SidebarCurrentTypeSchema,pt as SidebarPanelHeaderLevelSchema,da as SidebarPanelHeaderPropsSchema,la as SidebarPanelPropsSchema,dt as SidebarPanelWidthSchema,sa as SidebarPopoverPropsSchema,oa as SidebarPropsSchema,ia as SidebarRailItemPropsSchema,na as SidebarRailPropsSchema,lt as SidebarRailVariantSchema,X as sidebarCollapseButtonVariants,ge as sidebarMobileDrawerHeaderVariants,ve as sidebarMobileDrawerVariants,fe as sidebarMobileOverlayVariants,Se as sidebarMobileRailItemVariants,xe as sidebarMobileRailVariants,be as sidebarPanelHeaderTitleVariants,me as sidebarPanelHeaderVariants,ue as sidebarPanelVariants,j as sidebarPopoverVariants,W as sidebarRailItemBadgeVariants,F as sidebarRailItemIconVariants,$ as sidebarRailItemLabelVariants,ae as sidebarRailItemVariants,te as sidebarRailToolbarVariants,pe as sidebarRailVariants,ce as sidebarRootVariants};//# sourceMappingURL=index.mjs.map
2
+ import {createContext,forwardRef,useRef,useState,useEffect,useMemo,Children,isValidElement,useCallback,memo,lazy,useContext,useId,Suspense,useSyncExternalStore}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Toolbar,Link,Button,ModalOverlay,Modal,Dialog}from'react-aria-components';import {ChevronsRight,ChevronsLeft,X as X$1}from'lucide-react';import {z}from'zod';var vt=Object.defineProperty;var O=(e,t)=>()=>(e&&(t=e(e=0)),t);var gt=(e,t)=>{for(var a in t)vt(e,a,{get:t[a],enumerable:true});};function He(e){let t=useCallback(o=>{let n=window.matchMedia(e);return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[e]),a=useCallback(()=>window.matchMedia(e).matches,[e]),r=useCallback(()=>false,[]);return useSyncExternalStore(t,a,r)}var De=O(()=>{"use client";});function g(...e){return twMerge(clsx(e))}var _=O(()=>{});function W(...e){return e.flatMap(t=>Array.isArray(t)?[...t]:[t])}var J,se,ie,F,$,Be,ke=O(()=>{J=["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`},F=["motion-reduce:transition-none","motion-reduce:animate-none"],$=["transition-colors","duration-150"],Be=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];});var le,de,ee,te,ce,pe,ze,j,X,ue,me,be,Z,fe,ve,ge,xe,Se,Ge,Ue,w=O(()=>{ke();le=cva(["flex","h-full","group/sidebar"]),de=cva(["flex","flex-col","w-[68px]","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"}}),ee=cva(["flex","flex-col"]),te=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}}),ce=cva(W($,["relative","flex","items-center","justify-center","shrink-0","size-[30px]","rounded-[9px]","[&_svg]:size-4","[&_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}}),pe=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}}),ze=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"]),j=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"]),X=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]"]),ue=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-[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}}),me=cva(["flex","items-center","justify-between","px-3","py-2","shrink-0"]),be=cva(["text-base","font-semibold","text-[var(--content-foreground)]","truncate"]),Z=cva(W(se,J,F,$,["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)]",...Be],primary:["text-[var(--primary-action-foreground)]","hover:bg-white/10"]}},defaultVariants:{railVariant:"default"}}),fe=cva(["fixed","inset-0","z-50","bg-black/50"]),ve=cva(["fixed","inset-y-0","left-0","z-50","flex","flex-col","w-[85vw]","max-w-[380px]","bg-[var(--content-background)]"]),ge=cva(["flex","items-center","justify-between","px-3","py-2","border-b","border-[var(--border)]","shrink-0"]),xe=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)]"]),Se=cva(W(se,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=cva(["relative","[&_svg]:size-5","[&_svg]:shrink-0","[&_svg]:pointer-events-none"]),Ue=cva(["text-[10px]","leading-tight","text-center","max-w-full","truncate"],{variants:{isActive:{true:"font-semibold",false:"font-medium"}},defaultVariants:{isActive:false}});});function M(){let e=useContext(Re);if(!e)throw new Error("Sidebar compound components must be used within <Sidebar>");return e}function S(){let e=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:n,mobileBreakpoint:i=768,className:c,"data-testid":l="sidebar"}){let[f,v]=useState(a),s=t!==void 0,m=s?t:f,p=useCallback(E=>{s||v(E),r?.(E);},[s,r]),R=useCallback(()=>p(!m),[p,m]),N=o??false,L=useCallback(E=>n?.(E),[n]),[x,y]=useState(null),b=useRef(null),T=useCallback(()=>{b.current&&(clearTimeout(b.current),b.current=null);},[]),D=useCallback((E=300)=>{b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,y(null);},E);},[]);useEffect(()=>()=>{b.current&&clearTimeout(b.current);},[]);let A=He(`(max-width: ${i-1}px)`),B=useId(),k=`sidebar-rail-${B}`,z=`sidebar-panel-${B}`,G=useMemo(()=>({isMobile:A,railId:k,panelId:z}),[A,k,z]),U=useMemo(()=>({isCollapsed:m,setCollapsed:p,toggleCollapsed:R,isMobileOpen:N,setMobileOpen:L,activePopoverId:x,setActivePopoverId:y,cancelPopoverClose:T,schedulePopoverClose:D}),[m,p,R,N,L,x,T,D]);return A?jsx(Re.Provider,{value:G,children:jsx(Pe.Provider,{value:U,children:e})}):jsx(Re.Provider,{value:G,children:jsx(Pe.Provider,{value:U,children:jsx("div",{className:g(le(),c),"data-testid":l,children:e})})})}var Re,Pe,H=O(()=>{"use client";De();_();w();Re=createContext(null),Pe=createContext(null);ye.displayName="Sidebar";});var dt={};gt(dt,{SidebarMobileDrawer:()=>ta});function Kt(e){return e>99?"99+":String(e)}function Jt(e){let t=null;return Children.forEach(e.props.children,a=>{isValidElement(a)&&a.type.displayName==="SidebarPopover"&&(t=a);}),t}function ea(e){let t=[],a=null,r="Navigation";return Children.forEach(e,o=>{if(!isValidElement(o))return;let n=o.type.displayName;n==="SidebarRail"?(r=o.props["aria-label"]??r,Children.forEach(o.props.children,i=>{if(!isValidElement(i))return;if(i.type.displayName==="SidebarRailItem"){let l=i;t.push({props:l.props,popover:Jt(l)});}})):n==="SidebarPanel"&&(a=o.props.children);}),{railItems:t,panelContent:a,railAriaLabel:r}}function ta({children:e}){let{isMobileOpen:t,setMobileOpen:a,activePopoverId:r,setActivePopoverId:o}=S(),{railItems:n,panelContent:i,railAriaLabel:c}=ea(e),f=n.find(s=>s.props.id===r)?.popover??i,v=()=>{o(null),a(false);};return jsx(ModalOverlay,{isDismissable:true,isOpen:t,onOpenChange:s=>{s||v();},className:fe(),children:jsx(Modal,{className:ve(),children:jsxs(Dialog,{"aria-label":"Navigation menu",className:"flex flex-col h-full outline-none",children:[jsxs("header",{className:ge(),children:[jsx("span",{className:"text-base font-semibold text-[var(--content-foreground)]",children:"Menu"}),jsx(Button,{"aria-label":"Close navigation",className:g(Z()),onPress:v,children:jsx(X$1,{})})]}),n.length>0&&jsx("div",{role:"toolbar","aria-orientation":"horizontal","aria-label":c,tabIndex:0,className:xe(),children:n.map(({props:s,popover:m})=>{let p=m!=null,R=r===s.id;return jsxs(Button,{"aria-current":s.isActive?s.currentType??"page":void 0,"aria-haspopup":p?"dialog":void 0,"aria-expanded":p?R:void 0,isDisabled:s.isDisabled,className:Se({isActive:(s.isActive??false)||R}),onPress:()=>{if(s.onPress?.(),p){o(R?null:s.id);return}if(s.href){window.location.href=s.href,v();return}},"data-testid":`sidebar-mobile-rail-item-${s.id}`,children:[jsxs("span",{className:Ge(),"aria-hidden":"true",children:[s.icon,s.badgeCount!=null&&s.badgeCount>0&&jsx("span",{className:j(),"aria-hidden":"true",children:Kt(s.badgeCount)})]}),jsx("span",{className:Ue({isActive:(s.isActive??false)||R}),children:s.label}),s.badgeCount!=null&&s.badgeCount>0&&jsxs("span",{className:"sr-only",children:[s.badgeCount," notifications"]})]},s.id)})}),f&&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 ct=O(()=>{"use client";_();H();w();});H();_();H();_();H();w();var Nt=200,It=300;function Qe(e,t){let{activePopoverId:a,setActivePopoverId:r,cancelPopoverClose:o,schedulePopoverClose:n}=S(),i=useRef("IDLE"),c=useRef(null),l=useCallback(()=>{c.current&&(clearTimeout(c.current),c.current=null);},[]),f=a===e;useEffect(()=>{!f&&i.current!=="IDLE"?(l(),i.current="IDLE"):f&&(i.current="OPEN");},[f,l]),useEffect(()=>l,[l]);let v=useCallback(m=>{t&&m.pointerType==="mouse"&&(l(),o(),i.current!=="OPEN"&&(i.current="HOVERING_TRIGGER",c.current=setTimeout(()=>{i.current="OPEN",r(e);},Nt)));},[e,t,r,l,o]),s=useCallback(()=>{if(t){if(l(),i.current==="HOVERING_TRIGGER"){i.current="IDLE",r(null);return}i.current==="OPEN"&&n(It);}},[t,r,l,n]);return {onTriggerPointerEnter:v,onTriggerPointerLeave:s}}function Ne({children:e,className:t,"data-testid":a="sidebar-popover"}){return jsx("div",{className:g(X(),t),"data-testid":a,children:e})}Ne.displayName="SidebarPopover";_();H();w();function Tt(){let{activePopoverId:e,setActivePopoverId:t}=S(),{isMobile:a}=M(),r=useRef(null);return useEffect(()=>{if(!e)return;let o=n=>{n.key==="Escape"&&(n.preventDefault(),t(null));};return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[e,t]),useEffect(()=>{if(!e)return;let o=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);},n=r.current;return n?.addEventListener("focusout",o),()=>n?.removeEventListener("focusout",o)},[e,t]),a||!e?null:jsx(Ke,{ref:r})}var Ye=createContext(null);function Ee(){let e=useContext(Ye);if(!e)throw new Error("usePopoverRegistry must be used within SidebarPanel");return e}function qe({children:e}){let t=useRef(new Map),a=useCallback((i,c,l)=>{t.current.set(i,{content:c,label:l});},[]),r=useCallback(i=>{t.current.delete(i);},[]),o=useCallback(i=>t.current.get(i)??null,[]),n=useMemo(()=>({register:a,unregister:r,getContent:o}),[a,r,o]);return jsx(Ye.Provider,{value:n,children:e})}var Ke=forwardRef((e,t)=>{let{activePopoverId:a,cancelPopoverClose:r,schedulePopoverClose:o}=S(),n=Ee();if(!a)return null;let i=n.getContent(a);return i?jsx("div",{ref:t,role:"dialog","aria-label":`${i.label} details`,className:X(),"data-testid":"sidebar-popover",onPointerEnter:r,onPointerLeave:()=>o(300),children:i.content}):null});Ke.displayName="PopoverContent";var Ot=300,_t={sm:220,md:280,lg:340,xl:420},Ve=forwardRef(({children:e,width:t="md","aria-label":a,skeleton:r,className:o,"data-testid":n="sidebar-panel"},i)=>{let{isMobile:c}=M(),{isCollapsed:l,activePopoverId:f}=S(),v=useRef(null),s=f!==null,[m,p]=useState(!l);useEffect(()=>{if(l){p(false);return}let x=window.setTimeout(()=>p(true),Ot);return ()=>window.clearTimeout(x)},[l]);let N=r!==void 0&&!(!l&&m)?r:e;useEffect(()=>{if(!l)return;let x=v.current;if(x&&x.contains(document.activeElement)){let y=document.querySelector('[data-testid="sidebar-collapse-button"]');y&&window.requestAnimationFrame(()=>y.focus());}},[l]);let L=x=>{v.current=x,typeof i=="function"?i(x):i&&(i.current=x);};return c?null:jsxs("div",{className:g("relative shrink-0",!l&&"border-r border-[var(--border)]"),"data-sidebar-panel":"",children:[jsx("aside",{ref:L,"aria-label":a,"aria-hidden":l,inert:l||void 0,className:g(ue({width:t,isCollapsed:l}),o),"data-testid":n,children:N}),s&&jsx("div",{className:g("absolute top-0 left-0 z-10 h-full",l&&"border-r border-[var(--border)]"),style:{width:`${_t[t]}px`},children:jsx(Tt,{})})]})});Ve.displayName="SidebarPanel";function Te({title:e,icon:t,children:a,as:r="h2",className:o,"data-testid":n="sidebar-panel-header"}){return jsx("header",{className:g(me(),o),"data-testid":n,children:a??jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[t?jsx("span",{"aria-hidden":"true",className:"inline-flex shrink-0 items-center justify-center text-[var(--icon)]","data-testid":`${n}-icon`,children:t}):null,jsx(r,{className:be(),children:e})]})})}Te.displayName="SidebarPanelHeader";w();var nt=createContext({variant:"default",showActiveIndicator:true});function it(){return useContext(nt)}var we=forwardRef(({children:e,"aria-label":t,variant:a="default",showActiveIndicator:r=true,className:o,"data-testid":n="sidebar-rail"},i)=>{let{isMobile:c}=M(),l=useMemo(()=>({variant:a,showActiveIndicator:r}),[a,r]);if(c)return null;let f=[],v=[],s=[];Children.forEach(e,p=>{if(isValidElement(p)&&p.type.displayName==="SidebarCollapseButton"){f.push(p);return}(isValidElement(p)?p.props.placement??"top":"top")==="bottom"?s.push(p):v.push(p);});let m=f.length>0;return jsx(nt.Provider,{value:l,children:jsxs("nav",{ref:i,"aria-label":t,className:g(de({variant:a}),"pb-2",!m&&"pt-2",o),"data-testid":n,children:[f,jsx(Toolbar,{orientation:"vertical","aria-label":"Navigation items",className:ee(),children:v}),s.length>0&&jsx(Toolbar,{orientation:"vertical","aria-label":"Secondary navigation items",className:g(ee(),"mt-auto"),"data-testid":"sidebar-rail-bottom",children:s})]})})});we.displayName="SidebarRail";function Wt(e){let t=null,a=[];return Children.forEach(e,r=>{isValidElement(r)&&r.type.displayName==="SidebarPopover"?t=r:a.push(r);}),{popover:t,rest:a.length>0?a:null}}function jt(e){return e>99?"99+":String(e)}var st=forwardRef(({id:e,label:t,icon:a,href:r,badgeCount:o,isActive:n=false,currentType:i="page",isDisabled:c=false,onPress:l,children:f,className:v,"data-testid":s},m)=>{let{activePopoverId:p,setActivePopoverId:R}=S(),{variant:N,showActiveIndicator:L}=it(),x=useRef(null),{popover:y}=Wt(f),b=y!==null,T=p===e,D=Qe(e,b),A=Ee();useEffect(()=>{if(b&&y)return A.register(e,y,t),()=>A.unregister(e)},[e,b,y,t,A]);let B=useCallback(()=>{b&&R(T?null:e),l?.();},[b,T,e,l,R]),k=useCallback(oe=>{x.current=oe,typeof m=="function"?m(oe):m&&(m.current=oe);},[m]),z=s??`sidebar-rail-item-${e}`,G=v?g(te({railVariant:N,isActive:n,isDisabled:c}),v):te({railVariant:N,isActive:n,isDisabled:c}),U=jsxs(Fragment,{children:[jsxs("span",{className:"relative flex w-full items-center justify-center",children:[jsxs("span",{className:ce({railVariant:N,isActive:n}),"aria-hidden":"true",children:[a,o!=null&&o>0&&jsx("span",{className:j(),"aria-hidden":"true",children:jt(o)})]}),L&&n&&jsx("span",{className:ze(),"aria-hidden":"true"})]}),jsx("span",{className:pe({railVariant:N,isActive:n}),children:t}),o!=null&&o>0&&jsxs("span",{className:"sr-only",children:[o," notifications"]})]}),E=r&&!c?jsx(Link,{ref:k,href:r,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U}):jsx(Button,{ref:k,isDisabled:c,"aria-current":n?i:void 0,"aria-haspopup":b?"dialog":void 0,"aria-expanded":b?T:void 0,className:G,"data-testid":z,onPress:B,children:U});return jsx("div",{onPointerEnter:D.onTriggerPointerEnter,onPointerLeave:D.onTriggerPointerLeave,children:E})});st.displayName="SidebarRailItem";var Me=memo(st,(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 Le({className:e,"data-testid":t="sidebar-collapse-button"}){let{isCollapsed:a,toggleCollapsed:r}=S(),{variant:o}=it();return jsx(Button,{"aria-expanded":!a,"aria-label":a?"Expand sidebar":"Collapse sidebar",className:g(Z({railVariant:o}),e),"data-testid":t,onPress:r,children:a?jsx(ChevronsRight,{}):jsx(ChevronsLeft,{})})}Le.displayName="SidebarCollapseButton";var oa=lazy(()=>Promise.resolve().then(()=>(ct(),dt)).then(e=>({default:e.SidebarMobileDrawer})));function na({children:e}){let{isMobile:t}=M(),{isMobileOpen:a}=S();return !t||!a?null:jsx(Suspense,{fallback:null,children:jsx(oa,{children:e})})}function pt(e){return jsx(ye,{...e,children:jsxs(qe,{children:[e.children,jsx(na,{children:e.children})]})})}pt.displayName="Sidebar";var ia=Object.assign(pt,{Rail:we,RailItem:Me,Popover:Ne,Panel:Ve,PanelHeader:Te,CollapseButton:Le});w();var V=z.object({className:z.string().optional(),children:z.any().optional(),id:z.string().optional(),"aria-label":z.string().optional(),"aria-labelledby":z.string().optional(),"aria-describedby":z.string().optional(),"aria-live":z.enum(["off","polite","assertive"]).optional(),"aria-hidden":z.boolean().optional(),"data-testid":z.string().optional()});var ut=z.enum(["default","primary"]),mt=z.enum(["sm","md","lg","xl"]),bt=z.enum(["page","true","location"]),ft=z.enum(["h1","h2","h3","h4"]),la=z.enum(["top","bottom"]),da=V.extend({children:z.custom(),isCollapsed:z.boolean().optional(),defaultCollapsed:z.boolean().optional().default(false),onCollapsedChange:z.custom().optional(),isMobileOpen:z.boolean().optional(),onMobileOpenChange:z.custom().optional(),mobileBreakpoint:z.number().optional().default(768)}),ca=V.extend({children:z.custom(),"aria-label":z.string(),variant:ut.optional().default("default"),showActiveIndicator:z.boolean().optional().default(true)}),pa=V.extend({id:z.string(),label:z.string(),icon:z.custom(),href:z.string().optional(),badgeCount:z.number().optional(),isActive:z.boolean().optional(),currentType:bt.optional().default("page"),isDisabled:z.boolean().optional(),onPress:z.custom().optional(),children:z.custom().optional(),placement:la.optional().default("top")}),ua=V.extend({children:z.custom()}),ma=V.extend({children:z.custom(),width:mt.optional().default("md"),"aria-label":z.string(),skeleton:z.custom().optional()}),ba=V.extend({title:z.string().optional(),icon:z.custom().optional(),children:z.custom().optional(),as:ft.optional().default("h2")}),fa=V.extend({});export{ia as Sidebar,fa as SidebarCollapseButtonPropsSchema,bt as SidebarCurrentTypeSchema,ft as SidebarPanelHeaderLevelSchema,ba as SidebarPanelHeaderPropsSchema,ma as SidebarPanelPropsSchema,mt as SidebarPanelWidthSchema,ua as SidebarPopoverPropsSchema,da as SidebarPropsSchema,pa as SidebarRailItemPropsSchema,ca as SidebarRailPropsSchema,ut as SidebarRailVariantSchema,Z as sidebarCollapseButtonVariants,ge as sidebarMobileDrawerHeaderVariants,ve as sidebarMobileDrawerVariants,fe as sidebarMobileOverlayVariants,Se as sidebarMobileRailItemVariants,xe as sidebarMobileRailVariants,be as sidebarPanelHeaderTitleVariants,me as sidebarPanelHeaderVariants,ue as sidebarPanelVariants,X as sidebarPopoverVariants,j as sidebarRailItemBadgeVariants,ce as sidebarRailItemIconVariants,pe as sidebarRailItemLabelVariants,te as sidebarRailItemVariants,ee as sidebarRailToolbarVariants,de as sidebarRailVariants,le as sidebarRootVariants};//# sourceMappingURL=index.mjs.map
3
3
  //# sourceMappingURL=index.mjs.map