@jacshuo/onyx 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +358 -361
- package/dist/Extras/DateTimePicker.cjs +1 -0
- package/dist/Extras/DateTimePicker.css +1 -0
- package/dist/Extras/DateTimePicker.d.cts +5 -0
- package/dist/Extras/DateTimePicker.d.ts +5 -0
- package/dist/Extras/DateTimePicker.js +1 -0
- package/dist/Extras/index.cjs +4 -4
- package/dist/Extras/index.css +1 -1
- package/dist/Extras/index.d.cts +5 -0
- package/dist/Extras/index.d.ts +5 -0
- package/dist/Extras/index.js +4 -4
- package/dist/Navigation/SideNav.cjs +1 -1
- package/dist/Navigation/SideNav.js +1 -1
- package/dist/Navigation/index.cjs +2 -2
- package/dist/Navigation/index.js +2 -2
- package/dist/Primitives/Dropdown.cjs +1 -1
- package/dist/Primitives/Dropdown.js +1 -1
- package/dist/Primitives/Input.cjs +1 -1
- package/dist/Primitives/Input.js +1 -1
- package/dist/Primitives/Slider.cjs +1 -1
- package/dist/Primitives/Slider.js +1 -1
- package/dist/Primitives/index.cjs +1 -1
- package/dist/Primitives/index.js +1 -1
- package/dist/_tsup-dts-rollup.d.cts +165 -3
- package/dist/_tsup-dts-rollup.d.ts +165 -3
- package/dist/index.cjs +5 -5
- package/dist/index.css +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -5
- package/dist/styles/Extras/DateTimePicker.css +566 -0
- package/dist/styles/base.css +39 -12
- package/dist/styles.css +497 -12
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var ce=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ce__default=/*#__PURE__*/_interopDefault(ce);function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var L="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",G="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",I="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",R="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function ye({to:e,className:s,style:o,children:l}){let c=typeof s=="function"?s({isActive:false}):s;return jsxRuntime.jsx("a",{href:e,className:c,style:o,children:l})}var H=["expanded","icons","mini"];function ve(e){let s=H.indexOf(e);return H[(s+1)%H.length]}function U(e){let s=new Set;for(let o of e)if(o.children&&o.children.length>0){s.add(o.key??o.label);for(let l of U(o.children))s.add(l);}return s}function V({item:e,basePath:s,depth:o,onItemClick:l,LinkComponent:c,showLines:f,expandedKeys:u,onToggle:h}){let b=e.key??e.label,P=e.children&&e.children.length>0,[T,x]=ce.useState(e.defaultOpen??true),k=u?u.has(b):T,r=ce.useCallback(()=>{u?h(b):x(d=>!d);},[u,h,b]),m=o>0?`${o*1.25}rem`:void 0;if(P)return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("button",{type:"button",onClick:r,className:i(L,I,"justify-between"),style:{paddingLeft:m},children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",k&&"rotate-90")})]}),k&&jsxRuntime.jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",f?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(d=>jsxRuntime.jsx(V,{item:d,basePath:s,depth:o+1,onItemClick:l,LinkComponent:c,showLines:f,expandedKeys:u,onToggle:h},d.key??d.path??d.label))})]});if(e.path!=null){let d=s+e.path;return l?jsxRuntime.jsxs("button",{type:"button",onClick:()=>l(e,d),className:i(L,I),style:{paddingLeft:m},children:[e.icon,e.label]}):jsxRuntime.jsxs(c,{to:d,className:({isActive:N})=>i(L,N?G:I),style:{paddingLeft:m},children:[e.icon,e.label]})}return jsxRuntime.jsxs("span",{className:i(L,I,"cursor-default"),style:{paddingLeft:m},children:[e.icon,e.label]})}function he({item:e,basePath:s,onItemClick:o,LinkComponent:l}){let[c,f]=ce.useState(false),u=ce.useRef(null),h=ce.useRef(void 0),[b,P]=ce.useState({top:0,left:0}),T=()=>{clearTimeout(h.current),f(true);},x=()=>{h.current=setTimeout(()=>f(false),200);};ce.useLayoutEffect(()=>{if(c&&u.current){let r=u.current.getBoundingClientRect();P({top:r.top,left:r.right+4});}},[c]);let k=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxRuntime.jsxs("div",{onMouseEnter:T,onMouseLeave:x,children:[jsxRuntime.jsx("button",{ref:u,type:"button",className:i(R,"w-full"),title:e.label,onClick:()=>f(r=>!r),children:k}),c&&reactDom.createPortal(jsxRuntime.jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:b.top,left:b.left},onMouseEnter:T,onMouseLeave:x,children:[jsxRuntime.jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsxRuntime.jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(r=>{let m=r.key??r.path??r.label;if(r.path!=null){let d=s+r.path;return o?jsxRuntime.jsxs("button",{type:"button",onClick:()=>{o(r,d),f(false);},className:i(L,I),children:[r.icon,r.label]},m):jsxRuntime.jsxs(l,{to:d,className:({isActive:N})=>i(L,N?G:I),children:[r.icon,r.label]},m)}return jsxRuntime.jsxs("span",{className:i(L,"cursor-default text-primary-400"),children:[r.icon,r.label]},m)})})]}),document.body)]})}function ge({item:e,basePath:s,onItemClick:o,LinkComponent:l}){let c=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let f=s+e.path;return o?jsxRuntime.jsx("button",{type:"button",onClick:()=>o(e,f),className:i(R,"w-full"),title:e.label,children:c}):jsxRuntime.jsx(l,{to:f,className:({isActive:u})=>i(R,"w-full",u&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsxRuntime.jsx("span",{title:e.label,children:c})})}return jsxRuntime.jsx("span",{className:i(R,"w-full cursor-default"),title:e.label,children:c})}function Le({items:e,title:s,basePath:o="/",onItemClick:l,LinkComponent:c=ye,collapsible:f,collapseMode:u,defaultCollapseMode:h="expanded",onCollapseModeChange:b,showLines:P=true,expandedKeys:T,defaultExpandedKeys:x="all",onExpandedKeysChange:k,className:r,responsive:m=true,mobileBreakpoint:d=768,mobileTopOffset:N=48,...W}){let[q,F]=ce.useState(h),y=u??q,Q=ce__default.default.useMemo(()=>U(e),[e]),[_,J]=ce.useState(()=>x==="all"?new Set(Q):new Set(x)),z=T??null,B=z??_,Z=ce.useCallback(t=>{let a=new Set(B);a.has(t)?a.delete(t):a.add(t),J(a),k?.(a);},[B,k]),ee=ce.useCallback(()=>{let t=ve(y);F(t),b?.(t);},[y,b]),[E,te]=ce.useState(()=>m&&typeof window<"u"&&window.innerWidth<d),[K,C]=ce.useState(false);ce.useEffect(()=>{if(!m||typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(`(max-width: ${d-1}px)`),a=v=>{te(v.matches),v.matches||C(false);};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[m,d]);let ne=ce.useCallback(t=>{t.target.closest("a")&&C(false);},[]),S=ce.useRef(null),g=ce.useRef({startX:0,startY:0,dragging:false}),oe=ce.useCallback(t=>{let a=t.touches[0];g.current={startX:a.clientX,startY:a.clientY,dragging:true};},[]),re=ce.useCallback(t=>{if(!g.current.dragging||!S.current)return;let a=t.touches[0],v=a.clientX-g.current.startX,Y=a.clientY-g.current.startY;v>=0||Math.abs(Y)>Math.abs(v)||(S.current.style.transform=`translateX(${Math.max(v,-224)}px)`,S.current.style.transition="none");},[]),se=ce.useCallback(t=>{if(!g.current.dragging||!S.current)return;g.current.dragging=false;let a=t.changedTouches[0],v=a.clientX-g.current.startX,Y=a.clientY-g.current.startY;S.current.style.transition="",S.current.style.transform="",v<-60&&Math.abs(v)>Math.abs(Y)&&C(false);},[]),X=ce.useMemo(()=>!E||!l?l:(t,a)=>{C(false),l(t,a);},[E,l]),$=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[f&&!E&&jsxRuntime.jsx("div",{className:i("flex shrink-0 mb-1",y==="expanded"?"justify-end":"justify-center"),children:jsxRuntime.jsx("button",{type:"button",onClick:ee,className:R,"aria-label":y==="mini"?"Expand sidebar":"Collapse sidebar",title:y==="mini"?"Expand sidebar":"Collapse sidebar",children:y==="mini"?jsxRuntime.jsx(lucideReact.Menu,{className:"h-5 w-5"}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:"h-4 w-4"})})}),(E||y==="expanded")&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[s&&jsxRuntime.jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:s}),e.map(t=>jsxRuntime.jsx(V,{item:t,basePath:o,depth:0,onItemClick:X,LinkComponent:c,showLines:P,expandedKeys:z,onToggle:Z},t.key??t.path??t.label))]}),!E&&y==="icons"&&e.map(t=>{let a=t.key??t.path??t.label;return t.children&&t.children.length>0?jsxRuntime.jsx(he,{item:t,basePath:o,onItemClick:X,LinkComponent:c},a):jsxRuntime.jsx(ge,{item:t,basePath:o,onItemClick:X,LinkComponent:c},a)})]});return m&&E?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[K&&reactDom.createPortal(jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:N},onClick:()=>C(false)}),document.body),reactDom.createPortal(jsxRuntime.jsxs("aside",{ref:S,className:i("fixed bottom-0 left-0 z-50 flex flex-col w-56 border-r border-primary-200 dark:border-primary-700 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",K?"translate-x-0":"-translate-x-full"),style:{top:N},onClick:ne,onTouchStart:oe,onTouchMove:re,onTouchEnd:se,children:[jsxRuntime.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsxRuntime.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsxRuntime.jsx("button",{type:"button",onClick:t=>{t.stopPropagation(),C(false);},className:i(R,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsxRuntime.jsx("nav",{className:"flex flex-col gap-0.5",children:$})})]}),document.body),!K&&reactDom.createPortal(jsxRuntime.jsx("button",{type:"button",className:"fixed left-0 z-50 flex h-14 w-5 items-center justify-center rounded-r-xl bg-primary-800/80 text-white shadow-md backdrop-blur-sm transition-colors hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",style:{top:`calc(50% + ${N/2}px)`,transform:"translateY(-50%)"},onClick:()=>C(true),"aria-label":"Open navigation",children:jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3.5 w-3.5"})}),document.body)]}):jsxRuntime.jsx("nav",{className:i("flex flex-col gap-0.5",y==="mini"&&"items-center",r),...W,children:$})}exports.SideNav=Le;
|
|
1
|
+
'use strict';var Ce=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ce__default=/*#__PURE__*/_interopDefault(Ce);function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var R="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",ae="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",D="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",A="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function Ye({to:e,className:l,style:a,children:c}){let d=typeof l=="function"?l({isActive:false}):l;return jsxRuntime.jsx("a",{href:e,className:d,style:a,children:c})}var V=["expanded","icons","mini"];function Xe(e){let l=V.indexOf(e);return V[(l+1)%V.length]}function oe(e){let l=new Set;for(let a of e)if(a.children&&a.children.length>0){l.add(a.key??a.label);for(let c of oe(a.children))l.add(c);}return l}function se({item:e,basePath:l,depth:a,onItemClick:c,LinkComponent:d,showLines:y,expandedKeys:f,onToggle:N}){let v=e.key??e.label,O=e.children&&e.children.length>0,[Y,E]=Ce.useState(e.defaultOpen??true),P=f?f.has(v):Y,o=Ce.useCallback(()=>{f?N(v):E(p=>!p);},[f,N,v]),b=a>0?`${a*1.25}rem`:void 0;if(O)return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("button",{type:"button",onClick:o,className:i(R,D,"justify-between"),style:{paddingLeft:b},children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",P&&"rotate-90")})]}),P&&jsxRuntime.jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",y?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(p=>jsxRuntime.jsx(se,{item:p,basePath:l,depth:a+1,onItemClick:c,LinkComponent:d,showLines:y,expandedKeys:f,onToggle:N},p.key??p.path??p.label))})]});if(e.path!=null){let p=l+e.path;return c?jsxRuntime.jsxs("button",{type:"button",onClick:()=>c(e,p),className:i(R,D),style:{paddingLeft:b},children:[e.icon,e.label]}):jsxRuntime.jsxs(d,{to:p,className:({isActive:x})=>i(R,x?ae:D),style:{paddingLeft:b},children:[e.icon,e.label]})}return jsxRuntime.jsxs("span",{className:i(R,D,"cursor-default"),style:{paddingLeft:b},children:[e.icon,e.label]})}function He({item:e,basePath:l,onItemClick:a,LinkComponent:c}){let[d,y]=Ce.useState(false),f=Ce.useRef(null),N=Ce.useRef(void 0),[v,O]=Ce.useState({top:0,left:0}),Y=()=>{clearTimeout(N.current),y(true);},E=()=>{N.current=setTimeout(()=>y(false),200);};Ce.useLayoutEffect(()=>{if(d&&f.current){let o=f.current.getBoundingClientRect();O({top:o.top,left:o.right+4});}},[d]);let P=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxRuntime.jsxs("div",{onMouseEnter:Y,onMouseLeave:E,children:[jsxRuntime.jsx("button",{ref:f,type:"button",className:i(A,"w-full"),title:e.label,onClick:()=>y(o=>!o),children:P}),d&&reactDom.createPortal(jsxRuntime.jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:v.top,left:v.left},onMouseEnter:Y,onMouseLeave:E,children:[jsxRuntime.jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsxRuntime.jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(o=>{let b=o.key??o.path??o.label;if(o.path!=null){let p=l+o.path;return a?jsxRuntime.jsxs("button",{type:"button",onClick:()=>{a(o,p),y(false);},className:i(R,D),children:[o.icon,o.label]},b):jsxRuntime.jsxs(c,{to:p,className:({isActive:x})=>i(R,x?ae:D),children:[o.icon,o.label]},b)}return jsxRuntime.jsxs("span",{className:i(R,"cursor-default text-primary-400"),children:[o.icon,o.label]},b)})})]}),document.body)]})}function De({item:e,basePath:l,onItemClick:a,LinkComponent:c}){let d=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let y=l+e.path;return a?jsxRuntime.jsx("button",{type:"button",onClick:()=>a(e,y),className:i(A,"w-full"),title:e.label,children:d}):jsxRuntime.jsx(c,{to:y,className:({isActive:f})=>i(A,"w-full",f&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsxRuntime.jsx("span",{title:e.label,children:d})})}return jsxRuntime.jsx("span",{className:i(A,"w-full cursor-default"),title:e.label,children:d})}function We({items:e,title:l,basePath:a="/",onItemClick:c,LinkComponent:d=Ye,collapsible:y,collapseMode:f,defaultCollapseMode:N="expanded",onCollapseModeChange:v,showLines:O=true,expandedKeys:Y,defaultExpandedKeys:E="all",onExpandedKeysChange:P,className:o,responsive:b=true,mobileBreakpoint:p=768,mobileTopOffset:x=48,mobileDrawerSlot:q,...ie}){let[le,ce]=Ce.useState(N),w=f??le,de=Ce__default.default.useMemo(()=>oe(e),[e]),[pe,ue]=Ce.useState(()=>E==="all"?new Set(de):new Set(E)),F=Y??null,Q=F??pe,me=Ce.useCallback(t=>{let r=new Set(Q);r.has(t)?r.delete(t):r.add(t),ue(r),P?.(r);},[Q,P]),fe=Ce.useCallback(()=>{let t=Xe(w);ce(t),v?.(t);},[w,v]),[X,be]=Ce.useState(()=>b&&typeof window<"u"&&window.innerWidth<p),[W,S]=Ce.useState(false),[g,ye]=Ce.useState(()=>{if(typeof window>"u")return "left";try{return localStorage.getItem("onyx-sidenav-side")||"left"}catch{return "left"}}),[J,ge]=Ce.useState(()=>{if(typeof window>"u")return 50;try{return Number(localStorage.getItem("onyx-sidenav-top"))||50}catch{return 50}}),[H,U]=Ce.useState(null),k=Ce.useRef({dragging:false,startX:0,startY:0,moved:false}),he=Ce.useCallback(t=>{if(t.pointerType==="mouse"&&t.button!==0)return;t.preventDefault(),k.current={dragging:true,startX:t.clientX,startY:t.clientY,moved:false};let r=m=>{if(!k.current.dragging)return;let T=Math.abs(m.clientX-k.current.startX),K=Math.abs(m.clientY-k.current.startY);if((T>6||K>6)&&(k.current.moved=true),!k.current.moved)return;let I=m.clientX<window.innerWidth/2?"left":"right",te=x+28,B=window.innerHeight-28,j=Math.max(te,Math.min(B,m.clientY));U({side:I,y:j});},s=m=>{if(window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",s),window.removeEventListener("pointercancel",s),!k.current.dragging)return;if(k.current.dragging=false,!k.current.moved){let j=ne=>{ne.stopPropagation(),ne.preventDefault(),window.removeEventListener("click",j,true);};window.addEventListener("click",j,true),U(null),S(true);return}let T=m.clientX<window.innerWidth/2?"left":"right",K=x+28,I=window.innerHeight-28,B=Math.max(K,Math.min(I,m.clientY))/window.innerHeight*100;ye(T),ge(B),U(null);try{localStorage.setItem("onyx-sidenav-side",T),localStorage.setItem("onyx-sidenav-top",String(B));}catch{}};window.addEventListener("pointermove",r),window.addEventListener("pointerup",s),window.addEventListener("pointercancel",s);},[x]);Ce.useEffect(()=>{if(!b||typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(`(max-width: ${p-1}px)`),r=s=>{be(s.matches),s.matches||S(false);};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[b,p]);let ve=Ce.useCallback(t=>{t.target.closest("a")&&S(false);},[]),C=Ce.useRef(null),M=Ce.useRef({startX:0,startY:0,dragging:false}),Z=60,xe=Ce.useCallback(t=>{let r=t.touches[0];M.current={startX:r.clientX,startY:r.clientY,dragging:true};},[]),we=Ce.useCallback(t=>{if(!M.current.dragging||!C.current)return;let r=t.touches[0],s=r.clientX-M.current.startX,m=r.clientY-M.current.startY;if(g==="left"){if(s>=0||Math.abs(m)>Math.abs(s))return;C.current.style.transform=`translateX(${Math.max(s,-224)}px)`;}else {if(s<=0||Math.abs(m)>Math.abs(s))return;C.current.style.transform=`translateX(${Math.min(s,224)}px)`;}C.current.style.transition="none";},[g]),ke=Ce.useCallback(t=>{if(!M.current.dragging||!C.current)return;M.current.dragging=false;let r=t.changedTouches[0],s=r.clientX-M.current.startX,m=r.clientY-M.current.startY;C.current.style.transition="",C.current.style.transform="",Math.abs(s)>Math.abs(m)&&(g==="left"&&s<-Z&&S(false),g==="right"&&s>Z&&S(false));},[g]),G=Ce.useMemo(()=>!X||!c?c:(t,r)=>{S(false),c(t,r);},[X,c]),ee=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[y&&!X&&jsxRuntime.jsx("div",{className:i("flex shrink-0 mb-1",w==="expanded"?"justify-end":"justify-center"),children:jsxRuntime.jsx("button",{type:"button",onClick:fe,className:A,"aria-label":w==="mini"?"Expand sidebar":"Collapse sidebar",title:w==="mini"?"Expand sidebar":"Collapse sidebar",children:w==="mini"?jsxRuntime.jsx(lucideReact.Menu,{className:"h-5 w-5"}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:"h-4 w-4"})})}),(X||w==="expanded")&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[l&&jsxRuntime.jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:l}),e.map(t=>jsxRuntime.jsx(se,{item:t,basePath:a,depth:0,onItemClick:G,LinkComponent:d,showLines:O,expandedKeys:F,onToggle:me},t.key??t.path??t.label))]}),!X&&w==="icons"&&e.map(t=>{let r=t.key??t.path??t.label;return t.children&&t.children.length>0?jsxRuntime.jsx(He,{item:t,basePath:a,onItemClick:G,LinkComponent:d},r):jsxRuntime.jsx(De,{item:t,basePath:a,onItemClick:G,LinkComponent:d},r)})]});if(b&&X){let t=H?H.side:g,r=H?H.y:J/100*(typeof window<"u"?window.innerHeight:600),s=H?{top:r,transform:"translateY(-50%)",transition:"none",...t==="left"?{left:0}:{right:0}}:{top:`${J}%`,transform:"translateY(-50%)",transition:"top 0.15s ease",...g==="left"?{left:0}:{right:0}},m=g==="left"?{left:0,right:"auto"}:{right:0,left:"auto"},T=W?"translate-x-0":g==="left"?"-translate-x-full":"translate-x-full",K=g==="left"?"border-r":"border-l";return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[W&&reactDom.createPortal(jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:x},onClick:()=>S(false)}),document.body),reactDom.createPortal(jsxRuntime.jsxs("aside",{ref:C,className:i("fixed bottom-0 z-50 flex flex-col w-56 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",K,"border-primary-200 dark:border-primary-700",T),style:{top:x,...m},onClick:ve,onTouchStart:xe,onTouchMove:we,onTouchEnd:ke,children:[jsxRuntime.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsxRuntime.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsxRuntime.jsx("button",{type:"button",onClick:I=>{I.stopPropagation(),S(false);},className:i(A,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"})})]}),q&&jsxRuntime.jsx("div",{className:"shrink-0 border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:q}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsxRuntime.jsx("nav",{className:"flex flex-col gap-0.5",children:ee})})]}),document.body),!W&&reactDom.createPortal(jsxRuntime.jsx("div",{className:i("fixed z-50 flex items-center",t==="left"?"justify-start":"justify-end",H?"cursor-grabbing":"cursor-grab"),style:{...s,width:44,height:80,marginTop:-12,touchAction:"none",userSelect:"none"},onPointerDown:he,onDragStart:I=>I.preventDefault(),role:"button","aria-label":"Open navigation",tabIndex:0,children:jsxRuntime.jsx("div",{className:i("flex h-16 w-6 items-center justify-center","bg-primary-800/80 text-white shadow-md backdrop-blur-sm","hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",t==="left"?"rounded-r-xl":"rounded-l-xl"),children:t==="left"?jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.ChevronLeft,{className:"h-4 w-4"})})}),document.body)]})}return jsxRuntime.jsx("nav",{className:i("flex flex-col gap-0.5",w==="mini"&&"items-center",o),...ie,children:ee})}exports.SideNav=We;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import ce,{useState,useCallback,useEffect,useRef,useMemo,useLayoutEffect}from'react';import {createPortal}from'react-dom';import {Menu,ChevronsLeft,X,ChevronRight}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,Fragment,jsx}from'react/jsx-runtime';function i(...e){return twMerge(clsx(e))}var L="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",G="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",I="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",R="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function ye({to:e,className:s,style:o,children:l}){let c=typeof s=="function"?s({isActive:false}):s;return jsx("a",{href:e,className:c,style:o,children:l})}var H=["expanded","icons","mini"];function ve(e){let s=H.indexOf(e);return H[(s+1)%H.length]}function U(e){let s=new Set;for(let o of e)if(o.children&&o.children.length>0){s.add(o.key??o.label);for(let l of U(o.children))s.add(l);}return s}function V({item:e,basePath:s,depth:o,onItemClick:l,LinkComponent:c,showLines:f,expandedKeys:u,onToggle:h}){let b=e.key??e.label,P=e.children&&e.children.length>0,[T,x]=useState(e.defaultOpen??true),k=u?u.has(b):T,r=useCallback(()=>{u?h(b):x(d=>!d);},[u,h,b]),m=o>0?`${o*1.25}rem`:void 0;if(P)return jsxs("div",{children:[jsxs("button",{type:"button",onClick:r,className:i(L,I,"justify-between"),style:{paddingLeft:m},children:[jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsx(ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",k&&"rotate-90")})]}),k&&jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",f?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(d=>jsx(V,{item:d,basePath:s,depth:o+1,onItemClick:l,LinkComponent:c,showLines:f,expandedKeys:u,onToggle:h},d.key??d.path??d.label))})]});if(e.path!=null){let d=s+e.path;return l?jsxs("button",{type:"button",onClick:()=>l(e,d),className:i(L,I),style:{paddingLeft:m},children:[e.icon,e.label]}):jsxs(c,{to:d,className:({isActive:N})=>i(L,N?G:I),style:{paddingLeft:m},children:[e.icon,e.label]})}return jsxs("span",{className:i(L,I,"cursor-default"),style:{paddingLeft:m},children:[e.icon,e.label]})}function he({item:e,basePath:s,onItemClick:o,LinkComponent:l}){let[c,f]=useState(false),u=useRef(null),h=useRef(void 0),[b,P]=useState({top:0,left:0}),T=()=>{clearTimeout(h.current),f(true);},x=()=>{h.current=setTimeout(()=>f(false),200);};useLayoutEffect(()=>{if(c&&u.current){let r=u.current.getBoundingClientRect();P({top:r.top,left:r.right+4});}},[c]);let k=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxs("div",{onMouseEnter:T,onMouseLeave:x,children:[jsx("button",{ref:u,type:"button",className:i(R,"w-full"),title:e.label,onClick:()=>f(r=>!r),children:k}),c&&createPortal(jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:b.top,left:b.left},onMouseEnter:T,onMouseLeave:x,children:[jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(r=>{let m=r.key??r.path??r.label;if(r.path!=null){let d=s+r.path;return o?jsxs("button",{type:"button",onClick:()=>{o(r,d),f(false);},className:i(L,I),children:[r.icon,r.label]},m):jsxs(l,{to:d,className:({isActive:N})=>i(L,N?G:I),children:[r.icon,r.label]},m)}return jsxs("span",{className:i(L,"cursor-default text-primary-400"),children:[r.icon,r.label]},m)})})]}),document.body)]})}function ge({item:e,basePath:s,onItemClick:o,LinkComponent:l}){let c=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let f=s+e.path;return o?jsx("button",{type:"button",onClick:()=>o(e,f),className:i(R,"w-full"),title:e.label,children:c}):jsx(l,{to:f,className:({isActive:u})=>i(R,"w-full",u&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsx("span",{title:e.label,children:c})})}return jsx("span",{className:i(R,"w-full cursor-default"),title:e.label,children:c})}function Le({items:e,title:s,basePath:o="/",onItemClick:l,LinkComponent:c=ye,collapsible:f,collapseMode:u,defaultCollapseMode:h="expanded",onCollapseModeChange:b,showLines:P=true,expandedKeys:T,defaultExpandedKeys:x="all",onExpandedKeysChange:k,className:r,responsive:m=true,mobileBreakpoint:d=768,mobileTopOffset:N=48,...W}){let[q,F]=useState(h),y=u??q,Q=ce.useMemo(()=>U(e),[e]),[_,J]=useState(()=>x==="all"?new Set(Q):new Set(x)),z=T??null,B=z??_,Z=useCallback(t=>{let a=new Set(B);a.has(t)?a.delete(t):a.add(t),J(a),k?.(a);},[B,k]),ee=useCallback(()=>{let t=ve(y);F(t),b?.(t);},[y,b]),[E,te]=useState(()=>m&&typeof window<"u"&&window.innerWidth<d),[K,C]=useState(false);useEffect(()=>{if(!m||typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(`(max-width: ${d-1}px)`),a=v=>{te(v.matches),v.matches||C(false);};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[m,d]);let ne=useCallback(t=>{t.target.closest("a")&&C(false);},[]),S=useRef(null),g=useRef({startX:0,startY:0,dragging:false}),oe=useCallback(t=>{let a=t.touches[0];g.current={startX:a.clientX,startY:a.clientY,dragging:true};},[]),re=useCallback(t=>{if(!g.current.dragging||!S.current)return;let a=t.touches[0],v=a.clientX-g.current.startX,Y=a.clientY-g.current.startY;v>=0||Math.abs(Y)>Math.abs(v)||(S.current.style.transform=`translateX(${Math.max(v,-224)}px)`,S.current.style.transition="none");},[]),se=useCallback(t=>{if(!g.current.dragging||!S.current)return;g.current.dragging=false;let a=t.changedTouches[0],v=a.clientX-g.current.startX,Y=a.clientY-g.current.startY;S.current.style.transition="",S.current.style.transform="",v<-60&&Math.abs(v)>Math.abs(Y)&&C(false);},[]),X$1=useMemo(()=>!E||!l?l:(t,a)=>{C(false),l(t,a);},[E,l]),$=jsxs(Fragment,{children:[f&&!E&&jsx("div",{className:i("flex shrink-0 mb-1",y==="expanded"?"justify-end":"justify-center"),children:jsx("button",{type:"button",onClick:ee,className:R,"aria-label":y==="mini"?"Expand sidebar":"Collapse sidebar",title:y==="mini"?"Expand sidebar":"Collapse sidebar",children:y==="mini"?jsx(Menu,{className:"h-5 w-5"}):jsx(ChevronsLeft,{className:"h-4 w-4"})})}),(E||y==="expanded")&&jsxs(Fragment,{children:[s&&jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:s}),e.map(t=>jsx(V,{item:t,basePath:o,depth:0,onItemClick:X$1,LinkComponent:c,showLines:P,expandedKeys:z,onToggle:Z},t.key??t.path??t.label))]}),!E&&y==="icons"&&e.map(t=>{let a=t.key??t.path??t.label;return t.children&&t.children.length>0?jsx(he,{item:t,basePath:o,onItemClick:X$1,LinkComponent:c},a):jsx(ge,{item:t,basePath:o,onItemClick:X$1,LinkComponent:c},a)})]});return m&&E?jsxs(Fragment,{children:[K&&createPortal(jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:N},onClick:()=>C(false)}),document.body),createPortal(jsxs("aside",{ref:S,className:i("fixed bottom-0 left-0 z-50 flex flex-col w-56 border-r border-primary-200 dark:border-primary-700 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",K?"translate-x-0":"-translate-x-full"),style:{top:N},onClick:ne,onTouchStart:oe,onTouchMove:re,onTouchEnd:se,children:[jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsx("button",{type:"button",onClick:t=>{t.stopPropagation(),C(false);},className:i(R,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsx(X,{className:"h-4 w-4"})})]}),jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsx("nav",{className:"flex flex-col gap-0.5",children:$})})]}),document.body),!K&&createPortal(jsx("button",{type:"button",className:"fixed left-0 z-50 flex h-14 w-5 items-center justify-center rounded-r-xl bg-primary-800/80 text-white shadow-md backdrop-blur-sm transition-colors hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",style:{top:`calc(50% + ${N/2}px)`,transform:"translateY(-50%)"},onClick:()=>C(true),"aria-label":"Open navigation",children:jsx(ChevronRight,{className:"h-3.5 w-3.5"})}),document.body)]}):jsx("nav",{className:i("flex flex-col gap-0.5",y==="mini"&&"items-center",r),...W,children:$})}export{Le as SideNav};
|
|
1
|
+
import Ce,{useState,useCallback,useRef,useEffect,useMemo,useLayoutEffect}from'react';import {createPortal}from'react-dom';import {Menu,ChevronsLeft,X,ChevronRight,ChevronLeft}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,Fragment,jsx}from'react/jsx-runtime';function i(...e){return twMerge(clsx(e))}var R="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",ae="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",D="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",A="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function Ye({to:e,className:l,style:a,children:c}){let d=typeof l=="function"?l({isActive:false}):l;return jsx("a",{href:e,className:d,style:a,children:c})}var V=["expanded","icons","mini"];function Xe(e){let l=V.indexOf(e);return V[(l+1)%V.length]}function oe(e){let l=new Set;for(let a of e)if(a.children&&a.children.length>0){l.add(a.key??a.label);for(let c of oe(a.children))l.add(c);}return l}function se({item:e,basePath:l,depth:a,onItemClick:c,LinkComponent:d,showLines:y,expandedKeys:f,onToggle:N}){let v=e.key??e.label,O=e.children&&e.children.length>0,[Y,E]=useState(e.defaultOpen??true),P=f?f.has(v):Y,o=useCallback(()=>{f?N(v):E(p=>!p);},[f,N,v]),b=a>0?`${a*1.25}rem`:void 0;if(O)return jsxs("div",{children:[jsxs("button",{type:"button",onClick:o,className:i(R,D,"justify-between"),style:{paddingLeft:b},children:[jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsx(ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",P&&"rotate-90")})]}),P&&jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",y?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(p=>jsx(se,{item:p,basePath:l,depth:a+1,onItemClick:c,LinkComponent:d,showLines:y,expandedKeys:f,onToggle:N},p.key??p.path??p.label))})]});if(e.path!=null){let p=l+e.path;return c?jsxs("button",{type:"button",onClick:()=>c(e,p),className:i(R,D),style:{paddingLeft:b},children:[e.icon,e.label]}):jsxs(d,{to:p,className:({isActive:x})=>i(R,x?ae:D),style:{paddingLeft:b},children:[e.icon,e.label]})}return jsxs("span",{className:i(R,D,"cursor-default"),style:{paddingLeft:b},children:[e.icon,e.label]})}function He({item:e,basePath:l,onItemClick:a,LinkComponent:c}){let[d,y]=useState(false),f=useRef(null),N=useRef(void 0),[v,O]=useState({top:0,left:0}),Y=()=>{clearTimeout(N.current),y(true);},E=()=>{N.current=setTimeout(()=>y(false),200);};useLayoutEffect(()=>{if(d&&f.current){let o=f.current.getBoundingClientRect();O({top:o.top,left:o.right+4});}},[d]);let P=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxs("div",{onMouseEnter:Y,onMouseLeave:E,children:[jsx("button",{ref:f,type:"button",className:i(A,"w-full"),title:e.label,onClick:()=>y(o=>!o),children:P}),d&&createPortal(jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:v.top,left:v.left},onMouseEnter:Y,onMouseLeave:E,children:[jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(o=>{let b=o.key??o.path??o.label;if(o.path!=null){let p=l+o.path;return a?jsxs("button",{type:"button",onClick:()=>{a(o,p),y(false);},className:i(R,D),children:[o.icon,o.label]},b):jsxs(c,{to:p,className:({isActive:x})=>i(R,x?ae:D),children:[o.icon,o.label]},b)}return jsxs("span",{className:i(R,"cursor-default text-primary-400"),children:[o.icon,o.label]},b)})})]}),document.body)]})}function De({item:e,basePath:l,onItemClick:a,LinkComponent:c}){let d=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let y=l+e.path;return a?jsx("button",{type:"button",onClick:()=>a(e,y),className:i(A,"w-full"),title:e.label,children:d}):jsx(c,{to:y,className:({isActive:f})=>i(A,"w-full",f&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsx("span",{title:e.label,children:d})})}return jsx("span",{className:i(A,"w-full cursor-default"),title:e.label,children:d})}function We({items:e,title:l,basePath:a="/",onItemClick:c,LinkComponent:d=Ye,collapsible:y,collapseMode:f,defaultCollapseMode:N="expanded",onCollapseModeChange:v,showLines:O=true,expandedKeys:Y,defaultExpandedKeys:E="all",onExpandedKeysChange:P,className:o,responsive:b=true,mobileBreakpoint:p=768,mobileTopOffset:x=48,mobileDrawerSlot:q,...ie}){let[le,ce]=useState(N),w=f??le,de=Ce.useMemo(()=>oe(e),[e]),[pe,ue]=useState(()=>E==="all"?new Set(de):new Set(E)),F=Y??null,Q=F??pe,me=useCallback(t=>{let r=new Set(Q);r.has(t)?r.delete(t):r.add(t),ue(r),P?.(r);},[Q,P]),fe=useCallback(()=>{let t=Xe(w);ce(t),v?.(t);},[w,v]),[X$1,be]=useState(()=>b&&typeof window<"u"&&window.innerWidth<p),[W,S]=useState(false),[g,ye]=useState(()=>{if(typeof window>"u")return "left";try{return localStorage.getItem("onyx-sidenav-side")||"left"}catch{return "left"}}),[J,ge]=useState(()=>{if(typeof window>"u")return 50;try{return Number(localStorage.getItem("onyx-sidenav-top"))||50}catch{return 50}}),[H,U]=useState(null),k=useRef({dragging:false,startX:0,startY:0,moved:false}),he=useCallback(t=>{if(t.pointerType==="mouse"&&t.button!==0)return;t.preventDefault(),k.current={dragging:true,startX:t.clientX,startY:t.clientY,moved:false};let r=m=>{if(!k.current.dragging)return;let T=Math.abs(m.clientX-k.current.startX),K=Math.abs(m.clientY-k.current.startY);if((T>6||K>6)&&(k.current.moved=true),!k.current.moved)return;let I=m.clientX<window.innerWidth/2?"left":"right",te=x+28,B=window.innerHeight-28,j=Math.max(te,Math.min(B,m.clientY));U({side:I,y:j});},s=m=>{if(window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",s),window.removeEventListener("pointercancel",s),!k.current.dragging)return;if(k.current.dragging=false,!k.current.moved){let j=ne=>{ne.stopPropagation(),ne.preventDefault(),window.removeEventListener("click",j,true);};window.addEventListener("click",j,true),U(null),S(true);return}let T=m.clientX<window.innerWidth/2?"left":"right",K=x+28,I=window.innerHeight-28,B=Math.max(K,Math.min(I,m.clientY))/window.innerHeight*100;ye(T),ge(B),U(null);try{localStorage.setItem("onyx-sidenav-side",T),localStorage.setItem("onyx-sidenav-top",String(B));}catch{}};window.addEventListener("pointermove",r),window.addEventListener("pointerup",s),window.addEventListener("pointercancel",s);},[x]);useEffect(()=>{if(!b||typeof window>"u"||!window.matchMedia)return;let t=window.matchMedia(`(max-width: ${p-1}px)`),r=s=>{be(s.matches),s.matches||S(false);};return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[b,p]);let ve=useCallback(t=>{t.target.closest("a")&&S(false);},[]),C=useRef(null),M=useRef({startX:0,startY:0,dragging:false}),Z=60,xe=useCallback(t=>{let r=t.touches[0];M.current={startX:r.clientX,startY:r.clientY,dragging:true};},[]),we=useCallback(t=>{if(!M.current.dragging||!C.current)return;let r=t.touches[0],s=r.clientX-M.current.startX,m=r.clientY-M.current.startY;if(g==="left"){if(s>=0||Math.abs(m)>Math.abs(s))return;C.current.style.transform=`translateX(${Math.max(s,-224)}px)`;}else {if(s<=0||Math.abs(m)>Math.abs(s))return;C.current.style.transform=`translateX(${Math.min(s,224)}px)`;}C.current.style.transition="none";},[g]),ke=useCallback(t=>{if(!M.current.dragging||!C.current)return;M.current.dragging=false;let r=t.changedTouches[0],s=r.clientX-M.current.startX,m=r.clientY-M.current.startY;C.current.style.transition="",C.current.style.transform="",Math.abs(s)>Math.abs(m)&&(g==="left"&&s<-Z&&S(false),g==="right"&&s>Z&&S(false));},[g]),G=useMemo(()=>!X$1||!c?c:(t,r)=>{S(false),c(t,r);},[X$1,c]),ee=jsxs(Fragment,{children:[y&&!X$1&&jsx("div",{className:i("flex shrink-0 mb-1",w==="expanded"?"justify-end":"justify-center"),children:jsx("button",{type:"button",onClick:fe,className:A,"aria-label":w==="mini"?"Expand sidebar":"Collapse sidebar",title:w==="mini"?"Expand sidebar":"Collapse sidebar",children:w==="mini"?jsx(Menu,{className:"h-5 w-5"}):jsx(ChevronsLeft,{className:"h-4 w-4"})})}),(X$1||w==="expanded")&&jsxs(Fragment,{children:[l&&jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:l}),e.map(t=>jsx(se,{item:t,basePath:a,depth:0,onItemClick:G,LinkComponent:d,showLines:O,expandedKeys:F,onToggle:me},t.key??t.path??t.label))]}),!X$1&&w==="icons"&&e.map(t=>{let r=t.key??t.path??t.label;return t.children&&t.children.length>0?jsx(He,{item:t,basePath:a,onItemClick:G,LinkComponent:d},r):jsx(De,{item:t,basePath:a,onItemClick:G,LinkComponent:d},r)})]});if(b&&X$1){let t=H?H.side:g,r=H?H.y:J/100*(typeof window<"u"?window.innerHeight:600),s=H?{top:r,transform:"translateY(-50%)",transition:"none",...t==="left"?{left:0}:{right:0}}:{top:`${J}%`,transform:"translateY(-50%)",transition:"top 0.15s ease",...g==="left"?{left:0}:{right:0}},m=g==="left"?{left:0,right:"auto"}:{right:0,left:"auto"},T=W?"translate-x-0":g==="left"?"-translate-x-full":"translate-x-full",K=g==="left"?"border-r":"border-l";return jsxs(Fragment,{children:[W&&createPortal(jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:x},onClick:()=>S(false)}),document.body),createPortal(jsxs("aside",{ref:C,className:i("fixed bottom-0 z-50 flex flex-col w-56 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",K,"border-primary-200 dark:border-primary-700",T),style:{top:x,...m},onClick:ve,onTouchStart:xe,onTouchMove:we,onTouchEnd:ke,children:[jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsx("button",{type:"button",onClick:I=>{I.stopPropagation(),S(false);},className:i(A,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsx(X,{className:"h-4 w-4"})})]}),q&&jsx("div",{className:"shrink-0 border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:q}),jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsx("nav",{className:"flex flex-col gap-0.5",children:ee})})]}),document.body),!W&&createPortal(jsx("div",{className:i("fixed z-50 flex items-center",t==="left"?"justify-start":"justify-end",H?"cursor-grabbing":"cursor-grab"),style:{...s,width:44,height:80,marginTop:-12,touchAction:"none",userSelect:"none"},onPointerDown:he,onDragStart:I=>I.preventDefault(),role:"button","aria-label":"Open navigation",tabIndex:0,children:jsx("div",{className:i("flex h-16 w-6 items-center justify-center","bg-primary-800/80 text-white shadow-md backdrop-blur-sm","hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",t==="left"?"rounded-r-xl":"rounded-l-xl"),children:t==="left"?jsx(ChevronRight,{className:"h-4 w-4"}):jsx(ChevronLeft,{className:"h-4 w-4"})})}),document.body)]})}return jsx("nav",{className:i("flex flex-col gap-0.5",w==="mini"&&"items-center",o),...ie,children:ee})}export{We as SideNav};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Xe=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Xe__default=/*#__PURE__*/_interopDefault(Xe);function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var Y="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",Ie="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",U="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",W="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function Ze({to:e,className:r,style:t,children:a}){let d=typeof r=="function"?r({isActive:false}):r;return jsxRuntime.jsx("a",{href:e,className:d,style:t,children:a})}var xe=["expanded","icons","mini"];function er(e){let r=xe.indexOf(e);return xe[(r+1)%xe.length]}function ze(e){let r=new Set;for(let t of e)if(t.children&&t.children.length>0){r.add(t.key??t.label);for(let a of ze(t.children))r.add(a);}return r}function Ve({item:e,basePath:r,depth:t,onItemClick:a,LinkComponent:d,showLines:l,expandedKeys:s,onToggle:f}){let y=e.key??e.label,m=e.children&&e.children.length>0,[x,L]=Xe.useState(e.defaultOpen??true),N=s?s.has(y):x,u=Xe.useCallback(()=>{s?f(y):L(c=>!c);},[s,f,y]),v=t>0?`${t*1.25}rem`:void 0;if(m)return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("button",{type:"button",onClick:u,className:i(Y,U,"justify-between"),style:{paddingLeft:v},children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",N&&"rotate-90")})]}),N&&jsxRuntime.jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",l?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(c=>jsxRuntime.jsx(Ve,{item:c,basePath:r,depth:t+1,onItemClick:a,LinkComponent:d,showLines:l,expandedKeys:s,onToggle:f},c.key??c.path??c.label))})]});if(e.path!=null){let c=r+e.path;return a?jsxRuntime.jsxs("button",{type:"button",onClick:()=>a(e,c),className:i(Y,U),style:{paddingLeft:v},children:[e.icon,e.label]}):jsxRuntime.jsxs(d,{to:c,className:({isActive:w})=>i(Y,w?Ie:U),style:{paddingLeft:v},children:[e.icon,e.label]})}return jsxRuntime.jsxs("span",{className:i(Y,U,"cursor-default"),style:{paddingLeft:v},children:[e.icon,e.label]})}function rr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let[d,l]=Xe.useState(false),s=Xe.useRef(null),f=Xe.useRef(void 0),[y,m]=Xe.useState({top:0,left:0}),x=()=>{clearTimeout(f.current),l(true);},L=()=>{f.current=setTimeout(()=>l(false),200);};Xe.useLayoutEffect(()=>{if(d&&s.current){let u=s.current.getBoundingClientRect();m({top:u.top,left:u.right+4});}},[d]);let N=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxRuntime.jsxs("div",{onMouseEnter:x,onMouseLeave:L,children:[jsxRuntime.jsx("button",{ref:s,type:"button",className:i(W,"w-full"),title:e.label,onClick:()=>l(u=>!u),children:N}),d&&reactDom.createPortal(jsxRuntime.jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:y.top,left:y.left},onMouseEnter:x,onMouseLeave:L,children:[jsxRuntime.jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsxRuntime.jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(u=>{let v=u.key??u.path??u.label;if(u.path!=null){let c=r+u.path;return t?jsxRuntime.jsxs("button",{type:"button",onClick:()=>{t(u,c),l(false);},className:i(Y,U),children:[u.icon,u.label]},v):jsxRuntime.jsxs(a,{to:c,className:({isActive:w})=>i(Y,w?Ie:U),children:[u.icon,u.label]},v)}return jsxRuntime.jsxs("span",{className:i(Y,"cursor-default text-primary-400"),children:[u.icon,u.label]},v)})})]}),document.body)]})}function tr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let d=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let l=r+e.path;return t?jsxRuntime.jsx("button",{type:"button",onClick:()=>t(e,l),className:i(W,"w-full"),title:e.label,children:d}):jsxRuntime.jsx(a,{to:l,className:({isActive:s})=>i(W,"w-full",s&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsxRuntime.jsx("span",{title:e.label,children:d})})}return jsxRuntime.jsx("span",{className:i(W,"w-full cursor-default"),title:e.label,children:d})}function ve({items:e,title:r,basePath:t="/",onItemClick:a,LinkComponent:d=Ze,collapsible:l,collapseMode:s,defaultCollapseMode:f="expanded",onCollapseModeChange:y,showLines:m=true,expandedKeys:x,defaultExpandedKeys:L="all",onExpandedKeysChange:N,className:u,responsive:v=true,mobileBreakpoint:c=768,mobileTopOffset:w=48,...z}){let[n,h]=Xe.useState(f),o=s??n,R=Xe__default.default.useMemo(()=>ze(e),[e]),[$,B]=Xe.useState(()=>L==="all"?new Set(R):new Set(L)),H=x??null,oe=H??$,q=Xe.useCallback(b=>{let k=new Set(oe);k.has(b)?k.delete(b):k.add(b),B(k),N?.(k);},[oe,N]),j=Xe.useCallback(()=>{let b=er(o);h(b),y?.(b);},[o,y]),[P,J]=Xe.useState(()=>v&&typeof window<"u"&&window.innerWidth<c),[Z,A]=Xe.useState(false);Xe.useEffect(()=>{if(!v||typeof window>"u"||!window.matchMedia)return;let b=window.matchMedia(`(max-width: ${c-1}px)`),k=O=>{J(O.matches),O.matches||A(false);};return b.addEventListener("change",k),()=>b.removeEventListener("change",k)},[v,c]);let ge=Xe.useCallback(b=>{b.target.closest("a")&&A(false);},[]),D=Xe.useRef(null),_=Xe.useRef({startX:0,startY:0,dragging:false}),T=Xe.useCallback(b=>{let k=b.touches[0];_.current={startX:k.clientX,startY:k.clientY,dragging:true};},[]),G=Xe.useCallback(b=>{if(!_.current.dragging||!D.current)return;let k=b.touches[0],O=k.clientX-_.current.startX,ye=k.clientY-_.current.startY;O>=0||Math.abs(ye)>Math.abs(O)||(D.current.style.transform=`translateX(${Math.max(O,-224)}px)`,D.current.style.transition="none");},[]),ee=Xe.useCallback(b=>{if(!_.current.dragging||!D.current)return;_.current.dragging=false;let k=b.changedTouches[0],O=k.clientX-_.current.startX,ye=k.clientY-_.current.startY;D.current.style.transition="",D.current.style.transform="",O<-60&&Math.abs(O)>Math.abs(ye)&&A(false);},[]),fe=Xe.useMemo(()=>!P||!a?a:(b,k)=>{A(false),a(b,k);},[P,a]),_e=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[l&&!P&&jsxRuntime.jsx("div",{className:i("flex shrink-0 mb-1",o==="expanded"?"justify-end":"justify-center"),children:jsxRuntime.jsx("button",{type:"button",onClick:j,className:W,"aria-label":o==="mini"?"Expand sidebar":"Collapse sidebar",title:o==="mini"?"Expand sidebar":"Collapse sidebar",children:o==="mini"?jsxRuntime.jsx(lucideReact.Menu,{className:"h-5 w-5"}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:"h-4 w-4"})})}),(P||o==="expanded")&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[r&&jsxRuntime.jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:r}),e.map(b=>jsxRuntime.jsx(Ve,{item:b,basePath:t,depth:0,onItemClick:fe,LinkComponent:d,showLines:m,expandedKeys:H,onToggle:q},b.key??b.path??b.label))]}),!P&&o==="icons"&&e.map(b=>{let k=b.key??b.path??b.label;return b.children&&b.children.length>0?jsxRuntime.jsx(rr,{item:b,basePath:t,onItemClick:fe,LinkComponent:d},k):jsxRuntime.jsx(tr,{item:b,basePath:t,onItemClick:fe,LinkComponent:d},k)})]});return v&&P?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[Z&&reactDom.createPortal(jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:w},onClick:()=>A(false)}),document.body),reactDom.createPortal(jsxRuntime.jsxs("aside",{ref:D,className:i("fixed bottom-0 left-0 z-50 flex flex-col w-56 border-r border-primary-200 dark:border-primary-700 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",Z?"translate-x-0":"-translate-x-full"),style:{top:w},onClick:ge,onTouchStart:T,onTouchMove:G,onTouchEnd:ee,children:[jsxRuntime.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsxRuntime.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsxRuntime.jsx("button",{type:"button",onClick:b=>{b.stopPropagation(),A(false);},className:i(W,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsxRuntime.jsx("nav",{className:"flex flex-col gap-0.5",children:_e})})]}),document.body),!Z&&reactDom.createPortal(jsxRuntime.jsx("button",{type:"button",className:"fixed left-0 z-50 flex h-14 w-5 items-center justify-center rounded-r-xl bg-primary-800/80 text-white shadow-md backdrop-blur-sm transition-colors hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",style:{top:`calc(50% + ${w/2}px)`,transform:"translateY(-50%)"},onClick:()=>A(true),"aria-label":"Open navigation",children:jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3.5 w-3.5"})}),document.body)]}):jsxRuntime.jsx("nav",{className:i("flex flex-col gap-0.5",o==="mini"&&"items-center",u),...z,children:_e})}var Be=classVarianceAuthority.cva("inline-flex cursor-pointer items-center justify-center gap-1.5 rounded font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700",secondary:"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700",danger:"bg-danger-500 text-white hover:bg-danger-600 active:bg-danger-700",warning:"bg-warning-500 text-white hover:bg-warning-600 active:bg-warning-700",ghost:"bg-transparent text-primary-700 hover:bg-primary-100 active:bg-primary-200 dark:text-primary-300 dark:hover:bg-primary-800",outline:"border border-primary-300 bg-transparent text-primary-700 hover:bg-primary-50 dark:border-primary-600 dark:text-primary-300 dark:hover:bg-primary-800"},size:{sm:"h-7 px-3 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"h-9 px-4 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"h-11 px-6 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 rounded border font-semibold [&_svg]:shrink-0",{variants:{intent:{success:"border-success-200 bg-success-100 text-success-800 dark:border-success-800 dark:bg-success-900/30 dark:text-success-400",warning:"border-warning-200 bg-warning-100 text-warning-800 dark:border-warning-800 dark:bg-warning-900/30 dark:text-warning-400",error:"border-danger-200 bg-danger-100 text-danger-800 dark:border-danger-800 dark:bg-danger-900/30 dark:text-danger-400",info:"border-primary-200 bg-primary-100 text-primary-800 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-400",primary:"border-secondary-200 bg-secondary-100 text-secondary-700 dark:border-secondary-700 dark:bg-secondary-800 dark:text-secondary-300"},size:{sm:"px-1.5 py-0 text-[0.625rem] [&_svg]:h-2.5 [&_svg]:w-2.5",md:"px-2.5 py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",lg:"px-3 py-1 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("absolute flex items-center justify-center rounded-full font-bold leading-none ring-2 ring-white select-none pointer-events-none z-10 dark:ring-primary-900",{variants:{intent:{danger:"bg-danger-500 text-white",success:"bg-success-500 text-white",warning:"bg-warning-500 text-white",info:"bg-primary-500 text-white",primary:"bg-secondary-500 text-white"},size:{sm:"text-[0.5rem]",md:"text-[0.625rem]",lg:"text-xs"},dot:{true:"",false:""},placement:{"top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2"}},compoundVariants:[{dot:true,size:"sm",class:"h-1.5 w-1.5 min-w-0 ring-1"},{dot:true,size:"md",class:"h-2 w-2 min-w-0"},{dot:true,size:"lg",class:"h-2.5 w-2.5 min-w-0"},{dot:false,size:"sm",class:"h-4 min-w-4 px-1"},{dot:false,size:"md",class:"h-5 min-w-5 px-1.5"},{dot:false,size:"lg",class:"h-6 min-w-6 px-2"}],defaultVariants:{intent:"danger",size:"md",dot:false,placement:"top-right"}});classVarianceAuthority.cva("w-full rounded-md border bg-white text-secondary-900 transition-colors placeholder:text-secondary-400 focus:outline-none focus:ring-2 dark:bg-secondary-900 dark:text-secondary-100 dark:placeholder:text-secondary-600",{variants:{state:{default:"border-secondary-300 focus:border-primary-500 focus:ring-primary-500/20 dark:border-secondary-600",error:"border-danger-400 focus:border-danger-500 focus:ring-danger-500/20"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 py-2 text-sm",lg:"h-11 px-4 py-2.5 text-base"}},defaultVariants:{state:"default",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 font-medium [&_svg]:shrink-0",{variants:{size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},intent:{default:"text-primary-700 dark:text-primary-300",muted:"text-primary-400 dark:text-primary-500",required:"text-primary-700 dark:text-primary-300 after:ml-0.5 after:text-danger-500 after:content-['*']"}},defaultVariants:{size:"md",intent:"default"}});classVarianceAuthority.cva("relative inline-flex shrink-0 items-center justify-center rounded border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4 rounded-[3px]",md:"h-5 w-5 rounded",lg:"h-6 w-6 rounded-[5px]"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("relative inline-flex shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("",{variants:{intent:{primary:"",secondary:"",danger:"",warning:"",success:""},size:{sm:"",md:"",lg:""},checked:{on:"",off:"bg-primary-300 dark:bg-primary-800"}},compoundVariants:[{intent:"primary",checked:"on",class:"bg-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"bg-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"bg-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"bg-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"bg-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("bg-primary-200 text-primary-700 dark:bg-primary-700 dark:text-primary-200",{variants:{size:{xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-12 w-12 text-base",xl:"h-16 w-16 text-lg"},shape:{circular:"rounded-full",rounded:"rounded-lg",square:"rounded-none"}},defaultVariants:{size:"md",shape:"circular"}});classVarianceAuthority.cva("relative flex w-full touch-none select-none items-center",{variants:{intent:{primary:"[&_.slider-fill]:bg-primary-500 [&_.slider-thumb]:border-primary-500",secondary:"[&_.slider-fill]:bg-secondary-500 [&_.slider-thumb]:border-secondary-500",success:"[&_.slider-fill]:bg-success-500 [&_.slider-thumb]:border-success-500",danger:"[&_.slider-fill]:bg-danger-500 [&_.slider-thumb]:border-danger-500",warning:"[&_.slider-fill]:bg-warning-500 [&_.slider-thumb]:border-warning-500"},size:{sm:"h-4",md:"h-5",lg:"h-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 rounded-full font-medium select-none transition-colors [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-100 text-primary-700 dark:bg-primary-800 dark:text-primary-200",secondary:"bg-secondary-100 text-secondary-700 dark:bg-secondary-800 dark:text-secondary-200",success:"bg-success-100 text-success-700 dark:bg-success-900/40 dark:text-success-300",danger:"bg-danger-100 text-danger-700 dark:bg-danger-900/40 dark:text-danger-300",warning:"bg-warning-100 text-warning-700 dark:bg-warning-900/40 dark:text-warning-300",info:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},size:{sm:"h-5 px-2 text-[0.6875rem] gap-0.5",md:"h-6 px-2.5 text-xs gap-1",lg:"h-7 px-3 text-sm gap-1"},variant:{solid:"",outline:"bg-transparent border",soft:""}},compoundVariants:[{intent:"primary",variant:"outline",class:"border-primary-300 text-primary-700 dark:border-primary-600 dark:text-primary-300"},{intent:"secondary",variant:"outline",class:"border-secondary-300 text-secondary-700 dark:border-secondary-600 dark:text-secondary-300"},{intent:"success",variant:"outline",class:"border-success-400 text-success-700 dark:border-success-600 dark:text-success-300"},{intent:"danger",variant:"outline",class:"border-danger-400 text-danger-700 dark:border-danger-600 dark:text-danger-300"},{intent:"warning",variant:"outline",class:"border-warning-400 text-warning-700 dark:border-warning-600 dark:text-warning-300"},{intent:"info",variant:"outline",class:"border-blue-400 text-blue-700 dark:border-blue-600 dark:text-blue-300"}],defaultVariants:{intent:"primary",size:"md",variant:"solid"}});classVarianceAuthority.cva("relative w-full cursor-pointer rounded-md border bg-white text-sm transition-colors dark:bg-primary-900",{variants:{intent:{default:"border-primary-300 text-primary-900 hover:border-primary-400 focus-within:border-primary-500 focus-within:ring-2 focus-within:ring-primary-500/20 dark:border-primary-600 dark:text-primary-100 dark:hover:border-primary-500 dark:focus-within:border-primary-400",danger:"border-danger-500 text-primary-900 focus-within:ring-2 focus-within:ring-danger-500/20 dark:border-danger-500 dark:text-primary-100"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 text-sm",lg:"h-11 px-4 text-base"}},defaultVariants:{intent:"default",size:"md"}});function sr(e,r){return e.key??(typeof e.label=="string"?e.label:String(r))}var de=40,ir=200,Ce=150,Ae=120;function Re(e,r,t,a){if(!a)return {};if(t){let l=(r-1-e)*de;return {animation:`dropdown-item-out ${Ce}ms ease-in both ${l}ms`}}let d=e*de;return {animation:`dropdown-item-in ${ir}ms ease-out both ${d}ms`}}function dr(e,r,t){if(!t)return {};if(r){let a=Math.max(e-1,0)*de+Ce;return {animation:`dropdown-container-out ${Ae}ms ease-in both ${a}ms`}}return {animation:"var(--animate-dropdown-container-in)"}}function Me({label:e,items:r,intent:t,size:a,align:d="left",className:l,disabled:s,editable:f=false,onAddItem:y,multiple:m=false,selected:x=[],onSelectionChange:L,animated:N=true,chevron:u=true,...v}){let[c,w]=Xe.useState(false),[z,n]=Xe.useState(false),[h,o]=Xe.useState(""),R=Xe.useRef(null),$=Xe.useRef(null),B=Xe.useRef(void 0);Xe.useEffect(()=>()=>{B.current&&clearTimeout(B.current);},[]);let H=Xe.useCallback(()=>{if(!N||!c){w(false),o("");return}n(true);let T=(Math.max(r.length,1)-1)*de+Ce+Ae+20;B.current=setTimeout(()=>{w(false),n(false),o("");},T);},[N,c,r.length]),oe=Xe.useCallback(()=>{s||(c?H():(B.current&&clearTimeout(B.current),n(false),w(true),o(""),f&&requestAnimationFrame(()=>$.current?.focus())));},[s,c,H,f]);Xe.useEffect(()=>{if(!c)return;let p=T=>{R.current&&!R.current.contains(T.target)&&H();};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[c,H]),Xe.useEffect(()=>{if(!c)return;let p=T=>{T.key==="Escape"&&H();};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[c,H]);let q=h.toLowerCase(),j=Xe.useMemo(()=>h?r.filter(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase().includes(q)):r,[r,q]),P=Xe.useMemo(()=>!f||!h.trim()?false:!r.some(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase()===q),[f,q,r]),J=Xe.useCallback(()=>{let p=h.trim();p&&(y?.(p),o(""));},[h,y]),Z=Xe.useCallback(p=>{p.key==="Enter"&&P&&(p.preventDefault(),J());},[P,J]),A=Xe.useCallback(p=>{let T=x.includes(p)?x.filter(G=>G!==p):[...x,p];L?.(T);},[x,L]),ge=m&&x.length>0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[e," ",jsxRuntime.jsx("span",{className:"ml-1 rounded-full bg-white/20 px-1.5 text-xs font-semibold",children:x.length})]}):e,D=j.length===0&&!P||P?1:0,_=j.length+D;return jsxRuntime.jsxs("div",{ref:R,className:"relative inline-block",children:[jsxRuntime.jsxs("button",{type:"button",onClick:oe,disabled:s,className:i(Be({intent:t,size:a}),"inline-flex items-center gap-1",l),"aria-haspopup":m?"listbox":"true","aria-expanded":c?"true":"false",...v,children:[ge,u&&jsxRuntime.jsx(lucideReact.ChevronDown,{className:i("h-3.5 w-3.5 transition-transform",c&&"rotate-180")})]}),c&&jsxRuntime.jsxs("div",{className:i("absolute z-50 mt-1 min-w-44 rounded-md border py-1 shadow-lg","border-primary-200 dark:border-primary-700 dark:bg-primary-800 bg-white",d==="right"?"right-0":"left-0"),style:dr(_,z,N),role:m?"listbox":"menu","aria-multiselectable":m||void 0,children:[f&&jsxRuntime.jsx("div",{className:"border-primary-200 dark:border-primary-700 border-b px-2 pb-1.5 pt-1",children:jsxRuntime.jsx("input",{ref:$,type:"text",value:h,onChange:p=>o(p.target.value),onKeyDown:Z,placeholder:"Type to filter or add\u2026",className:"w-full bg-transparent text-sm text-secondary-900 placeholder:text-secondary-400 focus:outline-none dark:text-secondary-100 dark:placeholder:text-secondary-600"})}),jsxRuntime.jsxs("div",{className:"max-h-60 overflow-y-auto",children:[j.map((p,T)=>{let G=sr(p,T),ee=m&&x.includes(G);return jsxRuntime.jsxs(Xe__default.default.Fragment,{children:[p.divider&&jsxRuntime.jsx("div",{className:"border-primary-200 dark:border-primary-700 my-1 border-t"}),jsxRuntime.jsxs("button",{type:"button",role:m?"option":"menuitem","aria-selected":m?ee:void 0,disabled:p.disabled,className:i("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-700 hover:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-700/50",p.disabled&&"pointer-events-none opacity-50"),style:Re(T,_,z,N),onClick:()=>{m?A(G):(p.onClick?.(),B.current&&clearTimeout(B.current),w(false),n(false),o(""));},children:[m&&jsxRuntime.jsx("span",{className:i("flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors",ee?"border-primary-600 bg-primary-600 text-white dark:border-primary-500 dark:bg-primary-500":"border-secondary-300 bg-white dark:border-secondary-600 dark:bg-secondary-800"),children:ee&&jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3"})}),jsxRuntime.jsx("span",{className:"flex-1 truncate",children:p.label})]})]},G)}),j.length===0&&!P&&jsxRuntime.jsx("div",{className:"text-primary-400 px-3 py-2 text-center text-sm",style:Re(0,1,z,N),children:"No matches"}),P&&jsxRuntime.jsxs("button",{type:"button",className:i("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-600 hover:bg-primary-50 dark:text-primary-400 dark:hover:bg-primary-900/30"),style:Re(j.length,_,z,N),onClick:J,children:[jsxRuntime.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center text-lg leading-none",children:"+"}),jsxRuntime.jsxs("span",{className:"truncate",children:["Add \u201C",h.trim(),"\u201D"]})]})]})]})]})}function mr({href:e,className:r,onClick:t,children:a}){return jsxRuntime.jsx("a",{href:e,className:r,onClick:t,children:a})}function Le({brand:e,onBrandClick:r,navItems:t=[],actions:a=[],linkComponent:d=mr,height:l="h-12",mobileMenu:s=false,navMenuIcon:f,actionsMenuIcon:y,className:m,children:x}){let L=s&&t.length>0,N=s&&a.length>0,u="md:hidden rounded-md px-1.5 py-1.5 text-primary-500 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-200 [&_svg]:h-5 [&_svg]:w-5",v=n=>n?"text-primary-900 font-medium dark:text-primary-100":"text-primary-500 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-200 transition-colors",c="rounded-md p-1.5 text-primary-500 hover:bg-primary-100 hover:text-primary-700 dark:text-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-200 transition-colors [&_svg]:h-5 [&_svg]:w-5",w=t.map((n,h)=>({key:typeof n.label=="string"?n.label:String(h),label:n.active?jsxRuntime.jsx("span",{className:"font-semibold text-primary-900 dark:text-primary-100",children:n.label}):n.label,onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(window.location.href=n.href);}})),z=a.map((n,h)=>({key:n.key??String(h),label:jsxRuntime.jsxs("span",{className:"flex items-center gap-2 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0",children:[n.icon,jsxRuntime.jsx("span",{children:n.ariaLabel})]}),onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(n.external?window.open(n.href,"_blank","noopener,noreferrer"):window.location.href=n.href);}}));return jsxRuntime.jsxs("header",{className:i("flex shrink-0 items-center justify-between border-b px-5","border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",l,m),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 md:gap-6",children:[e&&jsxRuntime.jsx("div",{className:i("text-lg font-bold text-primary-800 dark:text-primary-100",r&&"cursor-pointer"),onClick:r,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r(n));}:void 0,children:e}),L&&jsxRuntime.jsx(Me,{intent:"ghost",size:"sm",className:u,label:f??jsxRuntime.jsx(lucideReact.PanelLeft,{className:"h-5 w-5"}),items:w,align:"left",chevron:false,"aria-label":"Open navigation"}),t.length>0&&jsxRuntime.jsx("nav",{className:i("flex items-center gap-4 text-sm",s?"hidden md:flex":"flex"),children:t.map((n,h)=>{let o=typeof n.label=="string"?n.label:h,R=v(n.active);return n.href?jsxRuntime.jsx(d,{href:n.href,className:R,onClick:n.onClick,children:n.label},o):jsxRuntime.jsx("button",{type:"button",className:i(R,"cursor-pointer"),onClick:n.onClick,children:n.label},o)})})]}),x&&jsxRuntime.jsx("div",{className:"flex items-center",children:x}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[a.length>0&&jsxRuntime.jsx("div",{className:i("flex items-center gap-1",s?"hidden md:flex":"flex"),children:a.map((n,h)=>n.href?jsxRuntime.jsx("a",{href:n.href,target:n.external?"_blank":void 0,rel:n.external?"noopener noreferrer":void 0,className:c,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??h):jsxRuntime.jsx("button",{type:"button",className:c,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??h))}),N&&jsxRuntime.jsx(Me,{intent:"ghost",size:"sm",className:u,label:y??jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-5 w-5"}),items:z,align:"right",chevron:false,"aria-label":"Open menu"})]})]})}var De=classVarianceAuthority.cva("inline-flex items-center gap-1 underline-offset-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/20 [&_svg]:shrink-0",{variants:{intent:{default:"text-primary-600 hover:text-primary-800 active:text-primary-900 dark:text-primary-400 dark:hover:text-primary-200 dark:active:text-primary-100",secondary:"text-secondary-500 hover:text-secondary-700 active:text-secondary-800 dark:text-secondary-400 dark:hover:text-secondary-200 dark:active:text-secondary-100",muted:"text-primary-400 hover:text-primary-600 dark:text-primary-500 dark:hover:text-primary-300"},size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},underline:{always:"underline",hover:"hover:underline",none:"no-underline"}},defaultVariants:{intent:"default",size:"md",underline:"none"}});function ur(e,r){return !!(r==="_blank"||e&&/^https?:\/\//.test(e))}var gr=e=>jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":true,...e,children:[jsxRuntime.jsx("path",{d:"M15 3h6v6"}),jsxRuntime.jsx("path",{d:"M10 14 21 3"}),jsxRuntime.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]});function Se({intent:e,size:r,underline:t,external:a,className:d,children:l,href:s,target:f,rel:y,...m}){let x=a??ur(s,f);return jsxRuntime.jsxs("a",{href:s,target:x&&!f?"_blank":f,rel:x&&!y?"noopener noreferrer":y,className:i(De({intent:e,size:r,underline:t}),d),...m,children:[l,x&&jsxRuntime.jsx(gr,{})]})}function me({items:e,separator:r=jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3.5 w-3.5","aria-hidden":"true"}),homeIcon:t=false,LinkComponent:a="a",className:d}){return jsxRuntime.jsx("nav",{"aria-label":"Breadcrumb",className:i("flex",d),children:jsxRuntime.jsx("ol",{className:"flex flex-wrap items-center gap-1 text-sm",children:e.map((l,s)=>{let f=s===e.length-1,y=t===true?jsxRuntime.jsx(lucideReact.Home,{className:"h-3.5 w-3.5"}):t!==false&&t!==void 0?t:null,m=s===0&&y?y:l.icon;return jsxRuntime.jsxs("li",{className:"flex items-center gap-1",children:[s>0&&jsxRuntime.jsx("span",{className:"text-secondary-400 dark:text-secondary-500",children:r}),f?jsxRuntime.jsxs("span",{"aria-current":"page",className:i("flex items-center gap-1 font-medium text-primary-800 dark:text-primary-100",m&&"gap-1.5"),children:[m,l.label]}):l.href?jsxRuntime.jsxs(a,{href:l.href,className:i("flex items-center gap-1 text-secondary-500 transition-colors","hover:text-primary-700 dark:text-secondary-400 dark:hover:text-primary-200","rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",m&&"gap-1.5"),children:[m,l.label]}):jsxRuntime.jsxs("span",{className:"flex items-center gap-1 text-secondary-500 dark:text-secondary-400",children:[m,l.label]})]},s)})})})}function be(e,r){let t=[];for(let a=e;a<=r;a++)t.push(a);return t}function Nr(e,r,t){let a=t*2+5;if(r<=a)return be(1,r);let d=Math.max(e-t,1),l=Math.min(e+t,r),s=d>2,f=l<r-1;return !s&&f?[...be(1,3+t*2),"\u2026",r]:s&&!f?[1,"\u2026",...be(r-(3+t*2)+1,r)]:[1,"\u2026",...be(d,l),"\u2026",r]}var $e={sm:"h-7 min-w-7 px-1.5 text-xs",md:"h-9 min-w-9 px-2 text-sm",lg:"h-11 min-w-11 px-2.5 text-base"},ne={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5"};function ae({onClick:e,disabled:r,active:t,size:a,"aria-label":d,children:l}){return jsxRuntime.jsx("button",{type:"button",onClick:e,disabled:r,"aria-label":d,"aria-current":t?"page":void 0,className:i("inline-flex items-center justify-center rounded font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",$e[a],t?"bg-primary-600 text-white dark:bg-primary-500":"border border-primary-200 bg-white text-primary-700 hover:bg-primary-50 dark:border-primary-700 dark:bg-primary-900 dark:text-primary-300 dark:hover:bg-primary-800",r&&"pointer-events-none opacity-40"),children:l})}function ue({totalPages:e,currentPage:r,onPageChange:t,siblingCount:a=2,showFirstLast:d=true,showPageCount:l=false,size:s="md",className:f}){if(e<=1)return null;let y=Nr(r,e,a);return jsxRuntime.jsxs("nav",{"aria-label":"Pagination",className:i("flex items-center gap-1",f),children:[d&&jsxRuntime.jsx(ae,{size:s,onClick:()=>t(1),disabled:r===1,"aria-label":"First page",children:jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:ne[s]})}),jsxRuntime.jsx(ae,{size:s,onClick:()=>t(r-1),disabled:r===1,"aria-label":"Previous page",children:jsxRuntime.jsx(lucideReact.ChevronLeft,{className:ne[s]})}),y.map((m,x)=>m==="\u2026"?jsxRuntime.jsx("span",{className:i("inline-flex items-center justify-center text-secondary-400",$e[s]),"aria-hidden":"true",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:ne[s]})},`ellipsis-${x}`):jsxRuntime.jsx(ae,{size:s,active:m===r,onClick:()=>t(m),"aria-label":`Page ${m}`,children:m},m)),jsxRuntime.jsx(ae,{size:s,onClick:()=>t(r+1),disabled:r===e,"aria-label":"Next page",children:jsxRuntime.jsx(lucideReact.ChevronRight,{className:ne[s]})}),d&&jsxRuntime.jsx(ae,{size:s,onClick:()=>t(e),disabled:r===e,"aria-label":"Last page",children:jsxRuntime.jsx(lucideReact.ChevronsRight,{className:ne[s]})}),l&&jsxRuntime.jsxs("span",{className:"ml-2 text-sm text-secondary-500 dark:text-secondary-400",children:["Page ",r," of ",e]})]})}function je({item:e,mode:r}){return e.separator?jsxRuntime.jsx("div",{className:"mx-1 h-10 w-px self-center bg-primary-200 dark:bg-primary-700","aria-hidden":true}):jsxRuntime.jsxs("button",{type:"button",title:e.title??e.label,disabled:e.disabled,onClick:e.onClick,"aria-pressed":e.active,className:i("relative flex shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400","disabled:cursor-not-allowed disabled:opacity-40",e.active?"bg-primary-100 text-primary-700 shadow-inner dark:bg-primary-800 dark:text-primary-200":"text-primary-700 hover:bg-primary-50 active:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-800",r==="full"?"min-w-[3.5rem] flex-col gap-0.5 py-2":"","[&_svg]:shrink-0",r==="full"?"[&_svg]:h-5 [&_svg]:w-5":"[&_svg]:h-4 [&_svg]:w-4"),children:[e.icon&&jsxRuntime.jsx("span",{children:e.icon}),r!=="icons"&&jsxRuntime.jsx("span",{className:i(r==="full"?"text-[0.6rem] leading-tight":""),children:e.label})]})}function Lr({group:e,mode:r,disabled:t=false}){return jsxRuntime.jsxs("div",{className:i("flex shrink-0 flex-col items-stretch",t&&"opacity-50"),children:[jsxRuntime.jsx("div",{className:"flex items-center gap-0.5 px-1",children:e.items.map(a=>jsxRuntime.jsx(je,{item:t?{...a,disabled:true}:a,mode:r},a.key))}),r==="full"&&jsxRuntime.jsx("div",{className:"mt-1 border-t border-primary-100 px-2 pt-0.5 text-center dark:border-primary-800",children:jsxRuntime.jsx("span",{className:"text-[0.55rem] text-secondary-400 dark:text-secondary-500",children:e.label})})]})}function Pe({tabs:e,defaultTab:r,activeTab:t,onTabChange:a,mode:d,onModeChange:l,sticky:s=false,className:f}){let y=e.filter(o=>!o.hidden),[m,x]=Xe.useState(r??y[0]?.key??""),[L,N]=Xe.useState(d??"full"),[u,v]=Xe.useState(true),c=t??m,w=d??L,z=o=>{if(!y.find($=>$.key===o)?.disabled){if(o===c&&w!=="icons"){v($=>!$);return}x(o),a?.(o),v(true);}},h=y.find(o=>o.key===c)??y[0];return jsxRuntime.jsxs("div",{className:i("select-none border-b border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",s&&"sticky top-0 z-30",f),children:[jsxRuntime.jsxs("div",{className:"flex items-center border-b border-primary-100 dark:border-primary-800",children:[jsxRuntime.jsx("div",{className:"flex flex-1 items-end overflow-x-auto",children:y.map(o=>jsxRuntime.jsxs("button",{type:"button",disabled:o.disabled,onClick:()=>z(o.key),className:i("flex shrink-0 items-center gap-1.5 border-b-2 px-4 py-2 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 [&_svg]:h-4 [&_svg]:w-4",o.disabled?"cursor-not-allowed border-transparent text-secondary-300 opacity-50 dark:text-secondary-600":o.key===c&&u?"border-primary-500 text-primary-700 dark:border-primary-400 dark:text-primary-200":"border-transparent text-secondary-500 hover:border-primary-300 hover:text-primary-600 dark:text-secondary-400 dark:hover:text-primary-300"),children:[o.icon,o.label]},o.key))}),jsxRuntime.jsx("button",{type:"button",title:u?"Collapse ribbon":"Expand ribbon",onClick:()=>v(o=>!o),className:"ml-auto mr-2 rounded-md p-1.5 text-secondary-400 transition-colors hover:bg-primary-50 hover:text-primary-600 dark:hover:bg-primary-800 dark:hover:text-primary-300",children:u?jsxRuntime.jsx(lucideReact.ChevronUp,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-4 w-4"})})]}),u&&h&&w!=="icons"&&jsxRuntime.jsx("div",{className:"flex items-stretch gap-1 overflow-x-auto px-2 py-1.5",children:h.groups.map((o,R)=>jsxRuntime.jsxs(Xe__default.default.Fragment,{children:[R>0&&jsxRuntime.jsx("div",{className:"mx-1 h-auto w-px self-stretch bg-primary-100 dark:bg-primary-800"}),jsxRuntime.jsx(Lr,{group:o,mode:w,disabled:o.disabled||h.disabled})]},o.key))}),w==="icons"&&u&&h&&jsxRuntime.jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto px-2 py-1",children:h.groups.flatMap(o=>o.items.map(R=>jsxRuntime.jsx(je,{item:o.disabled||h.disabled?{...R,disabled:true}:R,mode:"icons"},R.key)))})]})}var Sr={SideNav:ve,Header:Le,NavLink:Se,Breadcrumb:me,Pagination:ue,RibbonBar:Pe},Ht=Sr;
|
|
2
|
-
exports.Breadcrumb=
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var dr=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var dr__default=/*#__PURE__*/_interopDefault(dr);function o(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var re="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",$e="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",te="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",ne="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function fr({to:e,className:r,style:t,children:a}){let l=typeof r=="function"?r({isActive:false}):r;return jsxRuntime.jsx("a",{href:e,className:l,style:t,children:a})}var Me=["expanded","icons","mini"];function yr(e){let r=Me.indexOf(e);return Me[(r+1)%Me.length]}function je(e){let r=new Set;for(let t of e)if(t.children&&t.children.length>0){r.add(t.key??t.label);for(let a of je(t.children))r.add(a);}return r}function Ge({item:e,basePath:r,depth:t,onItemClick:a,LinkComponent:l,showLines:c,expandedKeys:s,onToggle:f}){let y=e.key??e.label,u=e.children&&e.children.length>0,[v,L]=dr.useState(e.defaultOpen??true),C=s?s.has(y):v,g=dr.useCallback(()=>{s?f(y):L(m=>!m);},[s,f,y]),w=t>0?`${t*1.25}rem`:void 0;if(u)return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("button",{type:"button",onClick:g,className:o(re,te,"justify-between"),style:{paddingLeft:w},children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsxRuntime.jsx(lucideReact.ChevronRight,{className:o("h-3.5 w-3.5 transition-transform",C&&"rotate-90")})]}),C&&jsxRuntime.jsx("div",{className:o("flex flex-col gap-0.5 pt-0.5",c?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(m=>jsxRuntime.jsx(Ge,{item:m,basePath:r,depth:t+1,onItemClick:a,LinkComponent:l,showLines:c,expandedKeys:s,onToggle:f},m.key??m.path??m.label))})]});if(e.path!=null){let m=r+e.path;return a?jsxRuntime.jsxs("button",{type:"button",onClick:()=>a(e,m),className:o(re,te),style:{paddingLeft:w},children:[e.icon,e.label]}):jsxRuntime.jsxs(l,{to:m,className:({isActive:N})=>o(re,N?$e:te),style:{paddingLeft:w},children:[e.icon,e.label]})}return jsxRuntime.jsxs("span",{className:o(re,te,"cursor-default"),style:{paddingLeft:w},children:[e.icon,e.label]})}function xr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let[l,c]=dr.useState(false),s=dr.useRef(null),f=dr.useRef(void 0),[y,u]=dr.useState({top:0,left:0}),v=()=>{clearTimeout(f.current),c(true);},L=()=>{f.current=setTimeout(()=>c(false),200);};dr.useLayoutEffect(()=>{if(l&&s.current){let g=s.current.getBoundingClientRect();u({top:g.top,left:g.right+4});}},[l]);let C=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxRuntime.jsxs("div",{onMouseEnter:v,onMouseLeave:L,children:[jsxRuntime.jsx("button",{ref:s,type:"button",className:o(ne,"w-full"),title:e.label,onClick:()=>c(g=>!g),children:C}),l&&reactDom.createPortal(jsxRuntime.jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:y.top,left:y.left},onMouseEnter:v,onMouseLeave:L,children:[jsxRuntime.jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsxRuntime.jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(g=>{let w=g.key??g.path??g.label;if(g.path!=null){let m=r+g.path;return t?jsxRuntime.jsxs("button",{type:"button",onClick:()=>{t(g,m),c(false);},className:o(re,te),children:[g.icon,g.label]},w):jsxRuntime.jsxs(a,{to:m,className:({isActive:N})=>o(re,N?$e:te),children:[g.icon,g.label]},w)}return jsxRuntime.jsxs("span",{className:o(re,"cursor-default text-primary-400"),children:[g.icon,g.label]},w)})})]}),document.body)]})}function hr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let l=e.icon||jsxRuntime.jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let c=r+e.path;return t?jsxRuntime.jsx("button",{type:"button",onClick:()=>t(e,c),className:o(ne,"w-full"),title:e.label,children:l}):jsxRuntime.jsx(a,{to:c,className:({isActive:s})=>o(ne,"w-full",s&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsxRuntime.jsx("span",{title:e.label,children:l})})}return jsxRuntime.jsx("span",{className:o(ne,"w-full cursor-default"),title:e.label,children:l})}function Le({items:e,title:r,basePath:t="/",onItemClick:a,LinkComponent:l=fr,collapsible:c,collapseMode:s,defaultCollapseMode:f="expanded",onCollapseModeChange:y,showLines:u=true,expandedKeys:v,defaultExpandedKeys:L="all",onExpandedKeysChange:C,className:g,responsive:w=true,mobileBreakpoint:m=768,mobileTopOffset:N=48,mobileDrawerSlot:H,...n}){let[k,d]=dr.useState(f),h=s??k,$=dr__default.default.useMemo(()=>je(e),[e]),[O,j]=dr.useState(()=>L==="all"?new Set($):new Set(L)),be=v??null,W=be??O,Q=dr.useCallback(i=>{let x=new Set(W);x.has(i)?x.delete(i):x.add(i),j(x),C?.(x);},[W,C]),G=dr.useCallback(()=>{let i=yr(h);d(i),y?.(i);},[h,y]),[B,Re]=dr.useState(()=>w&&typeof window<"u"&&window.innerWidth<m),[oe,D]=dr.useState(false),[_,se]=dr.useState(()=>{if(typeof window>"u")return "left";try{return localStorage.getItem("onyx-sidenav-side")||"left"}catch{return "left"}}),[p,T]=dr.useState(()=>{if(typeof window>"u")return 50;try{return Number(localStorage.getItem("onyx-sidenav-top"))||50}catch{return 50}}),[I,J]=dr.useState(null),X=dr.useRef({dragging:false,startX:0,startY:0,moved:false}),rr=dr.useCallback(i=>{if(i.pointerType==="mouse"&&i.button!==0)return;i.preventDefault(),X.current={dragging:true,startX:i.clientX,startY:i.clientY,moved:false};let x=E=>{if(!X.current.dragging)return;let Z=Math.abs(E.clientX-X.current.startX),ie=Math.abs(E.clientY-X.current.startY);if((Z>6||ie>6)&&(X.current.moved=true),!X.current.moved)return;let ee=E.clientX<window.innerWidth/2?"left":"right",Oe=N+28,ge=window.innerHeight-28,de=Math.max(Oe,Math.min(ge,E.clientY));J({side:ee,y:de});},R=E=>{if(window.removeEventListener("pointermove",x),window.removeEventListener("pointerup",R),window.removeEventListener("pointercancel",R),!X.current.dragging)return;if(X.current.dragging=false,!X.current.moved){let de=Xe=>{Xe.stopPropagation(),Xe.preventDefault(),window.removeEventListener("click",de,true);};window.addEventListener("click",de,true),J(null),D(true);return}let Z=E.clientX<window.innerWidth/2?"left":"right",ie=N+28,ee=window.innerHeight-28,ge=Math.max(ie,Math.min(ee,E.clientY))/window.innerHeight*100;se(Z),T(ge),J(null);try{localStorage.setItem("onyx-sidenav-side",Z),localStorage.setItem("onyx-sidenav-top",String(ge));}catch{}};window.addEventListener("pointermove",x),window.addEventListener("pointerup",R),window.addEventListener("pointercancel",R);},[N]);dr.useEffect(()=>{if(!w||typeof window>"u"||!window.matchMedia)return;let i=window.matchMedia(`(max-width: ${m-1}px)`),x=R=>{Re(R.matches),R.matches||D(false);};return i.addEventListener("change",x),()=>i.removeEventListener("change",x)},[w,m]);let tr=dr.useCallback(i=>{i.target.closest("a")&&D(false);},[]),F=dr.useRef(null),q=dr.useRef({startX:0,startY:0,dragging:false}),Ae=60,nr=dr.useCallback(i=>{let x=i.touches[0];q.current={startX:x.clientX,startY:x.clientY,dragging:true};},[]),ar=dr.useCallback(i=>{if(!q.current.dragging||!F.current)return;let x=i.touches[0],R=x.clientX-q.current.startX,E=x.clientY-q.current.startY;if(_==="left"){if(R>=0||Math.abs(E)>Math.abs(R))return;F.current.style.transform=`translateX(${Math.max(R,-224)}px)`;}else {if(R<=0||Math.abs(E)>Math.abs(R))return;F.current.style.transform=`translateX(${Math.min(R,224)}px)`;}F.current.style.transition="none";},[_]),or=dr.useCallback(i=>{if(!q.current.dragging||!F.current)return;q.current.dragging=false;let x=i.changedTouches[0],R=x.clientX-q.current.startX,E=x.clientY-q.current.startY;F.current.style.transition="",F.current.style.transform="",Math.abs(R)>Math.abs(E)&&(_==="left"&&R<-Ae&&D(false),_==="right"&&R>Ae&&D(false));},[_]),Ce=dr.useMemo(()=>!B||!a?a:(i,x)=>{D(false),a(i,x);},[B,a]),Ye=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[c&&!B&&jsxRuntime.jsx("div",{className:o("flex shrink-0 mb-1",h==="expanded"?"justify-end":"justify-center"),children:jsxRuntime.jsx("button",{type:"button",onClick:G,className:ne,"aria-label":h==="mini"?"Expand sidebar":"Collapse sidebar",title:h==="mini"?"Expand sidebar":"Collapse sidebar",children:h==="mini"?jsxRuntime.jsx(lucideReact.Menu,{className:"h-5 w-5"}):jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:"h-4 w-4"})})}),(B||h==="expanded")&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[r&&jsxRuntime.jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:r}),e.map(i=>jsxRuntime.jsx(Ge,{item:i,basePath:t,depth:0,onItemClick:Ce,LinkComponent:l,showLines:u,expandedKeys:be,onToggle:Q},i.key??i.path??i.label))]}),!B&&h==="icons"&&e.map(i=>{let x=i.key??i.path??i.label;return i.children&&i.children.length>0?jsxRuntime.jsx(xr,{item:i,basePath:t,onItemClick:Ce,LinkComponent:l},x):jsxRuntime.jsx(hr,{item:i,basePath:t,onItemClick:Ce,LinkComponent:l},x)})]});if(w&&B){let i=I?I.side:_,x=I?I.y:p/100*(typeof window<"u"?window.innerHeight:600),R=I?{top:x,transform:"translateY(-50%)",transition:"none",...i==="left"?{left:0}:{right:0}}:{top:`${p}%`,transform:"translateY(-50%)",transition:"top 0.15s ease",..._==="left"?{left:0}:{right:0}},E=_==="left"?{left:0,right:"auto"}:{right:0,left:"auto"},Z=oe?"translate-x-0":_==="left"?"-translate-x-full":"translate-x-full",ie=_==="left"?"border-r":"border-l";return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[oe&&reactDom.createPortal(jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:N},onClick:()=>D(false)}),document.body),reactDom.createPortal(jsxRuntime.jsxs("aside",{ref:F,className:o("fixed bottom-0 z-50 flex flex-col w-56 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",ie,"border-primary-200 dark:border-primary-700",Z),style:{top:N,...E},onClick:tr,onTouchStart:nr,onTouchMove:ar,onTouchEnd:or,children:[jsxRuntime.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsxRuntime.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsxRuntime.jsx("button",{type:"button",onClick:ee=>{ee.stopPropagation(),D(false);},className:o(ne,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsxRuntime.jsx(lucideReact.X,{className:"h-4 w-4"})})]}),H&&jsxRuntime.jsx("div",{className:"shrink-0 border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:H}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsxRuntime.jsx("nav",{className:"flex flex-col gap-0.5",children:Ye})})]}),document.body),!oe&&reactDom.createPortal(jsxRuntime.jsx("div",{className:o("fixed z-50 flex items-center",i==="left"?"justify-start":"justify-end",I?"cursor-grabbing":"cursor-grab"),style:{...R,width:44,height:80,marginTop:-12,touchAction:"none",userSelect:"none"},onPointerDown:rr,onDragStart:ee=>ee.preventDefault(),role:"button","aria-label":"Open navigation",tabIndex:0,children:jsxRuntime.jsx("div",{className:o("flex h-16 w-6 items-center justify-center","bg-primary-800/80 text-white shadow-md backdrop-blur-sm","hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",i==="left"?"rounded-r-xl":"rounded-l-xl"),children:i==="left"?jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.ChevronLeft,{className:"h-4 w-4"})})}),document.body)]})}return jsxRuntime.jsx("nav",{className:o("flex flex-col gap-0.5",h==="mini"&&"items-center",g),...n,children:Ye})}var Fe=classVarianceAuthority.cva("inline-flex cursor-pointer items-center justify-center gap-1.5 rounded font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700",secondary:"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700",danger:"bg-danger-500 text-white hover:bg-danger-600 active:bg-danger-700",warning:"bg-warning-500 text-white hover:bg-warning-600 active:bg-warning-700",ghost:"bg-transparent text-primary-700 hover:bg-primary-100 active:bg-primary-200 dark:text-primary-300 dark:hover:bg-primary-800",outline:"border border-primary-300 bg-transparent text-primary-700 hover:bg-primary-50 dark:border-primary-600 dark:text-primary-300 dark:hover:bg-primary-800"},size:{sm:"h-7 px-3 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"h-9 px-4 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"h-11 px-6 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 rounded border font-semibold [&_svg]:shrink-0",{variants:{intent:{success:"border-success-200 bg-success-100 text-success-800 dark:border-success-800 dark:bg-success-900/30 dark:text-success-400",warning:"border-warning-200 bg-warning-100 text-warning-800 dark:border-warning-800 dark:bg-warning-900/30 dark:text-warning-400",error:"border-danger-200 bg-danger-100 text-danger-800 dark:border-danger-800 dark:bg-danger-900/30 dark:text-danger-400",info:"border-primary-200 bg-primary-100 text-primary-800 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-400",primary:"border-secondary-200 bg-secondary-100 text-secondary-700 dark:border-secondary-700 dark:bg-secondary-800 dark:text-secondary-300"},size:{sm:"px-1.5 py-0 text-[0.625rem] [&_svg]:h-2.5 [&_svg]:w-2.5",md:"px-2.5 py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",lg:"px-3 py-1 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("absolute flex items-center justify-center rounded-full font-bold leading-none ring-2 ring-white select-none pointer-events-none z-10 dark:ring-primary-900",{variants:{intent:{danger:"bg-danger-500 text-white",success:"bg-success-500 text-white",warning:"bg-warning-500 text-white",info:"bg-primary-500 text-white",primary:"bg-secondary-500 text-white"},size:{sm:"text-[0.5rem]",md:"text-[0.625rem]",lg:"text-xs"},dot:{true:"",false:""},placement:{"top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2"}},compoundVariants:[{dot:true,size:"sm",class:"h-1.5 w-1.5 min-w-0 ring-1"},{dot:true,size:"md",class:"h-2 w-2 min-w-0"},{dot:true,size:"lg",class:"h-2.5 w-2.5 min-w-0"},{dot:false,size:"sm",class:"h-4 min-w-4 px-1"},{dot:false,size:"md",class:"h-5 min-w-5 px-1.5"},{dot:false,size:"lg",class:"h-6 min-w-6 px-2"}],defaultVariants:{intent:"danger",size:"md",dot:false,placement:"top-right"}});classVarianceAuthority.cva("w-full rounded-md border bg-white text-secondary-900 transition-colors placeholder:text-secondary-400 focus:outline-none focus:ring-2 dark:bg-secondary-900 dark:text-secondary-100 dark:placeholder:text-secondary-600",{variants:{state:{default:"border-secondary-300 focus:border-primary-500 focus:ring-primary-500/20 dark:border-secondary-600",error:"border-danger-400 focus:border-danger-500 focus:ring-danger-500/20"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 py-2 text-sm",lg:"h-11 px-4 py-2.5 text-base"}},defaultVariants:{state:"default",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 font-medium [&_svg]:shrink-0",{variants:{size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},intent:{default:"text-primary-700 dark:text-primary-300",muted:"text-primary-400 dark:text-primary-500",required:"text-primary-700 dark:text-primary-300 after:ml-0.5 after:text-danger-500 after:content-['*']"}},defaultVariants:{size:"md",intent:"default"}});classVarianceAuthority.cva("relative inline-flex shrink-0 items-center justify-center rounded border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4 rounded-[3px]",md:"h-5 w-5 rounded",lg:"h-6 w-6 rounded-[5px]"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("relative inline-flex shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("",{variants:{intent:{primary:"",secondary:"",danger:"",warning:"",success:""},size:{sm:"",md:"",lg:""},checked:{on:"",off:"bg-primary-300 dark:bg-primary-800"}},compoundVariants:[{intent:"primary",checked:"on",class:"bg-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"bg-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"bg-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"bg-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"bg-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});classVarianceAuthority.cva("bg-primary-200 text-primary-700 dark:bg-primary-700 dark:text-primary-200",{variants:{size:{xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-12 w-12 text-base",xl:"h-16 w-16 text-lg"},shape:{circular:"rounded-full",rounded:"rounded-lg",square:"rounded-none"}},defaultVariants:{size:"md",shape:"circular"}});classVarianceAuthority.cva("relative flex w-full touch-none select-none items-center",{variants:{intent:{primary:"[&_.slider-fill]:bg-primary-500 [&_.slider-thumb]:border-primary-500",secondary:"[&_.slider-fill]:bg-secondary-500 [&_.slider-thumb]:border-secondary-500",success:"[&_.slider-fill]:bg-success-500 [&_.slider-thumb]:border-success-500",danger:"[&_.slider-fill]:bg-danger-500 [&_.slider-thumb]:border-danger-500",warning:"[&_.slider-fill]:bg-warning-500 [&_.slider-thumb]:border-warning-500"},size:{sm:"h-4",md:"h-5",lg:"h-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("inline-flex items-center gap-1 rounded-full font-medium select-none transition-colors [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-100 text-primary-700 dark:bg-primary-800 dark:text-primary-200",secondary:"bg-secondary-100 text-secondary-700 dark:bg-secondary-800 dark:text-secondary-200",success:"bg-success-100 text-success-700 dark:bg-success-900/40 dark:text-success-300",danger:"bg-danger-100 text-danger-700 dark:bg-danger-900/40 dark:text-danger-300",warning:"bg-warning-100 text-warning-700 dark:bg-warning-900/40 dark:text-warning-300",info:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},size:{sm:"h-5 px-2 text-[0.6875rem] gap-0.5",md:"h-6 px-2.5 text-xs gap-1",lg:"h-7 px-3 text-sm gap-1"},variant:{solid:"",outline:"bg-transparent border",soft:""}},compoundVariants:[{intent:"primary",variant:"outline",class:"border-primary-300 text-primary-700 dark:border-primary-600 dark:text-primary-300"},{intent:"secondary",variant:"outline",class:"border-secondary-300 text-secondary-700 dark:border-secondary-600 dark:text-secondary-300"},{intent:"success",variant:"outline",class:"border-success-400 text-success-700 dark:border-success-600 dark:text-success-300"},{intent:"danger",variant:"outline",class:"border-danger-400 text-danger-700 dark:border-danger-600 dark:text-danger-300"},{intent:"warning",variant:"outline",class:"border-warning-400 text-warning-700 dark:border-warning-600 dark:text-warning-300"},{intent:"info",variant:"outline",class:"border-blue-400 text-blue-700 dark:border-blue-600 dark:text-blue-300"}],defaultVariants:{intent:"primary",size:"md",variant:"solid"}});classVarianceAuthority.cva("relative w-full cursor-pointer rounded-md border bg-white text-sm transition-colors dark:bg-primary-900",{variants:{intent:{default:"border-primary-300 text-primary-900 hover:border-primary-400 focus-within:border-primary-500 focus-within:ring-2 focus-within:ring-primary-500/20 dark:border-primary-600 dark:text-primary-100 dark:hover:border-primary-500 dark:focus-within:border-primary-400",danger:"border-danger-500 text-primary-900 focus-within:ring-2 focus-within:ring-danger-500/20 dark:border-danger-500 dark:text-primary-100"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 text-sm",lg:"h-11 px-4 text-base"}},defaultVariants:{intent:"default",size:"md"}});function Nr(e,r){return e.key??(typeof e.label=="string"?e.label:String(r))}var ye=40,Rr=200,Ie=150,Ue=120;function _e(e,r,t,a){if(!a)return {};if(t){let c=(r-1-e)*ye;return {animation:`dropdown-item-out ${Ie}ms ease-in both ${c}ms`}}let l=e*ye;return {animation:`dropdown-item-in ${Rr}ms ease-out both ${l}ms`}}function Cr(e,r,t){if(!t)return {};if(r){let a=Math.max(e-1,0)*ye+Ie;return {animation:`dropdown-container-out ${Ue}ms ease-in both ${a}ms`}}return {animation:"var(--animate-dropdown-container-in)"}}function ze({label:e,items:r,intent:t,size:a,align:l="left",className:c,disabled:s,editable:f=false,onAddItem:y,multiple:u=false,selected:v=[],onSelectionChange:L,animated:C=true,chevron:g=true,...w}){let[m,N]=dr.useState(false),[H,n]=dr.useState(false),[k,d]=dr.useState(""),h=dr.useRef(null),$=dr.useRef(null),O=dr.useRef(void 0);dr.useEffect(()=>()=>{O.current&&clearTimeout(O.current);},[]);let j=dr.useCallback(()=>{if(!C||!m){N(false),d("");return}n(true);let T=(Math.max(r.length,1)-1)*ye+Ie+Ue+20;O.current=setTimeout(()=>{N(false),n(false),d("");},T);},[C,m,r.length]),be=dr.useCallback(()=>{s||(m?j():(O.current&&clearTimeout(O.current),n(false),N(true),d(""),f&&requestAnimationFrame(()=>$.current?.focus())));},[s,m,j,f]);dr.useEffect(()=>{if(!m)return;let p=T=>{h.current&&!h.current.contains(T.target)&&j();};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[m,j]),dr.useEffect(()=>{if(!m)return;let p=T=>{T.key==="Escape"&&j();};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[m,j]);let W=k.toLowerCase(),Q=dr.useMemo(()=>k?r.filter(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase().includes(W)):r,[r,W]),G=dr.useMemo(()=>!f||!k.trim()?false:!r.some(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase()===W),[f,W,r]),B=dr.useCallback(()=>{let p=k.trim();p&&(y?.(p),d(""));},[k,y]),Re=dr.useCallback(p=>{p.key==="Enter"&&G&&(p.preventDefault(),B());},[G,B]),oe=dr.useCallback(p=>{let T=v.includes(p)?v.filter(I=>I!==p):[...v,p];L?.(T);},[v,L]),D=u&&v.length>0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[e," ",jsxRuntime.jsx("span",{className:"ml-1 rounded-full bg-white/20 px-1.5 text-xs font-semibold",children:v.length})]}):e,_=Q.length===0&&!G||G?1:0,se=Q.length+_;return jsxRuntime.jsxs("div",{ref:h,className:"relative inline-block",children:[jsxRuntime.jsxs("button",{type:"button",onClick:be,disabled:s,className:o(Fe({intent:t,size:a}),"inline-flex items-center gap-1",c),"aria-haspopup":u?"listbox":"true","aria-expanded":m?"true":"false",...w,children:[D,g&&jsxRuntime.jsx(lucideReact.ChevronDown,{className:o("h-3.5 w-3.5 transition-transform",m&&"rotate-180")})]}),m&&jsxRuntime.jsxs("div",{className:o("absolute z-50 mt-1 min-w-44 rounded-md border py-1 shadow-lg","border-primary-200 dark:border-primary-700 dark:bg-primary-800 bg-white",l==="right"?"right-0":"left-0"),style:Cr(se,H,C),role:u?"listbox":"menu","aria-multiselectable":u||void 0,children:[f&&jsxRuntime.jsx("div",{className:"border-primary-200 dark:border-primary-700 border-b px-2 pb-1.5 pt-1",children:jsxRuntime.jsx("input",{ref:$,type:"text",value:k,onChange:p=>d(p.target.value),onKeyDown:Re,placeholder:"Type to filter or add\u2026",className:"w-full bg-transparent text-sm text-secondary-900 placeholder:text-secondary-400 focus:outline-none dark:text-secondary-100 dark:placeholder:text-secondary-600"})}),jsxRuntime.jsxs("div",{className:"max-h-60 overflow-y-auto",children:[Q.map((p,T)=>{let I=Nr(p,T),J=u&&v.includes(I);return jsxRuntime.jsxs(dr__default.default.Fragment,{children:[p.divider&&jsxRuntime.jsx("div",{className:"border-primary-200 dark:border-primary-700 my-1 border-t"}),jsxRuntime.jsxs("button",{type:"button",role:u?"option":"menuitem","aria-selected":u?J:void 0,disabled:p.disabled,className:o("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-700 hover:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-700/50",p.disabled&&"pointer-events-none opacity-50"),style:_e(T,se,H,C),onClick:()=>{u?oe(I):(p.onClick?.(),O.current&&clearTimeout(O.current),N(false),n(false),d(""));},children:[u&&jsxRuntime.jsx("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors",J?"border-primary-600 bg-primary-600 text-white dark:border-primary-500 dark:bg-primary-500":"border-secondary-300 bg-white dark:border-secondary-600 dark:bg-secondary-800"),children:J&&jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3"})}),jsxRuntime.jsx("span",{className:"flex-1 truncate",children:p.label})]})]},I)}),Q.length===0&&!G&&jsxRuntime.jsx("div",{className:"text-primary-400 px-3 py-2 text-center text-sm",style:_e(0,1,H,C),children:"No matches"}),G&&jsxRuntime.jsxs("button",{type:"button",className:o("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-600 hover:bg-primary-50 dark:text-primary-400 dark:hover:bg-primary-900/30"),style:_e(Q.length,se,H,C),onClick:B,children:[jsxRuntime.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center text-lg leading-none",children:"+"}),jsxRuntime.jsxs("span",{className:"truncate",children:["Add \u201C",k.trim(),"\u201D"]})]})]})]})]})}function Pr({href:e,className:r,onClick:t,children:a}){return jsxRuntime.jsx("a",{href:e,className:r,onClick:t,children:a})}function Ve({brand:e,onBrandClick:r,navItems:t=[],actions:a=[],linkComponent:l=Pr,height:c="h-12",mobileMenu:s=false,navMenuIcon:f,actionsMenuIcon:y,className:u,children:v}){let L=s&&t.length>0,C=s&&a.length>0,g="md:hidden rounded-md px-1.5 py-1.5 text-primary-500 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-200 [&_svg]:h-5 [&_svg]:w-5",w=n=>n?"text-primary-900 font-medium dark:text-primary-100":"text-primary-500 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-200 transition-colors",m="rounded-md p-1.5 text-primary-500 hover:bg-primary-100 hover:text-primary-700 dark:text-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-200 transition-colors [&_svg]:h-5 [&_svg]:w-5",N=t.map((n,k)=>({key:typeof n.label=="string"?n.label:String(k),label:n.active?jsxRuntime.jsx("span",{className:"font-semibold text-primary-900 dark:text-primary-100",children:n.label}):n.label,onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(window.location.href=n.href);}})),H=a.map((n,k)=>({key:n.key??String(k),label:jsxRuntime.jsxs("span",{className:"flex items-center gap-2 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0",children:[n.icon,jsxRuntime.jsx("span",{children:n.ariaLabel})]}),onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(n.external?window.open(n.href,"_blank","noopener,noreferrer"):window.location.href=n.href);}}));return jsxRuntime.jsxs("header",{className:o("flex shrink-0 items-center justify-between border-b px-5","border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",c,u),children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 md:gap-6",children:[e&&jsxRuntime.jsx("div",{className:o("text-lg font-bold text-primary-800 dark:text-primary-100",r&&"cursor-pointer"),onClick:r,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r(n));}:void 0,children:e}),L&&jsxRuntime.jsx(ze,{intent:"ghost",size:"sm",className:g,label:f??jsxRuntime.jsx(lucideReact.PanelLeft,{className:"h-5 w-5"}),items:N,align:"left",chevron:false,"aria-label":"Open navigation"}),t.length>0&&jsxRuntime.jsx("nav",{className:o("flex items-center gap-4 text-sm",s?"hidden md:flex":"flex"),children:t.map((n,k)=>{let d=typeof n.label=="string"?n.label:k,h=w(n.active);return n.href?jsxRuntime.jsx(l,{href:n.href,className:h,onClick:n.onClick,children:n.label},d):jsxRuntime.jsx("button",{type:"button",className:o(h,"cursor-pointer"),onClick:n.onClick,children:n.label},d)})})]}),v&&jsxRuntime.jsx("div",{className:"flex items-center",children:v}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[a.length>0&&jsxRuntime.jsx("div",{className:o("flex items-center gap-1",s?"hidden md:flex":"flex"),children:a.map((n,k)=>n.href?jsxRuntime.jsx("a",{href:n.href,target:n.external?"_blank":void 0,rel:n.external?"noopener noreferrer":void 0,className:m,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??k):jsxRuntime.jsx("button",{type:"button",className:m,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??k))}),C&&jsxRuntime.jsx(ze,{intent:"ghost",size:"sm",className:g,label:y??jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-5 w-5"}),items:H,align:"right",chevron:false,"aria-label":"Open menu"})]})]})}var We=classVarianceAuthority.cva("inline-flex items-center gap-1 underline-offset-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/20 [&_svg]:shrink-0",{variants:{intent:{default:"text-primary-600 hover:text-primary-800 active:text-primary-900 dark:text-primary-400 dark:hover:text-primary-200 dark:active:text-primary-100",secondary:"text-secondary-500 hover:text-secondary-700 active:text-secondary-800 dark:text-secondary-400 dark:hover:text-secondary-200 dark:active:text-secondary-100",muted:"text-primary-400 hover:text-primary-600 dark:text-primary-500 dark:hover:text-primary-300"},size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},underline:{always:"underline",hover:"hover:underline",none:"no-underline"}},defaultVariants:{intent:"default",size:"md",underline:"none"}});function Er(e,r){return !!(r==="_blank"||e&&/^https?:\/\//.test(e))}var _r=e=>jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":true,...e,children:[jsxRuntime.jsx("path",{d:"M15 3h6v6"}),jsxRuntime.jsx("path",{d:"M10 14 21 3"}),jsxRuntime.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]});function He({intent:e,size:r,underline:t,external:a,className:l,children:c,href:s,target:f,rel:y,...u}){let v=a??Er(s,f);return jsxRuntime.jsxs("a",{href:s,target:v&&!f?"_blank":f,rel:v&&!y?"noopener noreferrer":y,className:o(We({intent:e,size:r,underline:t}),l),...u,children:[c,v&&jsxRuntime.jsx(_r,{})]})}function ke({items:e,separator:r=jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3.5 w-3.5","aria-hidden":"true"}),homeIcon:t=false,LinkComponent:a="a",className:l}){return jsxRuntime.jsx("nav",{"aria-label":"Breadcrumb",className:o("flex",l),children:jsxRuntime.jsx("ol",{className:"flex flex-wrap items-center gap-1 text-sm",children:e.map((c,s)=>{let f=s===e.length-1,y=t===true?jsxRuntime.jsx(lucideReact.Home,{className:"h-3.5 w-3.5"}):t!==false&&t!==void 0?t:null,u=s===0&&y?y:c.icon;return jsxRuntime.jsxs("li",{className:"flex items-center gap-1",children:[s>0&&jsxRuntime.jsx("span",{className:"text-secondary-400 dark:text-secondary-500",children:r}),f?jsxRuntime.jsxs("span",{"aria-current":"page",className:o("flex items-center gap-1 font-medium text-primary-800 dark:text-primary-100",u&&"gap-1.5"),children:[u,c.label]}):c.href?jsxRuntime.jsxs(a,{href:c.href,className:o("flex items-center gap-1 text-secondary-500 transition-colors","hover:text-primary-700 dark:text-secondary-400 dark:hover:text-primary-200","rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",u&&"gap-1.5"),children:[u,c.label]}):jsxRuntime.jsxs("span",{className:"flex items-center gap-1 text-secondary-500 dark:text-secondary-400",children:[u,c.label]})]},s)})})})}function we(e,r){let t=[];for(let a=e;a<=r;a++)t.push(a);return t}function Yr(e,r,t){let a=t*2+5;if(r<=a)return we(1,r);let l=Math.max(e-t,1),c=Math.min(e+t,r),s=l>2,f=c<r-1;return !s&&f?[...we(1,3+t*2),"\u2026",r]:s&&!f?[1,"\u2026",...we(r-(3+t*2)+1,r)]:[1,"\u2026",...we(l,c),"\u2026",r]}var Ze={sm:"h-7 min-w-7 px-1.5 text-xs",md:"h-9 min-w-9 px-2 text-sm",lg:"h-11 min-w-11 px-2.5 text-base"},me={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5"};function ue({onClick:e,disabled:r,active:t,size:a,"aria-label":l,children:c}){return jsxRuntime.jsx("button",{type:"button",onClick:e,disabled:r,"aria-label":l,"aria-current":t?"page":void 0,className:o("inline-flex items-center justify-center rounded font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",Ze[a],t?"bg-primary-600 text-white dark:bg-primary-500":"border border-primary-200 bg-white text-primary-700 hover:bg-primary-50 dark:border-primary-700 dark:bg-primary-900 dark:text-primary-300 dark:hover:bg-primary-800",r&&"pointer-events-none opacity-40"),children:c})}function Ne({totalPages:e,currentPage:r,onPageChange:t,siblingCount:a=2,showFirstLast:l=true,showPageCount:c=false,size:s="md",className:f}){if(e<=1)return null;let y=Yr(r,e,a);return jsxRuntime.jsxs("nav",{"aria-label":"Pagination",className:o("flex items-center gap-1",f),children:[l&&jsxRuntime.jsx(ue,{size:s,onClick:()=>t(1),disabled:r===1,"aria-label":"First page",children:jsxRuntime.jsx(lucideReact.ChevronsLeft,{className:me[s]})}),jsxRuntime.jsx(ue,{size:s,onClick:()=>t(r-1),disabled:r===1,"aria-label":"Previous page",children:jsxRuntime.jsx(lucideReact.ChevronLeft,{className:me[s]})}),y.map((u,v)=>u==="\u2026"?jsxRuntime.jsx("span",{className:o("inline-flex items-center justify-center text-secondary-400",Ze[s]),"aria-hidden":"true",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:me[s]})},`ellipsis-${v}`):jsxRuntime.jsx(ue,{size:s,active:u===r,onClick:()=>t(u),"aria-label":`Page ${u}`,children:u},u)),jsxRuntime.jsx(ue,{size:s,onClick:()=>t(r+1),disabled:r===e,"aria-label":"Next page",children:jsxRuntime.jsx(lucideReact.ChevronRight,{className:me[s]})}),l&&jsxRuntime.jsx(ue,{size:s,onClick:()=>t(e),disabled:r===e,"aria-label":"Last page",children:jsxRuntime.jsx(lucideReact.ChevronsRight,{className:me[s]})}),c&&jsxRuntime.jsxs("span",{className:"ml-2 text-sm text-secondary-500 dark:text-secondary-400",children:["Page ",r," of ",e]})]})}function er({item:e,mode:r}){return e.separator?jsxRuntime.jsx("div",{className:"mx-1 h-10 w-px self-center bg-primary-200 dark:bg-primary-700","aria-hidden":true}):jsxRuntime.jsxs("button",{type:"button",title:e.title??e.label,disabled:e.disabled,onClick:e.onClick,"aria-pressed":e.active,className:o("relative flex shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400","disabled:cursor-not-allowed disabled:opacity-40",e.active?"bg-primary-100 text-primary-700 shadow-inner dark:bg-primary-800 dark:text-primary-200":"text-primary-700 hover:bg-primary-50 active:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-800",r==="full"?"min-w-[3.5rem] flex-col gap-0.5 py-2":"","[&_svg]:shrink-0",r==="full"?"[&_svg]:h-5 [&_svg]:w-5":"[&_svg]:h-4 [&_svg]:w-4"),children:[e.icon&&jsxRuntime.jsx("span",{children:e.icon}),r!=="icons"&&jsxRuntime.jsx("span",{className:o(r==="full"?"text-[0.6rem] leading-tight":""),children:e.label})]})}function $r({group:e,mode:r,disabled:t=false}){return jsxRuntime.jsxs("div",{className:o("flex shrink-0 flex-col items-stretch",t&&"opacity-50"),children:[jsxRuntime.jsx("div",{className:"flex items-center gap-0.5 px-1",children:e.items.map(a=>jsxRuntime.jsx(er,{item:t?{...a,disabled:true}:a,mode:r},a.key))}),r==="full"&&jsxRuntime.jsx("div",{className:"mt-1 border-t border-primary-100 px-2 pt-0.5 text-center dark:border-primary-800",children:jsxRuntime.jsx("span",{className:"text-[0.55rem] text-secondary-400 dark:text-secondary-500",children:e.label})})]})}function De({tabs:e,defaultTab:r,activeTab:t,onTabChange:a,mode:l,onModeChange:c,sticky:s=false,className:f}){let y=e.filter(d=>!d.hidden),[u,v]=dr.useState(r??y[0]?.key??""),[L,C]=dr.useState(l??"full"),[g,w]=dr.useState(true),m=t??u,N=l??L,H=d=>{if(!y.find($=>$.key===d)?.disabled){if(d===m&&N!=="icons"){w($=>!$);return}v(d),a?.(d),w(true);}},k=y.find(d=>d.key===m)??y[0];return jsxRuntime.jsxs("div",{className:o("select-none border-b border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",s&&"sticky top-0 z-30",f),children:[jsxRuntime.jsxs("div",{className:"flex items-center border-b border-primary-100 dark:border-primary-800",children:[jsxRuntime.jsx("div",{className:"flex flex-1 items-end overflow-x-auto",children:y.map(d=>jsxRuntime.jsxs("button",{type:"button",disabled:d.disabled,onClick:()=>H(d.key),className:o("flex shrink-0 items-center gap-1.5 border-b-2 px-4 py-2 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 [&_svg]:h-4 [&_svg]:w-4",d.disabled?"cursor-not-allowed border-transparent text-secondary-300 opacity-50 dark:text-secondary-600":d.key===m&&g?"border-primary-500 text-primary-700 dark:border-primary-400 dark:text-primary-200":"border-transparent text-secondary-500 hover:border-primary-300 hover:text-primary-600 dark:text-secondary-400 dark:hover:text-primary-300"),children:[d.icon,d.label]},d.key))}),jsxRuntime.jsx("button",{type:"button",title:g?"Collapse ribbon":"Expand ribbon",onClick:()=>w(d=>!d),className:"ml-auto mr-2 rounded-md p-1.5 text-secondary-400 transition-colors hover:bg-primary-50 hover:text-primary-600 dark:hover:bg-primary-800 dark:hover:text-primary-300",children:g?jsxRuntime.jsx(lucideReact.ChevronUp,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-4 w-4"})})]}),g&&k&&N!=="icons"&&jsxRuntime.jsx("div",{className:"flex items-stretch gap-1 overflow-x-auto px-2 py-1.5",children:k.groups.map((d,h)=>jsxRuntime.jsxs(dr__default.default.Fragment,{children:[h>0&&jsxRuntime.jsx("div",{className:"mx-1 h-auto w-px self-stretch bg-primary-100 dark:bg-primary-800"}),jsxRuntime.jsx($r,{group:d,mode:N,disabled:d.disabled||k.disabled})]},d.key))}),N==="icons"&&g&&k&&jsxRuntime.jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto px-2 py-1",children:k.groups.flatMap(d=>d.items.map(h=>jsxRuntime.jsx(er,{item:d.disabled||k.disabled?{...h,disabled:true}:h,mode:"icons"},h.key)))})]})}var jr={SideNav:Le,Header:Ve,NavLink:He,Breadcrumb:ke,Pagination:Ne,RibbonBar:De},en=jr;
|
|
2
|
+
exports.Breadcrumb=ke;exports.Header=Ve;exports.NavLink=He;exports.Navigation=jr;exports.Pagination=Ne;exports.RibbonBar=De;exports.SideNav=Le;exports.default=en;
|
package/dist/Navigation/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import Xe,{useState,useCallback,useEffect,useRef,useMemo,useLayoutEffect}from'react';import {createPortal}from'react-dom';import {Menu,ChevronsLeft,X,ChevronRight,PanelLeft,MoreHorizontal,Home,ChevronLeft,ChevronsRight,ChevronUp,ChevronDown,Check}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {cva}from'class-variance-authority';function i(...e){return twMerge(clsx(e))}var Y="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",Ie="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",U="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",W="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function Ze({to:e,className:r,style:t,children:a}){let d=typeof r=="function"?r({isActive:false}):r;return jsx("a",{href:e,className:d,style:t,children:a})}var xe=["expanded","icons","mini"];function er(e){let r=xe.indexOf(e);return xe[(r+1)%xe.length]}function ze(e){let r=new Set;for(let t of e)if(t.children&&t.children.length>0){r.add(t.key??t.label);for(let a of ze(t.children))r.add(a);}return r}function Ve({item:e,basePath:r,depth:t,onItemClick:a,LinkComponent:d,showLines:l,expandedKeys:s,onToggle:f}){let y=e.key??e.label,m=e.children&&e.children.length>0,[x,L]=useState(e.defaultOpen??true),N=s?s.has(y):x,u=useCallback(()=>{s?f(y):L(c=>!c);},[s,f,y]),v=t>0?`${t*1.25}rem`:void 0;if(m)return jsxs("div",{children:[jsxs("button",{type:"button",onClick:u,className:i(Y,U,"justify-between"),style:{paddingLeft:v},children:[jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsx(ChevronRight,{className:i("h-3.5 w-3.5 transition-transform",N&&"rotate-90")})]}),N&&jsx("div",{className:i("flex flex-col gap-0.5 pt-0.5",l?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(c=>jsx(Ve,{item:c,basePath:r,depth:t+1,onItemClick:a,LinkComponent:d,showLines:l,expandedKeys:s,onToggle:f},c.key??c.path??c.label))})]});if(e.path!=null){let c=r+e.path;return a?jsxs("button",{type:"button",onClick:()=>a(e,c),className:i(Y,U),style:{paddingLeft:v},children:[e.icon,e.label]}):jsxs(d,{to:c,className:({isActive:w})=>i(Y,w?Ie:U),style:{paddingLeft:v},children:[e.icon,e.label]})}return jsxs("span",{className:i(Y,U,"cursor-default"),style:{paddingLeft:v},children:[e.icon,e.label]})}function rr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let[d,l]=useState(false),s=useRef(null),f=useRef(void 0),[y,m]=useState({top:0,left:0}),x=()=>{clearTimeout(f.current),l(true);},L=()=>{f.current=setTimeout(()=>l(false),200);};useLayoutEffect(()=>{if(d&&s.current){let u=s.current.getBoundingClientRect();m({top:u.top,left:u.right+4});}},[d]);let N=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxs("div",{onMouseEnter:x,onMouseLeave:L,children:[jsx("button",{ref:s,type:"button",className:i(W,"w-full"),title:e.label,onClick:()=>l(u=>!u),children:N}),d&&createPortal(jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:y.top,left:y.left},onMouseEnter:x,onMouseLeave:L,children:[jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(u=>{let v=u.key??u.path??u.label;if(u.path!=null){let c=r+u.path;return t?jsxs("button",{type:"button",onClick:()=>{t(u,c),l(false);},className:i(Y,U),children:[u.icon,u.label]},v):jsxs(a,{to:c,className:({isActive:w})=>i(Y,w?Ie:U),children:[u.icon,u.label]},v)}return jsxs("span",{className:i(Y,"cursor-default text-primary-400"),children:[u.icon,u.label]},v)})})]}),document.body)]})}function tr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let d=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let l=r+e.path;return t?jsx("button",{type:"button",onClick:()=>t(e,l),className:i(W,"w-full"),title:e.label,children:d}):jsx(a,{to:l,className:({isActive:s})=>i(W,"w-full",s&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsx("span",{title:e.label,children:d})})}return jsx("span",{className:i(W,"w-full cursor-default"),title:e.label,children:d})}function ve({items:e,title:r,basePath:t="/",onItemClick:a,LinkComponent:d=Ze,collapsible:l,collapseMode:s,defaultCollapseMode:f="expanded",onCollapseModeChange:y,showLines:m=true,expandedKeys:x,defaultExpandedKeys:L="all",onExpandedKeysChange:N,className:u,responsive:v=true,mobileBreakpoint:c=768,mobileTopOffset:w=48,...z}){let[n,h]=useState(f),o=s??n,R=Xe.useMemo(()=>ze(e),[e]),[$,B]=useState(()=>L==="all"?new Set(R):new Set(L)),H=x??null,oe=H??$,q=useCallback(b=>{let k=new Set(oe);k.has(b)?k.delete(b):k.add(b),B(k),N?.(k);},[oe,N]),j=useCallback(()=>{let b=er(o);h(b),y?.(b);},[o,y]),[P,J]=useState(()=>v&&typeof window<"u"&&window.innerWidth<c),[Z,A]=useState(false);useEffect(()=>{if(!v||typeof window>"u"||!window.matchMedia)return;let b=window.matchMedia(`(max-width: ${c-1}px)`),k=O=>{J(O.matches),O.matches||A(false);};return b.addEventListener("change",k),()=>b.removeEventListener("change",k)},[v,c]);let ge=useCallback(b=>{b.target.closest("a")&&A(false);},[]),D=useRef(null),_=useRef({startX:0,startY:0,dragging:false}),T=useCallback(b=>{let k=b.touches[0];_.current={startX:k.clientX,startY:k.clientY,dragging:true};},[]),G=useCallback(b=>{if(!_.current.dragging||!D.current)return;let k=b.touches[0],O=k.clientX-_.current.startX,ye=k.clientY-_.current.startY;O>=0||Math.abs(ye)>Math.abs(O)||(D.current.style.transform=`translateX(${Math.max(O,-224)}px)`,D.current.style.transition="none");},[]),ee=useCallback(b=>{if(!_.current.dragging||!D.current)return;_.current.dragging=false;let k=b.changedTouches[0],O=k.clientX-_.current.startX,ye=k.clientY-_.current.startY;D.current.style.transition="",D.current.style.transform="",O<-60&&Math.abs(O)>Math.abs(ye)&&A(false);},[]),fe=useMemo(()=>!P||!a?a:(b,k)=>{A(false),a(b,k);},[P,a]),_e=jsxs(Fragment,{children:[l&&!P&&jsx("div",{className:i("flex shrink-0 mb-1",o==="expanded"?"justify-end":"justify-center"),children:jsx("button",{type:"button",onClick:j,className:W,"aria-label":o==="mini"?"Expand sidebar":"Collapse sidebar",title:o==="mini"?"Expand sidebar":"Collapse sidebar",children:o==="mini"?jsx(Menu,{className:"h-5 w-5"}):jsx(ChevronsLeft,{className:"h-4 w-4"})})}),(P||o==="expanded")&&jsxs(Fragment,{children:[r&&jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:r}),e.map(b=>jsx(Ve,{item:b,basePath:t,depth:0,onItemClick:fe,LinkComponent:d,showLines:m,expandedKeys:H,onToggle:q},b.key??b.path??b.label))]}),!P&&o==="icons"&&e.map(b=>{let k=b.key??b.path??b.label;return b.children&&b.children.length>0?jsx(rr,{item:b,basePath:t,onItemClick:fe,LinkComponent:d},k):jsx(tr,{item:b,basePath:t,onItemClick:fe,LinkComponent:d},k)})]});return v&&P?jsxs(Fragment,{children:[Z&&createPortal(jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:w},onClick:()=>A(false)}),document.body),createPortal(jsxs("aside",{ref:D,className:i("fixed bottom-0 left-0 z-50 flex flex-col w-56 border-r border-primary-200 dark:border-primary-700 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",Z?"translate-x-0":"-translate-x-full"),style:{top:w},onClick:ge,onTouchStart:T,onTouchMove:G,onTouchEnd:ee,children:[jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsx("button",{type:"button",onClick:b=>{b.stopPropagation(),A(false);},className:i(W,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsx(X,{className:"h-4 w-4"})})]}),jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsx("nav",{className:"flex flex-col gap-0.5",children:_e})})]}),document.body),!Z&&createPortal(jsx("button",{type:"button",className:"fixed left-0 z-50 flex h-14 w-5 items-center justify-center rounded-r-xl bg-primary-800/80 text-white shadow-md backdrop-blur-sm transition-colors hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",style:{top:`calc(50% + ${w/2}px)`,transform:"translateY(-50%)"},onClick:()=>A(true),"aria-label":"Open navigation",children:jsx(ChevronRight,{className:"h-3.5 w-3.5"})}),document.body)]}):jsx("nav",{className:i("flex flex-col gap-0.5",o==="mini"&&"items-center",u),...z,children:_e})}var Be=cva("inline-flex cursor-pointer items-center justify-center gap-1.5 rounded font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700",secondary:"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700",danger:"bg-danger-500 text-white hover:bg-danger-600 active:bg-danger-700",warning:"bg-warning-500 text-white hover:bg-warning-600 active:bg-warning-700",ghost:"bg-transparent text-primary-700 hover:bg-primary-100 active:bg-primary-200 dark:text-primary-300 dark:hover:bg-primary-800",outline:"border border-primary-300 bg-transparent text-primary-700 hover:bg-primary-50 dark:border-primary-600 dark:text-primary-300 dark:hover:bg-primary-800"},size:{sm:"h-7 px-3 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"h-9 px-4 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"h-11 px-6 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded border font-semibold [&_svg]:shrink-0",{variants:{intent:{success:"border-success-200 bg-success-100 text-success-800 dark:border-success-800 dark:bg-success-900/30 dark:text-success-400",warning:"border-warning-200 bg-warning-100 text-warning-800 dark:border-warning-800 dark:bg-warning-900/30 dark:text-warning-400",error:"border-danger-200 bg-danger-100 text-danger-800 dark:border-danger-800 dark:bg-danger-900/30 dark:text-danger-400",info:"border-primary-200 bg-primary-100 text-primary-800 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-400",primary:"border-secondary-200 bg-secondary-100 text-secondary-700 dark:border-secondary-700 dark:bg-secondary-800 dark:text-secondary-300"},size:{sm:"px-1.5 py-0 text-[0.625rem] [&_svg]:h-2.5 [&_svg]:w-2.5",md:"px-2.5 py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",lg:"px-3 py-1 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5"}},defaultVariants:{intent:"primary",size:"md"}});cva("absolute flex items-center justify-center rounded-full font-bold leading-none ring-2 ring-white select-none pointer-events-none z-10 dark:ring-primary-900",{variants:{intent:{danger:"bg-danger-500 text-white",success:"bg-success-500 text-white",warning:"bg-warning-500 text-white",info:"bg-primary-500 text-white",primary:"bg-secondary-500 text-white"},size:{sm:"text-[0.5rem]",md:"text-[0.625rem]",lg:"text-xs"},dot:{true:"",false:""},placement:{"top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2"}},compoundVariants:[{dot:true,size:"sm",class:"h-1.5 w-1.5 min-w-0 ring-1"},{dot:true,size:"md",class:"h-2 w-2 min-w-0"},{dot:true,size:"lg",class:"h-2.5 w-2.5 min-w-0"},{dot:false,size:"sm",class:"h-4 min-w-4 px-1"},{dot:false,size:"md",class:"h-5 min-w-5 px-1.5"},{dot:false,size:"lg",class:"h-6 min-w-6 px-2"}],defaultVariants:{intent:"danger",size:"md",dot:false,placement:"top-right"}});cva("w-full rounded-md border bg-white text-secondary-900 transition-colors placeholder:text-secondary-400 focus:outline-none focus:ring-2 dark:bg-secondary-900 dark:text-secondary-100 dark:placeholder:text-secondary-600",{variants:{state:{default:"border-secondary-300 focus:border-primary-500 focus:ring-primary-500/20 dark:border-secondary-600",error:"border-danger-400 focus:border-danger-500 focus:ring-danger-500/20"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 py-2 text-sm",lg:"h-11 px-4 py-2.5 text-base"}},defaultVariants:{state:"default",size:"md"}});cva("inline-flex items-center gap-1 font-medium [&_svg]:shrink-0",{variants:{size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},intent:{default:"text-primary-700 dark:text-primary-300",muted:"text-primary-400 dark:text-primary-500",required:"text-primary-700 dark:text-primary-300 after:ml-0.5 after:text-danger-500 after:content-['*']"}},defaultVariants:{size:"md",intent:"default"}});cva("relative inline-flex shrink-0 items-center justify-center rounded border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4 rounded-[3px]",md:"h-5 w-5 rounded",lg:"h-6 w-6 rounded-[5px]"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("relative inline-flex shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("",{variants:{intent:{primary:"",secondary:"",danger:"",warning:"",success:""},size:{sm:"",md:"",lg:""},checked:{on:"",off:"bg-primary-300 dark:bg-primary-800"}},compoundVariants:[{intent:"primary",checked:"on",class:"bg-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"bg-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"bg-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"bg-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"bg-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("bg-primary-200 text-primary-700 dark:bg-primary-700 dark:text-primary-200",{variants:{size:{xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-12 w-12 text-base",xl:"h-16 w-16 text-lg"},shape:{circular:"rounded-full",rounded:"rounded-lg",square:"rounded-none"}},defaultVariants:{size:"md",shape:"circular"}});cva("relative flex w-full touch-none select-none items-center",{variants:{intent:{primary:"[&_.slider-fill]:bg-primary-500 [&_.slider-thumb]:border-primary-500",secondary:"[&_.slider-fill]:bg-secondary-500 [&_.slider-thumb]:border-secondary-500",success:"[&_.slider-fill]:bg-success-500 [&_.slider-thumb]:border-success-500",danger:"[&_.slider-fill]:bg-danger-500 [&_.slider-thumb]:border-danger-500",warning:"[&_.slider-fill]:bg-warning-500 [&_.slider-thumb]:border-warning-500"},size:{sm:"h-4",md:"h-5",lg:"h-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded-full font-medium select-none transition-colors [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-100 text-primary-700 dark:bg-primary-800 dark:text-primary-200",secondary:"bg-secondary-100 text-secondary-700 dark:bg-secondary-800 dark:text-secondary-200",success:"bg-success-100 text-success-700 dark:bg-success-900/40 dark:text-success-300",danger:"bg-danger-100 text-danger-700 dark:bg-danger-900/40 dark:text-danger-300",warning:"bg-warning-100 text-warning-700 dark:bg-warning-900/40 dark:text-warning-300",info:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},size:{sm:"h-5 px-2 text-[0.6875rem] gap-0.5",md:"h-6 px-2.5 text-xs gap-1",lg:"h-7 px-3 text-sm gap-1"},variant:{solid:"",outline:"bg-transparent border",soft:""}},compoundVariants:[{intent:"primary",variant:"outline",class:"border-primary-300 text-primary-700 dark:border-primary-600 dark:text-primary-300"},{intent:"secondary",variant:"outline",class:"border-secondary-300 text-secondary-700 dark:border-secondary-600 dark:text-secondary-300"},{intent:"success",variant:"outline",class:"border-success-400 text-success-700 dark:border-success-600 dark:text-success-300"},{intent:"danger",variant:"outline",class:"border-danger-400 text-danger-700 dark:border-danger-600 dark:text-danger-300"},{intent:"warning",variant:"outline",class:"border-warning-400 text-warning-700 dark:border-warning-600 dark:text-warning-300"},{intent:"info",variant:"outline",class:"border-blue-400 text-blue-700 dark:border-blue-600 dark:text-blue-300"}],defaultVariants:{intent:"primary",size:"md",variant:"solid"}});cva("relative w-full cursor-pointer rounded-md border bg-white text-sm transition-colors dark:bg-primary-900",{variants:{intent:{default:"border-primary-300 text-primary-900 hover:border-primary-400 focus-within:border-primary-500 focus-within:ring-2 focus-within:ring-primary-500/20 dark:border-primary-600 dark:text-primary-100 dark:hover:border-primary-500 dark:focus-within:border-primary-400",danger:"border-danger-500 text-primary-900 focus-within:ring-2 focus-within:ring-danger-500/20 dark:border-danger-500 dark:text-primary-100"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 text-sm",lg:"h-11 px-4 text-base"}},defaultVariants:{intent:"default",size:"md"}});function sr(e,r){return e.key??(typeof e.label=="string"?e.label:String(r))}var de=40,ir=200,Ce=150,Ae=120;function Re(e,r,t,a){if(!a)return {};if(t){let l=(r-1-e)*de;return {animation:`dropdown-item-out ${Ce}ms ease-in both ${l}ms`}}let d=e*de;return {animation:`dropdown-item-in ${ir}ms ease-out both ${d}ms`}}function dr(e,r,t){if(!t)return {};if(r){let a=Math.max(e-1,0)*de+Ce;return {animation:`dropdown-container-out ${Ae}ms ease-in both ${a}ms`}}return {animation:"var(--animate-dropdown-container-in)"}}function Me({label:e,items:r,intent:t,size:a,align:d="left",className:l,disabled:s,editable:f=false,onAddItem:y,multiple:m=false,selected:x=[],onSelectionChange:L,animated:N=true,chevron:u=true,...v}){let[c,w]=useState(false),[z,n]=useState(false),[h,o]=useState(""),R=useRef(null),$=useRef(null),B=useRef(void 0);useEffect(()=>()=>{B.current&&clearTimeout(B.current);},[]);let H=useCallback(()=>{if(!N||!c){w(false),o("");return}n(true);let T=(Math.max(r.length,1)-1)*de+Ce+Ae+20;B.current=setTimeout(()=>{w(false),n(false),o("");},T);},[N,c,r.length]),oe=useCallback(()=>{s||(c?H():(B.current&&clearTimeout(B.current),n(false),w(true),o(""),f&&requestAnimationFrame(()=>$.current?.focus())));},[s,c,H,f]);useEffect(()=>{if(!c)return;let p=T=>{R.current&&!R.current.contains(T.target)&&H();};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[c,H]),useEffect(()=>{if(!c)return;let p=T=>{T.key==="Escape"&&H();};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[c,H]);let q=h.toLowerCase(),j=useMemo(()=>h?r.filter(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase().includes(q)):r,[r,q]),P=useMemo(()=>!f||!h.trim()?false:!r.some(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase()===q),[f,q,r]),J=useCallback(()=>{let p=h.trim();p&&(y?.(p),o(""));},[h,y]),Z=useCallback(p=>{p.key==="Enter"&&P&&(p.preventDefault(),J());},[P,J]),A=useCallback(p=>{let T=x.includes(p)?x.filter(G=>G!==p):[...x,p];L?.(T);},[x,L]),ge=m&&x.length>0?jsxs(Fragment,{children:[e," ",jsx("span",{className:"ml-1 rounded-full bg-white/20 px-1.5 text-xs font-semibold",children:x.length})]}):e,D=j.length===0&&!P||P?1:0,_=j.length+D;return jsxs("div",{ref:R,className:"relative inline-block",children:[jsxs("button",{type:"button",onClick:oe,disabled:s,className:i(Be({intent:t,size:a}),"inline-flex items-center gap-1",l),"aria-haspopup":m?"listbox":"true","aria-expanded":c?"true":"false",...v,children:[ge,u&&jsx(ChevronDown,{className:i("h-3.5 w-3.5 transition-transform",c&&"rotate-180")})]}),c&&jsxs("div",{className:i("absolute z-50 mt-1 min-w-44 rounded-md border py-1 shadow-lg","border-primary-200 dark:border-primary-700 dark:bg-primary-800 bg-white",d==="right"?"right-0":"left-0"),style:dr(_,z,N),role:m?"listbox":"menu","aria-multiselectable":m||void 0,children:[f&&jsx("div",{className:"border-primary-200 dark:border-primary-700 border-b px-2 pb-1.5 pt-1",children:jsx("input",{ref:$,type:"text",value:h,onChange:p=>o(p.target.value),onKeyDown:Z,placeholder:"Type to filter or add\u2026",className:"w-full bg-transparent text-sm text-secondary-900 placeholder:text-secondary-400 focus:outline-none dark:text-secondary-100 dark:placeholder:text-secondary-600"})}),jsxs("div",{className:"max-h-60 overflow-y-auto",children:[j.map((p,T)=>{let G=sr(p,T),ee=m&&x.includes(G);return jsxs(Xe.Fragment,{children:[p.divider&&jsx("div",{className:"border-primary-200 dark:border-primary-700 my-1 border-t"}),jsxs("button",{type:"button",role:m?"option":"menuitem","aria-selected":m?ee:void 0,disabled:p.disabled,className:i("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-700 hover:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-700/50",p.disabled&&"pointer-events-none opacity-50"),style:Re(T,_,z,N),onClick:()=>{m?A(G):(p.onClick?.(),B.current&&clearTimeout(B.current),w(false),n(false),o(""));},children:[m&&jsx("span",{className:i("flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors",ee?"border-primary-600 bg-primary-600 text-white dark:border-primary-500 dark:bg-primary-500":"border-secondary-300 bg-white dark:border-secondary-600 dark:bg-secondary-800"),children:ee&&jsx(Check,{className:"h-3 w-3"})}),jsx("span",{className:"flex-1 truncate",children:p.label})]})]},G)}),j.length===0&&!P&&jsx("div",{className:"text-primary-400 px-3 py-2 text-center text-sm",style:Re(0,1,z,N),children:"No matches"}),P&&jsxs("button",{type:"button",className:i("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-600 hover:bg-primary-50 dark:text-primary-400 dark:hover:bg-primary-900/30"),style:Re(j.length,_,z,N),onClick:J,children:[jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center text-lg leading-none",children:"+"}),jsxs("span",{className:"truncate",children:["Add \u201C",h.trim(),"\u201D"]})]})]})]})]})}function mr({href:e,className:r,onClick:t,children:a}){return jsx("a",{href:e,className:r,onClick:t,children:a})}function Le({brand:e,onBrandClick:r,navItems:t=[],actions:a=[],linkComponent:d=mr,height:l="h-12",mobileMenu:s=false,navMenuIcon:f,actionsMenuIcon:y,className:m,children:x}){let L=s&&t.length>0,N=s&&a.length>0,u="md:hidden rounded-md px-1.5 py-1.5 text-primary-500 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-200 [&_svg]:h-5 [&_svg]:w-5",v=n=>n?"text-primary-900 font-medium dark:text-primary-100":"text-primary-500 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-200 transition-colors",c="rounded-md p-1.5 text-primary-500 hover:bg-primary-100 hover:text-primary-700 dark:text-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-200 transition-colors [&_svg]:h-5 [&_svg]:w-5",w=t.map((n,h)=>({key:typeof n.label=="string"?n.label:String(h),label:n.active?jsx("span",{className:"font-semibold text-primary-900 dark:text-primary-100",children:n.label}):n.label,onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(window.location.href=n.href);}})),z=a.map((n,h)=>({key:n.key??String(h),label:jsxs("span",{className:"flex items-center gap-2 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0",children:[n.icon,jsx("span",{children:n.ariaLabel})]}),onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(n.external?window.open(n.href,"_blank","noopener,noreferrer"):window.location.href=n.href);}}));return jsxs("header",{className:i("flex shrink-0 items-center justify-between border-b px-5","border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",l,m),children:[jsxs("div",{className:"flex items-center gap-2 md:gap-6",children:[e&&jsx("div",{className:i("text-lg font-bold text-primary-800 dark:text-primary-100",r&&"cursor-pointer"),onClick:r,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r(n));}:void 0,children:e}),L&&jsx(Me,{intent:"ghost",size:"sm",className:u,label:f??jsx(PanelLeft,{className:"h-5 w-5"}),items:w,align:"left",chevron:false,"aria-label":"Open navigation"}),t.length>0&&jsx("nav",{className:i("flex items-center gap-4 text-sm",s?"hidden md:flex":"flex"),children:t.map((n,h)=>{let o=typeof n.label=="string"?n.label:h,R=v(n.active);return n.href?jsx(d,{href:n.href,className:R,onClick:n.onClick,children:n.label},o):jsx("button",{type:"button",className:i(R,"cursor-pointer"),onClick:n.onClick,children:n.label},o)})})]}),x&&jsx("div",{className:"flex items-center",children:x}),jsxs("div",{className:"flex items-center gap-1",children:[a.length>0&&jsx("div",{className:i("flex items-center gap-1",s?"hidden md:flex":"flex"),children:a.map((n,h)=>n.href?jsx("a",{href:n.href,target:n.external?"_blank":void 0,rel:n.external?"noopener noreferrer":void 0,className:c,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??h):jsx("button",{type:"button",className:c,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??h))}),N&&jsx(Me,{intent:"ghost",size:"sm",className:u,label:y??jsx(MoreHorizontal,{className:"h-5 w-5"}),items:z,align:"right",chevron:false,"aria-label":"Open menu"})]})]})}var De=cva("inline-flex items-center gap-1 underline-offset-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/20 [&_svg]:shrink-0",{variants:{intent:{default:"text-primary-600 hover:text-primary-800 active:text-primary-900 dark:text-primary-400 dark:hover:text-primary-200 dark:active:text-primary-100",secondary:"text-secondary-500 hover:text-secondary-700 active:text-secondary-800 dark:text-secondary-400 dark:hover:text-secondary-200 dark:active:text-secondary-100",muted:"text-primary-400 hover:text-primary-600 dark:text-primary-500 dark:hover:text-primary-300"},size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},underline:{always:"underline",hover:"hover:underline",none:"no-underline"}},defaultVariants:{intent:"default",size:"md",underline:"none"}});function ur(e,r){return !!(r==="_blank"||e&&/^https?:\/\//.test(e))}var gr=e=>jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":true,...e,children:[jsx("path",{d:"M15 3h6v6"}),jsx("path",{d:"M10 14 21 3"}),jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]});function Se({intent:e,size:r,underline:t,external:a,className:d,children:l,href:s,target:f,rel:y,...m}){let x=a??ur(s,f);return jsxs("a",{href:s,target:x&&!f?"_blank":f,rel:x&&!y?"noopener noreferrer":y,className:i(De({intent:e,size:r,underline:t}),d),...m,children:[l,x&&jsx(gr,{})]})}function me({items:e,separator:r=jsx(ChevronRight,{className:"h-3.5 w-3.5","aria-hidden":"true"}),homeIcon:t=false,LinkComponent:a="a",className:d}){return jsx("nav",{"aria-label":"Breadcrumb",className:i("flex",d),children:jsx("ol",{className:"flex flex-wrap items-center gap-1 text-sm",children:e.map((l,s)=>{let f=s===e.length-1,y=t===true?jsx(Home,{className:"h-3.5 w-3.5"}):t!==false&&t!==void 0?t:null,m=s===0&&y?y:l.icon;return jsxs("li",{className:"flex items-center gap-1",children:[s>0&&jsx("span",{className:"text-secondary-400 dark:text-secondary-500",children:r}),f?jsxs("span",{"aria-current":"page",className:i("flex items-center gap-1 font-medium text-primary-800 dark:text-primary-100",m&&"gap-1.5"),children:[m,l.label]}):l.href?jsxs(a,{href:l.href,className:i("flex items-center gap-1 text-secondary-500 transition-colors","hover:text-primary-700 dark:text-secondary-400 dark:hover:text-primary-200","rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",m&&"gap-1.5"),children:[m,l.label]}):jsxs("span",{className:"flex items-center gap-1 text-secondary-500 dark:text-secondary-400",children:[m,l.label]})]},s)})})})}function be(e,r){let t=[];for(let a=e;a<=r;a++)t.push(a);return t}function Nr(e,r,t){let a=t*2+5;if(r<=a)return be(1,r);let d=Math.max(e-t,1),l=Math.min(e+t,r),s=d>2,f=l<r-1;return !s&&f?[...be(1,3+t*2),"\u2026",r]:s&&!f?[1,"\u2026",...be(r-(3+t*2)+1,r)]:[1,"\u2026",...be(d,l),"\u2026",r]}var $e={sm:"h-7 min-w-7 px-1.5 text-xs",md:"h-9 min-w-9 px-2 text-sm",lg:"h-11 min-w-11 px-2.5 text-base"},ne={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5"};function ae({onClick:e,disabled:r,active:t,size:a,"aria-label":d,children:l}){return jsx("button",{type:"button",onClick:e,disabled:r,"aria-label":d,"aria-current":t?"page":void 0,className:i("inline-flex items-center justify-center rounded font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",$e[a],t?"bg-primary-600 text-white dark:bg-primary-500":"border border-primary-200 bg-white text-primary-700 hover:bg-primary-50 dark:border-primary-700 dark:bg-primary-900 dark:text-primary-300 dark:hover:bg-primary-800",r&&"pointer-events-none opacity-40"),children:l})}function ue({totalPages:e,currentPage:r,onPageChange:t,siblingCount:a=2,showFirstLast:d=true,showPageCount:l=false,size:s="md",className:f}){if(e<=1)return null;let y=Nr(r,e,a);return jsxs("nav",{"aria-label":"Pagination",className:i("flex items-center gap-1",f),children:[d&&jsx(ae,{size:s,onClick:()=>t(1),disabled:r===1,"aria-label":"First page",children:jsx(ChevronsLeft,{className:ne[s]})}),jsx(ae,{size:s,onClick:()=>t(r-1),disabled:r===1,"aria-label":"Previous page",children:jsx(ChevronLeft,{className:ne[s]})}),y.map((m,x)=>m==="\u2026"?jsx("span",{className:i("inline-flex items-center justify-center text-secondary-400",$e[s]),"aria-hidden":"true",children:jsx(MoreHorizontal,{className:ne[s]})},`ellipsis-${x}`):jsx(ae,{size:s,active:m===r,onClick:()=>t(m),"aria-label":`Page ${m}`,children:m},m)),jsx(ae,{size:s,onClick:()=>t(r+1),disabled:r===e,"aria-label":"Next page",children:jsx(ChevronRight,{className:ne[s]})}),d&&jsx(ae,{size:s,onClick:()=>t(e),disabled:r===e,"aria-label":"Last page",children:jsx(ChevronsRight,{className:ne[s]})}),l&&jsxs("span",{className:"ml-2 text-sm text-secondary-500 dark:text-secondary-400",children:["Page ",r," of ",e]})]})}function je({item:e,mode:r}){return e.separator?jsx("div",{className:"mx-1 h-10 w-px self-center bg-primary-200 dark:bg-primary-700","aria-hidden":true}):jsxs("button",{type:"button",title:e.title??e.label,disabled:e.disabled,onClick:e.onClick,"aria-pressed":e.active,className:i("relative flex shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400","disabled:cursor-not-allowed disabled:opacity-40",e.active?"bg-primary-100 text-primary-700 shadow-inner dark:bg-primary-800 dark:text-primary-200":"text-primary-700 hover:bg-primary-50 active:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-800",r==="full"?"min-w-[3.5rem] flex-col gap-0.5 py-2":"","[&_svg]:shrink-0",r==="full"?"[&_svg]:h-5 [&_svg]:w-5":"[&_svg]:h-4 [&_svg]:w-4"),children:[e.icon&&jsx("span",{children:e.icon}),r!=="icons"&&jsx("span",{className:i(r==="full"?"text-[0.6rem] leading-tight":""),children:e.label})]})}function Lr({group:e,mode:r,disabled:t=false}){return jsxs("div",{className:i("flex shrink-0 flex-col items-stretch",t&&"opacity-50"),children:[jsx("div",{className:"flex items-center gap-0.5 px-1",children:e.items.map(a=>jsx(je,{item:t?{...a,disabled:true}:a,mode:r},a.key))}),r==="full"&&jsx("div",{className:"mt-1 border-t border-primary-100 px-2 pt-0.5 text-center dark:border-primary-800",children:jsx("span",{className:"text-[0.55rem] text-secondary-400 dark:text-secondary-500",children:e.label})})]})}function Pe({tabs:e,defaultTab:r,activeTab:t,onTabChange:a,mode:d,onModeChange:l,sticky:s=false,className:f}){let y=e.filter(o=>!o.hidden),[m,x]=useState(r??y[0]?.key??""),[L,N]=useState(d??"full"),[u,v]=useState(true),c=t??m,w=d??L,z=o=>{if(!y.find($=>$.key===o)?.disabled){if(o===c&&w!=="icons"){v($=>!$);return}x(o),a?.(o),v(true);}},h=y.find(o=>o.key===c)??y[0];return jsxs("div",{className:i("select-none border-b border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",s&&"sticky top-0 z-30",f),children:[jsxs("div",{className:"flex items-center border-b border-primary-100 dark:border-primary-800",children:[jsx("div",{className:"flex flex-1 items-end overflow-x-auto",children:y.map(o=>jsxs("button",{type:"button",disabled:o.disabled,onClick:()=>z(o.key),className:i("flex shrink-0 items-center gap-1.5 border-b-2 px-4 py-2 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 [&_svg]:h-4 [&_svg]:w-4",o.disabled?"cursor-not-allowed border-transparent text-secondary-300 opacity-50 dark:text-secondary-600":o.key===c&&u?"border-primary-500 text-primary-700 dark:border-primary-400 dark:text-primary-200":"border-transparent text-secondary-500 hover:border-primary-300 hover:text-primary-600 dark:text-secondary-400 dark:hover:text-primary-300"),children:[o.icon,o.label]},o.key))}),jsx("button",{type:"button",title:u?"Collapse ribbon":"Expand ribbon",onClick:()=>v(o=>!o),className:"ml-auto mr-2 rounded-md p-1.5 text-secondary-400 transition-colors hover:bg-primary-50 hover:text-primary-600 dark:hover:bg-primary-800 dark:hover:text-primary-300",children:u?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"})})]}),u&&h&&w!=="icons"&&jsx("div",{className:"flex items-stretch gap-1 overflow-x-auto px-2 py-1.5",children:h.groups.map((o,R)=>jsxs(Xe.Fragment,{children:[R>0&&jsx("div",{className:"mx-1 h-auto w-px self-stretch bg-primary-100 dark:bg-primary-800"}),jsx(Lr,{group:o,mode:w,disabled:o.disabled||h.disabled})]},o.key))}),w==="icons"&&u&&h&&jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto px-2 py-1",children:h.groups.flatMap(o=>o.items.map(R=>jsx(je,{item:o.disabled||h.disabled?{...R,disabled:true}:R,mode:"icons"},R.key)))})]})}var Sr={SideNav:ve,Header:Le,NavLink:Se,Breadcrumb:me,Pagination:ue,RibbonBar:Pe},Ht=Sr;
|
|
2
|
-
export{
|
|
1
|
+
import dr,{useState,useCallback,useRef,useEffect,useMemo,useLayoutEffect}from'react';import {createPortal}from'react-dom';import {Menu,ChevronsLeft,X,ChevronRight,ChevronLeft,PanelLeft,MoreHorizontal,Home,ChevronsRight,ChevronUp,ChevronDown,Check}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {cva}from'class-variance-authority';function o(...e){return twMerge(clsx(e))}var re="flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-sm transition-colors cursor-pointer",$e="bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100 font-medium",te="text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200",ne="flex items-center justify-center rounded-md p-2 transition-colors cursor-pointer text-primary-600 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-primary-800/50 hover:text-primary-900 dark:hover:text-primary-200";function fr({to:e,className:r,style:t,children:a}){let l=typeof r=="function"?r({isActive:false}):r;return jsx("a",{href:e,className:l,style:t,children:a})}var Me=["expanded","icons","mini"];function yr(e){let r=Me.indexOf(e);return Me[(r+1)%Me.length]}function je(e){let r=new Set;for(let t of e)if(t.children&&t.children.length>0){r.add(t.key??t.label);for(let a of je(t.children))r.add(a);}return r}function Ge({item:e,basePath:r,depth:t,onItemClick:a,LinkComponent:l,showLines:c,expandedKeys:s,onToggle:f}){let y=e.key??e.label,u=e.children&&e.children.length>0,[v,L]=useState(e.defaultOpen??true),C=s?s.has(y):v,g=useCallback(()=>{s?f(y):L(m=>!m);},[s,f,y]),w=t>0?`${t*1.25}rem`:void 0;if(u)return jsxs("div",{children:[jsxs("button",{type:"button",onClick:g,className:o(re,te,"justify-between"),style:{paddingLeft:w},children:[jsxs("span",{className:"flex items-center gap-2",children:[e.icon,e.label]}),jsx(ChevronRight,{className:o("h-3.5 w-3.5 transition-transform",C&&"rotate-90")})]}),C&&jsx("div",{className:o("flex flex-col gap-0.5 pt-0.5",c?"ml-2.5 border-l border-primary-200 dark:border-primary-700":"ml-2"),children:e.children.map(m=>jsx(Ge,{item:m,basePath:r,depth:t+1,onItemClick:a,LinkComponent:l,showLines:c,expandedKeys:s,onToggle:f},m.key??m.path??m.label))})]});if(e.path!=null){let m=r+e.path;return a?jsxs("button",{type:"button",onClick:()=>a(e,m),className:o(re,te),style:{paddingLeft:w},children:[e.icon,e.label]}):jsxs(l,{to:m,className:({isActive:N})=>o(re,N?$e:te),style:{paddingLeft:w},children:[e.icon,e.label]})}return jsxs("span",{className:o(re,te,"cursor-default"),style:{paddingLeft:w},children:[e.icon,e.label]})}function xr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let[l,c]=useState(false),s=useRef(null),f=useRef(void 0),[y,u]=useState({top:0,left:0}),v=()=>{clearTimeout(f.current),c(true);},L=()=>{f.current=setTimeout(()=>c(false),200);};useLayoutEffect(()=>{if(l&&s.current){let g=s.current.getBoundingClientRect();u({top:g.top,left:g.right+4});}},[l]);let C=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});return jsxs("div",{onMouseEnter:v,onMouseLeave:L,children:[jsx("button",{ref:s,type:"button",className:o(ne,"w-full"),title:e.label,onClick:()=>c(g=>!g),children:C}),l&&createPortal(jsxs("div",{className:"fixed z-50 min-w-44 rounded-md border border-primary-200 bg-white p-1 shadow-lg dark:border-primary-700 dark:bg-primary-900",style:{top:y.top,left:y.left},onMouseEnter:v,onMouseLeave:L,children:[jsx("div",{className:"px-2.5 py-1.5 text-xs font-semibold uppercase text-primary-500 dark:text-primary-400",children:e.label}),jsx("div",{className:"flex flex-col gap-0.5",children:e.children?.map(g=>{let w=g.key??g.path??g.label;if(g.path!=null){let m=r+g.path;return t?jsxs("button",{type:"button",onClick:()=>{t(g,m),c(false);},className:o(re,te),children:[g.icon,g.label]},w):jsxs(a,{to:m,className:({isActive:N})=>o(re,N?$e:te),children:[g.icon,g.label]},w)}return jsxs("span",{className:o(re,"cursor-default text-primary-400"),children:[g.icon,g.label]},w)})})]}),document.body)]})}function hr({item:e,basePath:r,onItemClick:t,LinkComponent:a}){let l=e.icon||jsx("span",{className:"text-xs font-bold leading-none",children:e.label.charAt(0).toUpperCase()});if(e.path!=null){let c=r+e.path;return t?jsx("button",{type:"button",onClick:()=>t(e,c),className:o(ne,"w-full"),title:e.label,children:l}):jsx(a,{to:c,className:({isActive:s})=>o(ne,"w-full",s&&"bg-primary-200 dark:bg-primary-700/50 text-primary-900 dark:text-primary-100"),children:jsx("span",{title:e.label,children:l})})}return jsx("span",{className:o(ne,"w-full cursor-default"),title:e.label,children:l})}function Le({items:e,title:r,basePath:t="/",onItemClick:a,LinkComponent:l=fr,collapsible:c,collapseMode:s,defaultCollapseMode:f="expanded",onCollapseModeChange:y,showLines:u=true,expandedKeys:v,defaultExpandedKeys:L="all",onExpandedKeysChange:C,className:g,responsive:w=true,mobileBreakpoint:m=768,mobileTopOffset:N=48,mobileDrawerSlot:H,...n}){let[k,d]=useState(f),h=s??k,$=dr.useMemo(()=>je(e),[e]),[O,j]=useState(()=>L==="all"?new Set($):new Set(L)),be=v??null,W=be??O,Q=useCallback(i=>{let x=new Set(W);x.has(i)?x.delete(i):x.add(i),j(x),C?.(x);},[W,C]),G=useCallback(()=>{let i=yr(h);d(i),y?.(i);},[h,y]),[B,Re]=useState(()=>w&&typeof window<"u"&&window.innerWidth<m),[oe,D]=useState(false),[_,se]=useState(()=>{if(typeof window>"u")return "left";try{return localStorage.getItem("onyx-sidenav-side")||"left"}catch{return "left"}}),[p,T]=useState(()=>{if(typeof window>"u")return 50;try{return Number(localStorage.getItem("onyx-sidenav-top"))||50}catch{return 50}}),[I,J]=useState(null),X$1=useRef({dragging:false,startX:0,startY:0,moved:false}),rr=useCallback(i=>{if(i.pointerType==="mouse"&&i.button!==0)return;i.preventDefault(),X$1.current={dragging:true,startX:i.clientX,startY:i.clientY,moved:false};let x=E=>{if(!X$1.current.dragging)return;let Z=Math.abs(E.clientX-X$1.current.startX),ie=Math.abs(E.clientY-X$1.current.startY);if((Z>6||ie>6)&&(X$1.current.moved=true),!X$1.current.moved)return;let ee=E.clientX<window.innerWidth/2?"left":"right",Oe=N+28,ge=window.innerHeight-28,de=Math.max(Oe,Math.min(ge,E.clientY));J({side:ee,y:de});},R=E=>{if(window.removeEventListener("pointermove",x),window.removeEventListener("pointerup",R),window.removeEventListener("pointercancel",R),!X$1.current.dragging)return;if(X$1.current.dragging=false,!X$1.current.moved){let de=Xe=>{Xe.stopPropagation(),Xe.preventDefault(),window.removeEventListener("click",de,true);};window.addEventListener("click",de,true),J(null),D(true);return}let Z=E.clientX<window.innerWidth/2?"left":"right",ie=N+28,ee=window.innerHeight-28,ge=Math.max(ie,Math.min(ee,E.clientY))/window.innerHeight*100;se(Z),T(ge),J(null);try{localStorage.setItem("onyx-sidenav-side",Z),localStorage.setItem("onyx-sidenav-top",String(ge));}catch{}};window.addEventListener("pointermove",x),window.addEventListener("pointerup",R),window.addEventListener("pointercancel",R);},[N]);useEffect(()=>{if(!w||typeof window>"u"||!window.matchMedia)return;let i=window.matchMedia(`(max-width: ${m-1}px)`),x=R=>{Re(R.matches),R.matches||D(false);};return i.addEventListener("change",x),()=>i.removeEventListener("change",x)},[w,m]);let tr=useCallback(i=>{i.target.closest("a")&&D(false);},[]),F=useRef(null),q=useRef({startX:0,startY:0,dragging:false}),Ae=60,nr=useCallback(i=>{let x=i.touches[0];q.current={startX:x.clientX,startY:x.clientY,dragging:true};},[]),ar=useCallback(i=>{if(!q.current.dragging||!F.current)return;let x=i.touches[0],R=x.clientX-q.current.startX,E=x.clientY-q.current.startY;if(_==="left"){if(R>=0||Math.abs(E)>Math.abs(R))return;F.current.style.transform=`translateX(${Math.max(R,-224)}px)`;}else {if(R<=0||Math.abs(E)>Math.abs(R))return;F.current.style.transform=`translateX(${Math.min(R,224)}px)`;}F.current.style.transition="none";},[_]),or=useCallback(i=>{if(!q.current.dragging||!F.current)return;q.current.dragging=false;let x=i.changedTouches[0],R=x.clientX-q.current.startX,E=x.clientY-q.current.startY;F.current.style.transition="",F.current.style.transform="",Math.abs(R)>Math.abs(E)&&(_==="left"&&R<-Ae&&D(false),_==="right"&&R>Ae&&D(false));},[_]),Ce=useMemo(()=>!B||!a?a:(i,x)=>{D(false),a(i,x);},[B,a]),Ye=jsxs(Fragment,{children:[c&&!B&&jsx("div",{className:o("flex shrink-0 mb-1",h==="expanded"?"justify-end":"justify-center"),children:jsx("button",{type:"button",onClick:G,className:ne,"aria-label":h==="mini"?"Expand sidebar":"Collapse sidebar",title:h==="mini"?"Expand sidebar":"Collapse sidebar",children:h==="mini"?jsx(Menu,{className:"h-5 w-5"}):jsx(ChevronsLeft,{className:"h-4 w-4"})})}),(B||h==="expanded")&&jsxs(Fragment,{children:[r&&jsx("h2",{className:"text-primary-500 dark:text-primary-400 mb-3 text-sm font-semibold uppercase",children:r}),e.map(i=>jsx(Ge,{item:i,basePath:t,depth:0,onItemClick:Ce,LinkComponent:l,showLines:u,expandedKeys:be,onToggle:Q},i.key??i.path??i.label))]}),!B&&h==="icons"&&e.map(i=>{let x=i.key??i.path??i.label;return i.children&&i.children.length>0?jsx(xr,{item:i,basePath:t,onItemClick:Ce,LinkComponent:l},x):jsx(hr,{item:i,basePath:t,onItemClick:Ce,LinkComponent:l},x)})]});if(w&&B){let i=I?I.side:_,x=I?I.y:p/100*(typeof window<"u"?window.innerHeight:600),R=I?{top:x,transform:"translateY(-50%)",transition:"none",...i==="left"?{left:0}:{right:0}}:{top:`${p}%`,transform:"translateY(-50%)",transition:"top 0.15s ease",..._==="left"?{left:0}:{right:0}},E=_==="left"?{left:0,right:"auto"}:{right:0,left:"auto"},Z=oe?"translate-x-0":_==="left"?"-translate-x-full":"translate-x-full",ie=_==="left"?"border-r":"border-l";return jsxs(Fragment,{children:[oe&&createPortal(jsx("div",{className:"fixed inset-0 z-40 bg-black/50",style:{top:N},onClick:()=>D(false)}),document.body),createPortal(jsxs("aside",{ref:F,className:o("fixed bottom-0 z-50 flex flex-col w-56 bg-white dark:bg-primary-900 shadow-xl transition-transform duration-200",ie,"border-primary-200 dark:border-primary-700",Z),style:{top:N,...E},onClick:tr,onTouchStart:nr,onTouchMove:ar,onTouchEnd:or,children:[jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:[jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-primary-500 dark:text-primary-400",children:"Navigation"}),jsx("button",{type:"button",onClick:ee=>{ee.stopPropagation(),D(false);},className:o(ne,"h-7 w-7 p-1"),"aria-label":"Close navigation",children:jsx(X,{className:"h-4 w-4"})})]}),H&&jsx("div",{className:"shrink-0 border-b border-primary-200 px-3 py-2 dark:border-primary-700",children:H}),jsx("div",{className:"flex-1 overflow-y-auto overscroll-y-contain p-3",children:jsx("nav",{className:"flex flex-col gap-0.5",children:Ye})})]}),document.body),!oe&&createPortal(jsx("div",{className:o("fixed z-50 flex items-center",i==="left"?"justify-start":"justify-end",I?"cursor-grabbing":"cursor-grab"),style:{...R,width:44,height:80,marginTop:-12,touchAction:"none",userSelect:"none"},onPointerDown:rr,onDragStart:ee=>ee.preventDefault(),role:"button","aria-label":"Open navigation",tabIndex:0,children:jsx("div",{className:o("flex h-16 w-6 items-center justify-center","bg-primary-800/80 text-white shadow-md backdrop-blur-sm","hover:bg-primary-700/90 dark:bg-primary-200/80 dark:text-primary-900 dark:hover:bg-primary-300/90",i==="left"?"rounded-r-xl":"rounded-l-xl"),children:i==="left"?jsx(ChevronRight,{className:"h-4 w-4"}):jsx(ChevronLeft,{className:"h-4 w-4"})})}),document.body)]})}return jsx("nav",{className:o("flex flex-col gap-0.5",h==="mini"&&"items-center",g),...n,children:Ye})}var Fe=cva("inline-flex cursor-pointer items-center justify-center gap-1.5 rounded font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700",secondary:"bg-secondary-500 text-white hover:bg-secondary-600 active:bg-secondary-700",danger:"bg-danger-500 text-white hover:bg-danger-600 active:bg-danger-700",warning:"bg-warning-500 text-white hover:bg-warning-600 active:bg-warning-700",ghost:"bg-transparent text-primary-700 hover:bg-primary-100 active:bg-primary-200 dark:text-primary-300 dark:hover:bg-primary-800",outline:"border border-primary-300 bg-transparent text-primary-700 hover:bg-primary-50 dark:border-primary-600 dark:text-primary-300 dark:hover:bg-primary-800"},size:{sm:"h-7 px-3 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"h-9 px-4 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"h-11 px-6 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded border font-semibold [&_svg]:shrink-0",{variants:{intent:{success:"border-success-200 bg-success-100 text-success-800 dark:border-success-800 dark:bg-success-900/30 dark:text-success-400",warning:"border-warning-200 bg-warning-100 text-warning-800 dark:border-warning-800 dark:bg-warning-900/30 dark:text-warning-400",error:"border-danger-200 bg-danger-100 text-danger-800 dark:border-danger-800 dark:bg-danger-900/30 dark:text-danger-400",info:"border-primary-200 bg-primary-100 text-primary-800 dark:border-primary-800 dark:bg-primary-900/30 dark:text-primary-400",primary:"border-secondary-200 bg-secondary-100 text-secondary-700 dark:border-secondary-700 dark:bg-secondary-800 dark:text-secondary-300"},size:{sm:"px-1.5 py-0 text-[0.625rem] [&_svg]:h-2.5 [&_svg]:w-2.5",md:"px-2.5 py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",lg:"px-3 py-1 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5"}},defaultVariants:{intent:"primary",size:"md"}});cva("absolute flex items-center justify-center rounded-full font-bold leading-none ring-2 ring-white select-none pointer-events-none z-10 dark:ring-primary-900",{variants:{intent:{danger:"bg-danger-500 text-white",success:"bg-success-500 text-white",warning:"bg-warning-500 text-white",info:"bg-primary-500 text-white",primary:"bg-secondary-500 text-white"},size:{sm:"text-[0.5rem]",md:"text-[0.625rem]",lg:"text-xs"},dot:{true:"",false:""},placement:{"top-right":"top-0 right-0 translate-x-1/2 -translate-y-1/2","top-left":"top-0 left-0 -translate-x-1/2 -translate-y-1/2","bottom-right":"bottom-0 right-0 translate-x-1/2 translate-y-1/2","bottom-left":"bottom-0 left-0 -translate-x-1/2 translate-y-1/2"}},compoundVariants:[{dot:true,size:"sm",class:"h-1.5 w-1.5 min-w-0 ring-1"},{dot:true,size:"md",class:"h-2 w-2 min-w-0"},{dot:true,size:"lg",class:"h-2.5 w-2.5 min-w-0"},{dot:false,size:"sm",class:"h-4 min-w-4 px-1"},{dot:false,size:"md",class:"h-5 min-w-5 px-1.5"},{dot:false,size:"lg",class:"h-6 min-w-6 px-2"}],defaultVariants:{intent:"danger",size:"md",dot:false,placement:"top-right"}});cva("w-full rounded-md border bg-white text-secondary-900 transition-colors placeholder:text-secondary-400 focus:outline-none focus:ring-2 dark:bg-secondary-900 dark:text-secondary-100 dark:placeholder:text-secondary-600",{variants:{state:{default:"border-secondary-300 focus:border-primary-500 focus:ring-primary-500/20 dark:border-secondary-600",error:"border-danger-400 focus:border-danger-500 focus:ring-danger-500/20"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 py-2 text-sm",lg:"h-11 px-4 py-2.5 text-base"}},defaultVariants:{state:"default",size:"md"}});cva("inline-flex items-center gap-1 font-medium [&_svg]:shrink-0",{variants:{size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},intent:{default:"text-primary-700 dark:text-primary-300",muted:"text-primary-400 dark:text-primary-500",required:"text-primary-700 dark:text-primary-300 after:ml-0.5 after:text-danger-500 after:content-['*']"}},defaultVariants:{size:"md",intent:"default"}});cva("relative inline-flex shrink-0 items-center justify-center rounded border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4 rounded-[3px]",md:"h-5 w-5 rounded",lg:"h-6 w-6 rounded-[5px]"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("relative inline-flex shrink-0 items-center justify-center rounded-full border-2 transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",{variants:{intent:{primary:"border-primary-300 dark:border-primary-600 focus-visible:ring-primary-500/40",secondary:"border-secondary-300 dark:border-secondary-600 focus-visible:ring-secondary-500/40",danger:"border-danger-300 dark:border-danger-600 focus-visible:ring-danger-500/40",warning:"border-warning-300 dark:border-warning-600 focus-visible:ring-warning-500/40",success:"border-success-300 dark:border-success-600 focus-visible:ring-success-500/40"},size:{sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6"},checked:{on:"",off:"bg-white dark:bg-primary-900"}},compoundVariants:[{intent:"primary",checked:"on",class:"border-primary-500 bg-primary-500 dark:border-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"border-secondary-500 bg-secondary-500 dark:border-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"border-danger-500 bg-danger-500 dark:border-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"border-warning-500 bg-warning-500 dark:border-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"border-success-500 bg-success-500 dark:border-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("",{variants:{intent:{primary:"",secondary:"",danger:"",warning:"",success:""},size:{sm:"",md:"",lg:""},checked:{on:"",off:"bg-primary-300 dark:bg-primary-800"}},compoundVariants:[{intent:"primary",checked:"on",class:"bg-primary-500 dark:bg-primary-500"},{intent:"secondary",checked:"on",class:"bg-secondary-500 dark:bg-secondary-500"},{intent:"danger",checked:"on",class:"bg-danger-500 dark:bg-danger-500"},{intent:"warning",checked:"on",class:"bg-warning-500 dark:bg-warning-500"},{intent:"success",checked:"on",class:"bg-success-500 dark:bg-success-500"}],defaultVariants:{intent:"primary",size:"md",checked:"off"}});cva("bg-primary-200 text-primary-700 dark:bg-primary-700 dark:text-primary-200",{variants:{size:{xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-12 w-12 text-base",xl:"h-16 w-16 text-lg"},shape:{circular:"rounded-full",rounded:"rounded-lg",square:"rounded-none"}},defaultVariants:{size:"md",shape:"circular"}});cva("relative flex w-full touch-none select-none items-center",{variants:{intent:{primary:"[&_.slider-fill]:bg-primary-500 [&_.slider-thumb]:border-primary-500",secondary:"[&_.slider-fill]:bg-secondary-500 [&_.slider-thumb]:border-secondary-500",success:"[&_.slider-fill]:bg-success-500 [&_.slider-thumb]:border-success-500",danger:"[&_.slider-fill]:bg-danger-500 [&_.slider-thumb]:border-danger-500",warning:"[&_.slider-fill]:bg-warning-500 [&_.slider-thumb]:border-warning-500"},size:{sm:"h-4",md:"h-5",lg:"h-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("inline-flex items-center gap-1 rounded-full font-medium select-none transition-colors [&_svg]:shrink-0",{variants:{intent:{primary:"bg-primary-100 text-primary-700 dark:bg-primary-800 dark:text-primary-200",secondary:"bg-secondary-100 text-secondary-700 dark:bg-secondary-800 dark:text-secondary-200",success:"bg-success-100 text-success-700 dark:bg-success-900/40 dark:text-success-300",danger:"bg-danger-100 text-danger-700 dark:bg-danger-900/40 dark:text-danger-300",warning:"bg-warning-100 text-warning-700 dark:bg-warning-900/40 dark:text-warning-300",info:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},size:{sm:"h-5 px-2 text-[0.6875rem] gap-0.5",md:"h-6 px-2.5 text-xs gap-1",lg:"h-7 px-3 text-sm gap-1"},variant:{solid:"",outline:"bg-transparent border",soft:""}},compoundVariants:[{intent:"primary",variant:"outline",class:"border-primary-300 text-primary-700 dark:border-primary-600 dark:text-primary-300"},{intent:"secondary",variant:"outline",class:"border-secondary-300 text-secondary-700 dark:border-secondary-600 dark:text-secondary-300"},{intent:"success",variant:"outline",class:"border-success-400 text-success-700 dark:border-success-600 dark:text-success-300"},{intent:"danger",variant:"outline",class:"border-danger-400 text-danger-700 dark:border-danger-600 dark:text-danger-300"},{intent:"warning",variant:"outline",class:"border-warning-400 text-warning-700 dark:border-warning-600 dark:text-warning-300"},{intent:"info",variant:"outline",class:"border-blue-400 text-blue-700 dark:border-blue-600 dark:text-blue-300"}],defaultVariants:{intent:"primary",size:"md",variant:"solid"}});cva("relative w-full cursor-pointer rounded-md border bg-white text-sm transition-colors dark:bg-primary-900",{variants:{intent:{default:"border-primary-300 text-primary-900 hover:border-primary-400 focus-within:border-primary-500 focus-within:ring-2 focus-within:ring-primary-500/20 dark:border-primary-600 dark:text-primary-100 dark:hover:border-primary-500 dark:focus-within:border-primary-400",danger:"border-danger-500 text-primary-900 focus-within:ring-2 focus-within:ring-danger-500/20 dark:border-danger-500 dark:text-primary-100"},size:{sm:"h-7 px-2 text-xs",md:"h-9 px-3 text-sm",lg:"h-11 px-4 text-base"}},defaultVariants:{intent:"default",size:"md"}});function Nr(e,r){return e.key??(typeof e.label=="string"?e.label:String(r))}var ye=40,Rr=200,Ie=150,Ue=120;function _e(e,r,t,a){if(!a)return {};if(t){let c=(r-1-e)*ye;return {animation:`dropdown-item-out ${Ie}ms ease-in both ${c}ms`}}let l=e*ye;return {animation:`dropdown-item-in ${Rr}ms ease-out both ${l}ms`}}function Cr(e,r,t){if(!t)return {};if(r){let a=Math.max(e-1,0)*ye+Ie;return {animation:`dropdown-container-out ${Ue}ms ease-in both ${a}ms`}}return {animation:"var(--animate-dropdown-container-in)"}}function ze({label:e,items:r,intent:t,size:a,align:l="left",className:c,disabled:s,editable:f=false,onAddItem:y,multiple:u=false,selected:v=[],onSelectionChange:L,animated:C=true,chevron:g=true,...w}){let[m,N]=useState(false),[H,n]=useState(false),[k,d]=useState(""),h=useRef(null),$=useRef(null),O=useRef(void 0);useEffect(()=>()=>{O.current&&clearTimeout(O.current);},[]);let j=useCallback(()=>{if(!C||!m){N(false),d("");return}n(true);let T=(Math.max(r.length,1)-1)*ye+Ie+Ue+20;O.current=setTimeout(()=>{N(false),n(false),d("");},T);},[C,m,r.length]),be=useCallback(()=>{s||(m?j():(O.current&&clearTimeout(O.current),n(false),N(true),d(""),f&&requestAnimationFrame(()=>$.current?.focus())));},[s,m,j,f]);useEffect(()=>{if(!m)return;let p=T=>{h.current&&!h.current.contains(T.target)&&j();};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[m,j]),useEffect(()=>{if(!m)return;let p=T=>{T.key==="Escape"&&j();};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[m,j]);let W=k.toLowerCase(),Q=useMemo(()=>k?r.filter(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase().includes(W)):r,[r,W]),G=useMemo(()=>!f||!k.trim()?false:!r.some(p=>(typeof p.label=="string"?p.label:p.key??"").toLowerCase()===W),[f,W,r]),B=useCallback(()=>{let p=k.trim();p&&(y?.(p),d(""));},[k,y]),Re=useCallback(p=>{p.key==="Enter"&&G&&(p.preventDefault(),B());},[G,B]),oe=useCallback(p=>{let T=v.includes(p)?v.filter(I=>I!==p):[...v,p];L?.(T);},[v,L]),D=u&&v.length>0?jsxs(Fragment,{children:[e," ",jsx("span",{className:"ml-1 rounded-full bg-white/20 px-1.5 text-xs font-semibold",children:v.length})]}):e,_=Q.length===0&&!G||G?1:0,se=Q.length+_;return jsxs("div",{ref:h,className:"relative inline-block",children:[jsxs("button",{type:"button",onClick:be,disabled:s,className:o(Fe({intent:t,size:a}),"inline-flex items-center gap-1",c),"aria-haspopup":u?"listbox":"true","aria-expanded":m?"true":"false",...w,children:[D,g&&jsx(ChevronDown,{className:o("h-3.5 w-3.5 transition-transform",m&&"rotate-180")})]}),m&&jsxs("div",{className:o("absolute z-50 mt-1 min-w-44 rounded-md border py-1 shadow-lg","border-primary-200 dark:border-primary-700 dark:bg-primary-800 bg-white",l==="right"?"right-0":"left-0"),style:Cr(se,H,C),role:u?"listbox":"menu","aria-multiselectable":u||void 0,children:[f&&jsx("div",{className:"border-primary-200 dark:border-primary-700 border-b px-2 pb-1.5 pt-1",children:jsx("input",{ref:$,type:"text",value:k,onChange:p=>d(p.target.value),onKeyDown:Re,placeholder:"Type to filter or add\u2026",className:"w-full bg-transparent text-sm text-secondary-900 placeholder:text-secondary-400 focus:outline-none dark:text-secondary-100 dark:placeholder:text-secondary-600"})}),jsxs("div",{className:"max-h-60 overflow-y-auto",children:[Q.map((p,T)=>{let I=Nr(p,T),J=u&&v.includes(I);return jsxs(dr.Fragment,{children:[p.divider&&jsx("div",{className:"border-primary-200 dark:border-primary-700 my-1 border-t"}),jsxs("button",{type:"button",role:u?"option":"menuitem","aria-selected":u?J:void 0,disabled:p.disabled,className:o("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-700 hover:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-700/50",p.disabled&&"pointer-events-none opacity-50"),style:_e(T,se,H,C),onClick:()=>{u?oe(I):(p.onClick?.(),O.current&&clearTimeout(O.current),N(false),n(false),d(""));},children:[u&&jsx("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors",J?"border-primary-600 bg-primary-600 text-white dark:border-primary-500 dark:bg-primary-500":"border-secondary-300 bg-white dark:border-secondary-600 dark:bg-secondary-800"),children:J&&jsx(Check,{className:"h-3 w-3"})}),jsx("span",{className:"flex-1 truncate",children:p.label})]})]},I)}),Q.length===0&&!G&&jsx("div",{className:"text-primary-400 px-3 py-2 text-center text-sm",style:_e(0,1,H,C),children:"No matches"}),G&&jsxs("button",{type:"button",className:o("flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors","text-primary-600 hover:bg-primary-50 dark:text-primary-400 dark:hover:bg-primary-900/30"),style:_e(Q.length,se,H,C),onClick:B,children:[jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center text-lg leading-none",children:"+"}),jsxs("span",{className:"truncate",children:["Add \u201C",k.trim(),"\u201D"]})]})]})]})]})}function Pr({href:e,className:r,onClick:t,children:a}){return jsx("a",{href:e,className:r,onClick:t,children:a})}function Ve({brand:e,onBrandClick:r,navItems:t=[],actions:a=[],linkComponent:l=Pr,height:c="h-12",mobileMenu:s=false,navMenuIcon:f,actionsMenuIcon:y,className:u,children:v}){let L=s&&t.length>0,C=s&&a.length>0,g="md:hidden rounded-md px-1.5 py-1.5 text-primary-500 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-200 [&_svg]:h-5 [&_svg]:w-5",w=n=>n?"text-primary-900 font-medium dark:text-primary-100":"text-primary-500 hover:text-primary-700 dark:text-primary-400 dark:hover:text-primary-200 transition-colors",m="rounded-md p-1.5 text-primary-500 hover:bg-primary-100 hover:text-primary-700 dark:text-primary-400 dark:hover:bg-primary-800 dark:hover:text-primary-200 transition-colors [&_svg]:h-5 [&_svg]:w-5",N=t.map((n,k)=>({key:typeof n.label=="string"?n.label:String(k),label:n.active?jsx("span",{className:"font-semibold text-primary-900 dark:text-primary-100",children:n.label}):n.label,onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(window.location.href=n.href);}})),H=a.map((n,k)=>({key:n.key??String(k),label:jsxs("span",{className:"flex items-center gap-2 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0",children:[n.icon,jsx("span",{children:n.ariaLabel})]}),onClick:()=>{n.onClick?n.onClick({preventDefault:()=>{},stopPropagation:()=>{}}):n.href&&(n.external?window.open(n.href,"_blank","noopener,noreferrer"):window.location.href=n.href);}}));return jsxs("header",{className:o("flex shrink-0 items-center justify-between border-b px-5","border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",c,u),children:[jsxs("div",{className:"flex items-center gap-2 md:gap-6",children:[e&&jsx("div",{className:o("text-lg font-bold text-primary-800 dark:text-primary-100",r&&"cursor-pointer"),onClick:r,role:r?"button":void 0,tabIndex:r?0:void 0,onKeyDown:r?n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),r(n));}:void 0,children:e}),L&&jsx(ze,{intent:"ghost",size:"sm",className:g,label:f??jsx(PanelLeft,{className:"h-5 w-5"}),items:N,align:"left",chevron:false,"aria-label":"Open navigation"}),t.length>0&&jsx("nav",{className:o("flex items-center gap-4 text-sm",s?"hidden md:flex":"flex"),children:t.map((n,k)=>{let d=typeof n.label=="string"?n.label:k,h=w(n.active);return n.href?jsx(l,{href:n.href,className:h,onClick:n.onClick,children:n.label},d):jsx("button",{type:"button",className:o(h,"cursor-pointer"),onClick:n.onClick,children:n.label},d)})})]}),v&&jsx("div",{className:"flex items-center",children:v}),jsxs("div",{className:"flex items-center gap-1",children:[a.length>0&&jsx("div",{className:o("flex items-center gap-1",s?"hidden md:flex":"flex"),children:a.map((n,k)=>n.href?jsx("a",{href:n.href,target:n.external?"_blank":void 0,rel:n.external?"noopener noreferrer":void 0,className:m,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??k):jsx("button",{type:"button",className:m,"aria-label":n.ariaLabel,onClick:n.onClick,children:n.icon},n.key??k))}),C&&jsx(ze,{intent:"ghost",size:"sm",className:g,label:y??jsx(MoreHorizontal,{className:"h-5 w-5"}),items:H,align:"right",chevron:false,"aria-label":"Open menu"})]})]})}var We=cva("inline-flex items-center gap-1 underline-offset-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/20 [&_svg]:shrink-0",{variants:{intent:{default:"text-primary-600 hover:text-primary-800 active:text-primary-900 dark:text-primary-400 dark:hover:text-primary-200 dark:active:text-primary-100",secondary:"text-secondary-500 hover:text-secondary-700 active:text-secondary-800 dark:text-secondary-400 dark:hover:text-secondary-200 dark:active:text-secondary-100",muted:"text-primary-400 hover:text-primary-600 dark:text-primary-500 dark:hover:text-primary-300"},size:{sm:"text-xs [&_svg]:h-3 [&_svg]:w-3",md:"text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"text-base [&_svg]:h-4 [&_svg]:w-4"},underline:{always:"underline",hover:"hover:underline",none:"no-underline"}},defaultVariants:{intent:"default",size:"md",underline:"none"}});function Er(e,r){return !!(r==="_blank"||e&&/^https?:\/\//.test(e))}var _r=e=>jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":true,...e,children:[jsx("path",{d:"M15 3h6v6"}),jsx("path",{d:"M10 14 21 3"}),jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]});function He({intent:e,size:r,underline:t,external:a,className:l,children:c,href:s,target:f,rel:y,...u}){let v=a??Er(s,f);return jsxs("a",{href:s,target:v&&!f?"_blank":f,rel:v&&!y?"noopener noreferrer":y,className:o(We({intent:e,size:r,underline:t}),l),...u,children:[c,v&&jsx(_r,{})]})}function ke({items:e,separator:r=jsx(ChevronRight,{className:"h-3.5 w-3.5","aria-hidden":"true"}),homeIcon:t=false,LinkComponent:a="a",className:l}){return jsx("nav",{"aria-label":"Breadcrumb",className:o("flex",l),children:jsx("ol",{className:"flex flex-wrap items-center gap-1 text-sm",children:e.map((c,s)=>{let f=s===e.length-1,y=t===true?jsx(Home,{className:"h-3.5 w-3.5"}):t!==false&&t!==void 0?t:null,u=s===0&&y?y:c.icon;return jsxs("li",{className:"flex items-center gap-1",children:[s>0&&jsx("span",{className:"text-secondary-400 dark:text-secondary-500",children:r}),f?jsxs("span",{"aria-current":"page",className:o("flex items-center gap-1 font-medium text-primary-800 dark:text-primary-100",u&&"gap-1.5"),children:[u,c.label]}):c.href?jsxs(a,{href:c.href,className:o("flex items-center gap-1 text-secondary-500 transition-colors","hover:text-primary-700 dark:text-secondary-400 dark:hover:text-primary-200","rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",u&&"gap-1.5"),children:[u,c.label]}):jsxs("span",{className:"flex items-center gap-1 text-secondary-500 dark:text-secondary-400",children:[u,c.label]})]},s)})})})}function we(e,r){let t=[];for(let a=e;a<=r;a++)t.push(a);return t}function Yr(e,r,t){let a=t*2+5;if(r<=a)return we(1,r);let l=Math.max(e-t,1),c=Math.min(e+t,r),s=l>2,f=c<r-1;return !s&&f?[...we(1,3+t*2),"\u2026",r]:s&&!f?[1,"\u2026",...we(r-(3+t*2)+1,r)]:[1,"\u2026",...we(l,c),"\u2026",r]}var Ze={sm:"h-7 min-w-7 px-1.5 text-xs",md:"h-9 min-w-9 px-2 text-sm",lg:"h-11 min-w-11 px-2.5 text-base"},me={sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5"};function ue({onClick:e,disabled:r,active:t,size:a,"aria-label":l,children:c}){return jsx("button",{type:"button",onClick:e,disabled:r,"aria-label":l,"aria-current":t?"page":void 0,className:o("inline-flex items-center justify-center rounded font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/30",Ze[a],t?"bg-primary-600 text-white dark:bg-primary-500":"border border-primary-200 bg-white text-primary-700 hover:bg-primary-50 dark:border-primary-700 dark:bg-primary-900 dark:text-primary-300 dark:hover:bg-primary-800",r&&"pointer-events-none opacity-40"),children:c})}function Ne({totalPages:e,currentPage:r,onPageChange:t,siblingCount:a=2,showFirstLast:l=true,showPageCount:c=false,size:s="md",className:f}){if(e<=1)return null;let y=Yr(r,e,a);return jsxs("nav",{"aria-label":"Pagination",className:o("flex items-center gap-1",f),children:[l&&jsx(ue,{size:s,onClick:()=>t(1),disabled:r===1,"aria-label":"First page",children:jsx(ChevronsLeft,{className:me[s]})}),jsx(ue,{size:s,onClick:()=>t(r-1),disabled:r===1,"aria-label":"Previous page",children:jsx(ChevronLeft,{className:me[s]})}),y.map((u,v)=>u==="\u2026"?jsx("span",{className:o("inline-flex items-center justify-center text-secondary-400",Ze[s]),"aria-hidden":"true",children:jsx(MoreHorizontal,{className:me[s]})},`ellipsis-${v}`):jsx(ue,{size:s,active:u===r,onClick:()=>t(u),"aria-label":`Page ${u}`,children:u},u)),jsx(ue,{size:s,onClick:()=>t(r+1),disabled:r===e,"aria-label":"Next page",children:jsx(ChevronRight,{className:me[s]})}),l&&jsx(ue,{size:s,onClick:()=>t(e),disabled:r===e,"aria-label":"Last page",children:jsx(ChevronsRight,{className:me[s]})}),c&&jsxs("span",{className:"ml-2 text-sm text-secondary-500 dark:text-secondary-400",children:["Page ",r," of ",e]})]})}function er({item:e,mode:r}){return e.separator?jsx("div",{className:"mx-1 h-10 w-px self-center bg-primary-200 dark:bg-primary-700","aria-hidden":true}):jsxs("button",{type:"button",title:e.title??e.label,disabled:e.disabled,onClick:e.onClick,"aria-pressed":e.active,className:o("relative flex shrink-0 items-center justify-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400","disabled:cursor-not-allowed disabled:opacity-40",e.active?"bg-primary-100 text-primary-700 shadow-inner dark:bg-primary-800 dark:text-primary-200":"text-primary-700 hover:bg-primary-50 active:bg-primary-100 dark:text-primary-300 dark:hover:bg-primary-800",r==="full"?"min-w-[3.5rem] flex-col gap-0.5 py-2":"","[&_svg]:shrink-0",r==="full"?"[&_svg]:h-5 [&_svg]:w-5":"[&_svg]:h-4 [&_svg]:w-4"),children:[e.icon&&jsx("span",{children:e.icon}),r!=="icons"&&jsx("span",{className:o(r==="full"?"text-[0.6rem] leading-tight":""),children:e.label})]})}function $r({group:e,mode:r,disabled:t=false}){return jsxs("div",{className:o("flex shrink-0 flex-col items-stretch",t&&"opacity-50"),children:[jsx("div",{className:"flex items-center gap-0.5 px-1",children:e.items.map(a=>jsx(er,{item:t?{...a,disabled:true}:a,mode:r},a.key))}),r==="full"&&jsx("div",{className:"mt-1 border-t border-primary-100 px-2 pt-0.5 text-center dark:border-primary-800",children:jsx("span",{className:"text-[0.55rem] text-secondary-400 dark:text-secondary-500",children:e.label})})]})}function De({tabs:e,defaultTab:r,activeTab:t,onTabChange:a,mode:l,onModeChange:c,sticky:s=false,className:f}){let y=e.filter(d=>!d.hidden),[u,v]=useState(r??y[0]?.key??""),[L,C]=useState(l??"full"),[g,w]=useState(true),m=t??u,N=l??L,H=d=>{if(!y.find($=>$.key===d)?.disabled){if(d===m&&N!=="icons"){w($=>!$);return}v(d),a?.(d),w(true);}},k=y.find(d=>d.key===m)??y[0];return jsxs("div",{className:o("select-none border-b border-primary-200 bg-white dark:border-primary-700 dark:bg-primary-900",s&&"sticky top-0 z-30",f),children:[jsxs("div",{className:"flex items-center border-b border-primary-100 dark:border-primary-800",children:[jsx("div",{className:"flex flex-1 items-end overflow-x-auto",children:y.map(d=>jsxs("button",{type:"button",disabled:d.disabled,onClick:()=>H(d.key),className:o("flex shrink-0 items-center gap-1.5 border-b-2 px-4 py-2 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-400 [&_svg]:h-4 [&_svg]:w-4",d.disabled?"cursor-not-allowed border-transparent text-secondary-300 opacity-50 dark:text-secondary-600":d.key===m&&g?"border-primary-500 text-primary-700 dark:border-primary-400 dark:text-primary-200":"border-transparent text-secondary-500 hover:border-primary-300 hover:text-primary-600 dark:text-secondary-400 dark:hover:text-primary-300"),children:[d.icon,d.label]},d.key))}),jsx("button",{type:"button",title:g?"Collapse ribbon":"Expand ribbon",onClick:()=>w(d=>!d),className:"ml-auto mr-2 rounded-md p-1.5 text-secondary-400 transition-colors hover:bg-primary-50 hover:text-primary-600 dark:hover:bg-primary-800 dark:hover:text-primary-300",children:g?jsx(ChevronUp,{className:"h-4 w-4"}):jsx(ChevronDown,{className:"h-4 w-4"})})]}),g&&k&&N!=="icons"&&jsx("div",{className:"flex items-stretch gap-1 overflow-x-auto px-2 py-1.5",children:k.groups.map((d,h)=>jsxs(dr.Fragment,{children:[h>0&&jsx("div",{className:"mx-1 h-auto w-px self-stretch bg-primary-100 dark:bg-primary-800"}),jsx($r,{group:d,mode:N,disabled:d.disabled||k.disabled})]},d.key))}),N==="icons"&&g&&k&&jsx("div",{className:"flex items-center gap-0.5 overflow-x-auto px-2 py-1",children:k.groups.flatMap(d=>d.items.map(h=>jsx(er,{item:d.disabled||k.disabled?{...h,disabled:true}:h,mode:"icons"},h.key)))})]})}var jr={SideNav:Le,Header:Ve,NavLink:He,Breadcrumb:ke,Pagination:Ne,RibbonBar:De},en=jr;
|
|
2
|
+
export{ke as Breadcrumb,Ve as Header,He as NavLink,jr as Navigation,Ne as Pagination,De as RibbonBar,Le as SideNav,en as default};
|