seam-react 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Select.d.ts CHANGED
@@ -7,6 +7,8 @@ export interface SelectOption {
7
7
  label?: ReactNode;
8
8
  /** 是否禁止选择该项。 */
9
9
  disabled?: boolean;
10
+ /** 子选项;提供 children 的节点只作为分组节点,不提交 value。 */
11
+ children?: Array<SelectOption>;
10
12
  }
11
13
  interface SelectBaseProps extends Omit<HTMLAttributes<HTMLElement>, "children" | "value" | "onChange" | "aria-expanded" | "defaultValue"> {
12
14
  /** 可选项;label 用于展示,value 用于提交。 */
@@ -21,6 +23,10 @@ interface SelectBaseProps extends Omit<HTMLAttributes<HTMLElement>, "children" |
21
23
  emptyText?: string;
22
24
  /** 标记选择值无效,使用共享 invalid 样式。 */
23
25
  invalid?: boolean;
26
+ /** 标记选项数据正在加载;请求由调用方管理。 */
27
+ loading?: boolean;
28
+ /** loading 时的提示文本。 */
29
+ loadingText?: string;
24
30
  /** 是否显示一键清空按钮。 */
25
31
  clear?: boolean;
26
32
  }
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),j=require("seam-hooks"),y=require("motion/react"),q=require("react-dom");function T(...t){return t.filter(Boolean).join(" ")}const X=c.forwardRef(function({variant:e="primary",size:n="md",loading:r=!1,iconOnly:s=!1,type:l="button",className:u,children:f,...m},d){return a.jsxs("button",{...m,ref:d,type:l,className:T("uk-button",u),"data-variant":e,"data-size":n,"data-loading":r?"true":void 0,"data-icon-only":s?"true":void 0,disabled:m.disabled||r,"aria-busy":r||void 0,children:[r?a.jsx("span",{className:"uk-button__spinner","aria-hidden":"true"}):null,f]})}),se=c.forwardRef(function({checked:e,defaultChecked:n,onCheckedChange:r,disabled:s,className:l,children:u,id:f,...m},d){const o=c.useId(),b=f??o,[p,x]=j.useControllableState({value:e,defaultValue:n??!1,onChange:r});return a.jsxs("label",{className:T("uk-checkbox",l),"data-disabled":s?"true":void 0,htmlFor:b,children:[a.jsx("input",{...m,ref:d,id:b,type:"checkbox",className:"uk-checkbox__input",checked:p,disabled:s,onChange:h=>{s||x(h.target.checked)}}),a.jsx("span",{className:"uk-checkbox__box","aria-hidden":"true",children:a.jsx("svg",{className:"uk-checkbox__check",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3.2,strokeLinecap:"round",strokeLinejoin:"round",children:a.jsx("path",{d:"M4 12.5 L9.5 18 L20 7",pathLength:1})})}),u?a.jsx("span",{className:"uk-checkbox__label",children:u}):null]})});se.displayName="CheckBox";const B=[.23,1,.32,1],U=[.77,0,.175,1],te={type:"spring",bounce:0,duration:.3},ne={type:"spring",bounce:.04,duration:.38},K={type:"spring",bounce:.08,duration:.34},ie={duration:.2,ease:U},Oe={layout:{duration:.16,ease:U},opacity:{duration:.16,ease:B},x:{duration:.16,ease:U}},ce={duration:.12,ease:B},$e={layout:{type:"spring",bounce:0,duration:.22},opacity:{duration:.12,ease:B},scale:{duration:.12,ease:B}},$={duration:.12,ease:B},le=c.createContext(null);function Y(t){const e=c.useContext(le);if(!e)throw new Error(`<${t}> must be rendered inside <Select>`);return e}const Ae=()=>()=>{},Be=()=>!0,Ve=()=>!1;function oe(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function He(t,e,n){return n<e?e:Math.min(Math.max(t,e),n)}function re(t,e){const n=e?t??[]:t==null?[]:[t];return Array.from(new Set(n))}function ze(t){return t==="bottom"?"center top":"center bottom"}function qe({options:t,value:e,defaultValue:n=null,onValueChange:r,multiple:s=!1,children:l}){const u=c.useId(),f=re(e,s),m=re(n,s),[d,o]=j.useControllableState({value:e===void 0?void 0:f,defaultValue:m,onChange:C=>{r?.(s?C:C[0]??"")}}),[b,p]=c.useState(!1),x=t.findIndex(C=>C.value===d[0]),[h,w]=c.useState(null),g=h??Math.max(x,0),I=c.useCallback(C=>{w(C)},[]),k=j.useEventCallback(C=>{const E=t[C];!E||E.disabled||(o(P=>s?P.includes(E.value)?P.filter(N=>N!==E.value):[...P,E.value]:P[0]===E.value?P:[E.value]),s||(p(!1),w(null)))}),i=j.useEventCallback(C=>{o(E=>E.filter(P=>P!==C))}),v=j.useEventCallback(()=>{o([])}),_=c.useMemo(()=>({values:d,multiple:s,activeIndex:g,open:b,setOpen:p,setActiveIndex:I,commit:k,removeValue:i,clearValues:v,triggerId:`${u}-trigger`,contentId:`${u}-content`,options:t}),[g,u,k,s,b,t,i,v,I,d]);return a.jsx(le.Provider,{value:_,children:l})}function H(t,e,n,r=!0){const s=t.length;if(s===0)return-1;for(let l=1;l<=s;l+=1){const u=r?(e+n*l+s*l)%s:e+n*l;if(u<0||u>=s)break;if(!t[u]?.disabled)return u}return e}const Ke=c.forwardRef(function({className:e,placeholder:n="请选择",size:r="md",clear:s=!1,disabled:l,onPointerDown:u,onKeyDown:f,...m},d){const o=Y("Select.Trigger"),b=y.useReducedMotion()??!1,p=o.values.map(i=>o.options.find(_=>_.value===i)??{value:i,label:i}),x=p[0],h=c.useRef({search:"",timer:null}),w=c.useCallback(()=>{h.current.timer&&(clearTimeout(h.current.timer),h.current.timer=null),h.current.search=""},[]);c.useEffect(()=>w,[w]);const g=j.useEventCallback(i=>{const v=h.current;v.timer&&clearTimeout(v.timer),v.search+=i.toLowerCase(),v.timer=setTimeout(w,500);const _=o.options.map(R=>{const O=R.label;return(typeof O=="string"?O:R.value).toLowerCase()}),C=o.open&&o.activeIndex>=0?o.activeIndex+1:0,E=Array.from({length:_.length},(R,O)=>(C+O)%_.length),P=E.find(R=>!o.options[R]?.disabled&&_[R]?.startsWith(v.search)),N=E.find(R=>!o.options[R]?.disabled&&_[R]?.includes(v.search)),M=P??N;M!==void 0&&(o.open?o.setActiveIndex(M):o.multiple?(o.setActiveIndex(M),o.setOpen(!0)):o.commit(M))}),I=j.useEventCallback(i=>{l||o.setOpen(!o.open)}),k=j.useEventCallback(i=>{if(!l){if(i.key.length===1&&!i.metaKey&&!i.ctrlKey&&!i.altKey){i.preventDefault(),g(i.key);return}if(i.key==="Backspace"&&o.multiple){const v=o.values[o.values.length-1];v&&(i.preventDefault(),o.removeValue(v));return}if(!o.open){["ArrowDown","ArrowUp","Enter"," "].includes(i.key)&&(i.preventDefault(),o.setOpen(!0),o.setActiveIndex(o.activeIndex>=0?o.activeIndex:H(o.options,-1,1)));return}if(i.key==="Escape"||i.key==="Tab"){o.setOpen(!1),i.currentTarget.focus();return}if(i.key==="Enter"||i.key===" "){i.preventDefault(),o.commit(o.activeIndex),i.currentTarget.focus();return}if(i.key==="ArrowDown"){i.preventDefault(),o.setActiveIndex(H(o.options,o.activeIndex,1));return}if(i.key==="ArrowUp"){i.preventDefault(),o.setActiveIndex(H(o.options,o.activeIndex,-1));return}if(i.key==="Home"||i.key==="End"){i.preventDefault();const v=i.key==="Home"?1:-1,_=i.key==="Home"?-1:o.options.length;o.setActiveIndex(H(o.options,_,v,!1))}}});return a.jsxs("div",{...m,ref:d,id:o.triggerId,role:"combobox",tabIndex:l?-1:0,"aria-disabled":l||void 0,"aria-expanded":o.open,"aria-haspopup":"listbox","aria-controls":o.open?o.contentId:void 0,"aria-activedescendant":o.open&&o.options[o.activeIndex]?`${o.contentId}-option-${o.activeIndex}`:void 0,"data-size":r,"data-multiple":o.multiple||void 0,className:T("uk-select__trigger",e),onPointerDown:oe(u,I),onKeyDown:oe(f,k),children:[o.multiple?a.jsxs("span",{className:"uk-select__tags",children:[a.jsx(y.AnimatePresence,{initial:!1,children:p.map(i=>{const v=i.label??i.value,_=typeof v=="string"?v:i.value;return a.jsxs(y.motion.span,{className:"uk-select__tag","data-slot":"select-tag",layout:!0,initial:b?{opacity:0}:{opacity:0,x:12},animate:b?{opacity:1}:{opacity:1,x:0},exit:b?{opacity:0}:{opacity:0,x:4},transition:b?{duration:0}:Oe,children:[a.jsx("span",{className:"uk-select__tag-label",children:v}),a.jsx("button",{type:"button",className:"uk-select__tag-remove",disabled:l,"aria-label":`移除 ${_}`,onPointerDown:C=>C.stopPropagation(),onKeyDown:C=>{C.key==="Backspace"&&C.stopPropagation()},onClick:C=>{C.stopPropagation(),o.removeValue(i.value)},children:a.jsx("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M5 5l6 6M11 5l-6 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},i.value)})}),p.length===0?a.jsx("span",{className:"uk-select__placeholder",children:n}):null]}):a.jsx("span",{className:"uk-select__value",children:x?.label??o.values[0]??n}),a.jsxs("span",{className:"uk-select__actions",children:[s&&!l&&o.values.length>0?a.jsx("button",{type:"button",className:"uk-select__clear","aria-label":"清空",onPointerDown:i=>i.stopPropagation(),onKeyDown:i=>{["Backspace"," "].includes(i.key)&&i.stopPropagation()},onClick:i=>{i.stopPropagation(),document.getElementById(o.triggerId)?.focus(),o.clearValues()},children:a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[a.jsx("path",{d:"M18 6 6 18"}),a.jsx("path",{d:"m6 6 12 12"})]})}):null,a.jsx("span",{"aria-hidden":"true",className:"uk-select__chevron",children:a.jsx("svg",{viewBox:"0 0 16 16",fill:"none",children:a.jsx("path",{d:"m4 6.2 4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})});function Fe(t,e){const[n,r]=c.useState(null),s=c.useCallback(()=>{const l=e.current;if(!t||!l)return;const u=t.getBoundingClientRect(),f=l.getBoundingClientRect(),m=window.innerHeight-u.bottom-8,d=u.top-8,o=m>=Math.min(f.height,320)||m>=d?"bottom":"top",b=o==="bottom"?u.bottom+6:u.top-f.height-6,p=He(u.left,8,Math.max(8,window.innerWidth-u.width-8));r({x:p,y:b,side:o})},[e,t]);return c.useLayoutEffect(()=>{if(!t)return;s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0);const l=typeof ResizeObserver>"u"?null:new ResizeObserver(s);return l?.observe(t),l?.observe(e.current??t),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0),l?.disconnect()}},[e,t,s]),n}function Ge({emptyText:t}){const e=Y("Select.Content"),n=e.triggerId,r=document.getElementById(n),s=c.useRef(null),l=y.useReducedMotion()??!1,u=y.useIsPresent(),f=Fe(r,s),m=c.useSyncExternalStore(Ae,Be,Ve);if(c.useEffect(()=>{if(!e.open)return;const o=x=>{const h=x.target;h instanceof Node&&(r?.contains(h)||s.current?.contains(h)||(e.setOpen(!1),r?.focus()))};document.addEventListener("pointerdown",o,!0);const b=x=>{x.key==="Escape"&&(e.setOpen(!1),r?.focus())},p=()=>{e.setOpen(!1)};return document.addEventListener("keydown",b,!0),window.addEventListener("blur",p),()=>{document.removeEventListener("pointerdown",o,!0),document.removeEventListener("keydown",b,!0),window.removeEventListener("blur",p)}},[e,r]),!m)return null;const d=r?.closest("dialog")??document.body;return q.createPortal(a.jsx("div",{ref:s,className:"uk-select","data-side":f?.side??"bottom","data-state":u?"open":"closed","aria-hidden":u?void 0:!0,style:{left:f?`${f.x}px`:0,top:f?`${f.y}px`:0,"--uk-select-width":`${r?.offsetWidth??220}px`,visibility:f?"visible":"hidden"},children:a.jsx(y.motion.div,{className:"uk-select__surface",style:{transformOrigin:ze(f?.side??"bottom")},initial:l?{opacity:0}:{opacity:0,scale:.97,y:-4},animate:l?{opacity:1}:{opacity:1,scale:1,y:0},exit:l?{opacity:0}:{opacity:0,scale:.97,y:-2},transition:l?$:ie,children:e.options.length===0?a.jsx("p",{className:"uk-select__empty",children:t}):a.jsx(y.LayoutGroup,{id:`select-${e.contentId}`,children:a.jsx("ul",{id:e.contentId,className:"uk-select__list",role:"listbox","aria-labelledby":n,children:e.options.map((o,b)=>a.jsxs("li",{id:`${e.contentId}-option-${b}`,role:"option","aria-disabled":o.disabled||void 0,"aria-selected":e.values.includes(o.value),"data-disabled":o.disabled||void 0,"data-selected":e.values.includes(o.value)||void 0,"data-active":b===e.activeIndex||void 0,className:"uk-select__option",onPointerEnter:p=>{p.pointerType==="mouse"&&!o.disabled&&e.setActiveIndex(b)},onClick:p=>{p.stopPropagation(),e.commit(b)},children:[a.jsx(y.AnimatePresence,{initial:!1,children:b===e.activeIndex?a.jsx(y.motion.span,{className:"uk-select__option-highlight","data-slot":"select-active-highlight",layoutId:`${e.contentId}-active`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:l?{duration:0}:K}):null}),a.jsx("span",{className:"uk-select__option-label",children:o.label??o.value}),a.jsx("span",{"aria-hidden":"true",className:"uk-select__check"})]},o.value))})})})}),d)}const Ue=c.forwardRef(function({options:e,multiple:n,value:r,defaultValue:s,onValueChange:l,placeholder:u,size:f="md",clear:m,disabled:d,invalid:o,emptyText:b="暂无可选项",className:p,...x},h){return a.jsxs(qe,{options:e,multiple:n,value:r,defaultValue:s,onValueChange:l,children:[a.jsx(Ke,{...x,ref:h,placeholder:u,size:f,clear:m,disabled:d,"aria-invalid":o||void 0,"data-size":f,className:p}),a.jsx(We,{emptyText:b})]})});function We({emptyText:t}){const e=Y("Select.Content");return a.jsx(y.AnimatePresence,{children:e.open?a.jsx(Ge,{emptyText:t},"select-layer"):null})}const Xe=c.forwardRef(function({inputSize:e="md",invalid:n=!1,className:r,"aria-invalid":s,...l},u){return a.jsx("input",{...l,ref:u,className:T("uk-input",r),"data-size":e,"aria-invalid":n?!0:s})}),Ye=c.forwardRef(function({checked:e,defaultChecked:n,onCheckedChange:r,disabled:s,className:l,children:u,id:f,...m},d){const o=c.useId(),b=f??o,p=y.useReducedMotion()??!1,x=c.useRef(!1),h=c.useRef(null),[w,g]=j.useControllableState({value:e,defaultValue:n??!1,onChange:r}),I=y.useMotionValue(w?16:0);c.useEffect(()=>{if(h.current)return;const i=y.animate(I,w?16:0,p?{duration:0}:te);return()=>i.stop()},[w,p,I]);const k=i=>{const v=h.current;if(!(!v||v.pointerId!==i.pointerId)){if(v.moved){const _=v.samples[0],C=v.samples[v.samples.length-1],E=_&&C?Math.max(C.time-_.time,1):1,P=_&&C?(C.x-_.x)/E*1e3:0,N=Math.abs(P)>220?P>0:I.get()>=8;x.current=!0,h.current=null,g(N),y.animate(I,N?16:0,p?{duration:0}:{...te,velocity:P}),window.setTimeout(()=>{x.current=!1},0)}else h.current=null;i.currentTarget.hasPointerCapture(i.pointerId)&&typeof i.currentTarget.releasePointerCapture=="function"&&i.currentTarget.releasePointerCapture(i.pointerId)}};return a.jsxs("label",{className:T("uk-switch",l),"data-disabled":s?"true":void 0,htmlFor:b,onClickCapture:i=>{x.current&&(i.preventDefault(),i.stopPropagation())},children:[a.jsx("input",{...m,ref:d,id:b,type:"checkbox",role:"switch",className:"uk-switch__input",checked:w,disabled:s,"aria-checked":w,onChange:i=>g(i.target.checked)}),a.jsx("span",{className:"uk-switch__track","aria-hidden":"true",onPointerDown:i=>{s||(h.current={pointerId:i.pointerId,startX:i.clientX,startValue:I.get(),moved:!1,samples:[{x:i.clientX,time:performance.now()}]},typeof i.currentTarget.setPointerCapture=="function"&&i.currentTarget.setPointerCapture(i.pointerId))},onPointerMove:i=>{const v=h.current;if(!v||v.pointerId!==i.pointerId)return;const _=i.clientX-v.startX;Math.abs(_)>4&&(v.moved=!0),v.moved&&(i.preventDefault(),I.set(Math.max(0,Math.min(16,v.startValue+_))),v.samples.push({x:i.clientX,time:performance.now()}),v.samples=v.samples.filter(C=>performance.now()-C.time<120))},onPointerUp:k,onPointerCancel:k,children:a.jsx(y.motion.span,{className:"uk-switch__thumb",style:{x:I}})}),u?a.jsx("span",{className:"uk-switch__label",children:u}):null]})}),ue=c.createContext(null);function de(t){const e=c.useContext(ue);if(!e)throw new Error(`<${t}> must be rendered inside <Sidebar>`);return e}function G(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function Je({children:t,className:e,hoverPreview:n=!0,hoverIndicator:r="rail",groupGap:s,style:l,...u}){const[f,m]=c.useState(null),d=c.useId().replace(/:/g,""),o=c.useMemo(()=>({hoveredId:f,setHoveredId:m,indicatorBaseId:d,hoverPreview:n,hoverIndicator:r}),[f,d,n,r]),b=typeof s=="number"?`${s}px`:s,p={...l,...b===void 0?{}:{"--uk-sidebar-group-gap":b}};return a.jsx(ue.Provider,{value:o,children:a.jsx(y.LayoutGroup,{id:`sidebar-${d}`,children:a.jsx("nav",{...u,className:T("uk-sidebar",e),style:p,children:t})})})}function Qe({title:t,icon:e,collapsible:n=!1,open:r,defaultOpen:s=!0,onOpenChange:l,children:u,className:f,...m}){const d=c.useId(),o=c.useId(),b=c.useId(),p=c.useRef(null),x=c.useRef(null),h=de("Sidebar.Group"),w=e!=null,g=y.useReducedMotion()??!1,[I,k]=j.useControllableState({value:r,defaultValue:s,onChange:l}),i=n?I:!0,v=h.hoveredId===b;c.useEffect(()=>{!n||i||x.current?.contains(document.activeElement)&&p.current?.focus()},[n,i]);const _=a.jsxs(a.Fragment,{children:[w?a.jsx("span",{className:"uk-sidebar__group-icon","aria-hidden":"true",children:e}):null,a.jsx("span",{className:"uk-sidebar__group-label",children:t}),n?a.jsx("span",{className:"uk-sidebar__chevron","aria-hidden":"true",children:a.jsx("svg",{viewBox:"0 0 16 16",width:"12",height:"12",fill:"none",children:a.jsx("path",{d:"m6 3.8 4.2 4.2L6 12.2",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round"})})}):null]});return a.jsxs("section",{...m,className:T("uk-sidebar__group",f),"aria-labelledby":m["aria-labelledby"]??d,"data-collapsible":n?"true":"false","data-has-icon":w?"true":"false","data-state":i?"open":"closed",children:[n?a.jsxs("button",{ref:p,type:"button",className:"uk-sidebar__group-title uk-sidebar__group-trigger",id:d,"aria-controls":o,"aria-expanded":i,"data-preview":h.hoverIndicator==="background"&&v?"true":void 0,onClick:()=>k(C=>!C),onPointerEnter:C=>{h.hoverPreview&&h.hoverIndicator==="background"&&C.pointerType==="mouse"&&h.setHoveredId(b)},onPointerLeave:()=>{h.hoveredId===b&&h.setHoveredId(null)},onPointerCancel:()=>{h.hoveredId===b&&h.setHoveredId(null)},children:[a.jsx(y.AnimatePresence,{initial:!1,children:h.hoverPreview&&h.hoverIndicator==="background"&&v?a.jsx(y.motion.span,{className:"uk-sidebar__group-surface","data-kind":"hover","data-slot":"sidebar-hover-highlight",layoutId:`${h.indicatorBaseId}-hover`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:g?{duration:0}:K}):null}),_]}):a.jsx("div",{className:"uk-sidebar__group-title",id:d,children:_}),a.jsx(y.motion.div,{ref:x,className:"uk-sidebar__content",id:o,"data-state":i?"open":"closed",initial:!1,animate:{height:i?"auto":0,opacity:i?1:0},transition:g?{duration:0}:ie,inert:n&&!i,"aria-hidden":n&&!i?!0:void 0,children:a.jsx("ul",{className:"uk-sidebar__list",children:u})})]})}function Ze({active:t=!1,children:e,className:n}){const r=de("Sidebar.Item"),s=c.useId(),u=y.useReducedMotion()??!1?{duration:0}:K;if(!c.isValidElement(e))throw new Error("<Sidebar.Item> expects a single valid React element");const f=e,m=f.props,d=m.className,o=typeof d=="function"?g=>T("uk-sidebar__link",d(g),n):T("uk-sidebar__link",d,n),b=m.onPointerEnter,p=m.onPointerLeave,x=m.onPointerCancel,h=r.hoveredId===s,w=a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"uk-sidebar__rail","aria-hidden":"true"}),a.jsx(y.AnimatePresence,{initial:!1,children:r.hoverPreview&&r.hoverIndicator==="rail"&&h?a.jsx(y.motion.span,{className:"uk-sidebar__rail-indicator","data-kind":"hover","data-slot":"sidebar-hover-rail-indicator",layoutId:`${r.indicatorBaseId}-hover-rail`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:u}):null}),a.jsx(y.AnimatePresence,{initial:!1,children:r.hoverIndicator==="rail"&&t?a.jsx(y.motion.span,{className:"uk-sidebar__rail-indicator","data-kind":"active","data-slot":"sidebar-active-rail-indicator",layoutId:`${r.indicatorBaseId}-active-rail`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:u}):null}),a.jsx(y.AnimatePresence,{initial:!1,children:r.hoverPreview&&r.hoverIndicator==="background"&&h?a.jsx(y.motion.span,{className:"uk-sidebar__surface","data-kind":"hover","data-slot":"sidebar-hover-highlight",layoutId:`${r.indicatorBaseId}-hover`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:u}):null}),a.jsx(y.AnimatePresence,{initial:!1,children:r.hoverIndicator==="background"&&t?a.jsx(y.motion.span,{className:"uk-sidebar__surface","data-kind":"active","data-slot":"sidebar-active-highlight",layoutId:`${r.indicatorBaseId}-active`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:u}):null}),a.jsx("span",{className:"uk-sidebar__label",children:m.children})]});return a.jsx("li",{className:"uk-sidebar__item",children:c.cloneElement(f,{className:o,"data-active":t?"true":"false","data-preview":t||h?"true":"false","aria-current":m["aria-current"]??(t?"page":void 0),onPointerEnter:G(b,g=>{r.hoverPreview&&g.pointerType==="mouse"&&r.setHoveredId(s)}),onPointerLeave:G(p,()=>{r.hoveredId===s&&r.setHoveredId(null)}),onPointerCancel:G(x,()=>{r.hoveredId===s&&r.setHoveredId(null)})},w)})}const et=Object.assign(Je,{Group:Qe,Item:Ze}),fe=c.createContext(null);function J(t){const e=c.useContext(fe);if(!e)throw new Error(`<${t}> must be rendered inside <Tabs>`);return e}function pe(t,e){return`${t}-tab-${encodeURIComponent(e)}`}function he(t,e){return`${t}-panel-${encodeURIComponent(e)}`}function tt({value:t,defaultValue:e,onValueChange:n,orientation:r="horizontal",className:s,children:l}){const u=c.useId(),[f,m]=j.useControllableState({value:t,defaultValue:e??"",onChange:n}),d=c.useMemo(()=>({baseId:u,value:f,setValue:m,orientation:r,indicatorId:`${u}-indicator`}),[u,f,r,m]);return a.jsx(fe.Provider,{value:d,children:a.jsx("div",{className:T("uk-tabs",s),"data-orientation":r,children:l})})}const nt=c.forwardRef(function({className:e,onKeyDown:n,...r},s){const{orientation:l}=J("Tabs.List");return a.jsx("div",{...r,ref:s,role:"tablist","aria-orientation":l,tabIndex:-1,className:T("uk-tabs__list",e),onKeyDown:u=>{if(n?.(u),u.defaultPrevented)return;const m=u.target?.closest('[role="tab"]');if(!m||m.hasAttribute("disabled"))return;const d=Array.from(u.currentTarget.querySelectorAll('[role="tab"]:not([disabled])')),o=d.indexOf(m);if(o===-1)return;const b=l==="horizontal"?"ArrowRight":"ArrowDown",p=l==="horizontal"?"ArrowLeft":"ArrowUp";let x=-1;switch(u.key){case b:x=(o+1)%d.length;break;case p:x=(o-1+d.length)%d.length;break;case"Home":x=0;break;case"End":x=d.length-1;break;default:return}u.preventDefault();const h=d[x];h&&(h.focus(),h.click())}})}),ot=c.forwardRef(function({value:e,type:n="button",className:r,onClick:s,children:l,...u},f){const m=J("Tabs.Trigger"),d=m.value===e,o=y.useReducedMotion()??!1;return a.jsxs("button",{...u,ref:f,type:n,role:"tab",id:pe(m.baseId,e),"aria-selected":d,"aria-controls":he(m.baseId,e),tabIndex:d?0:-1,"data-state":d?"active":"inactive",className:T("uk-tabs__trigger",r),onClick:b=>{s?.(b),b.defaultPrevented||m.setValue(e)},children:[l,d?a.jsx(y.motion.span,{className:"uk-tabs__indicator",layoutId:m.indicatorId,"aria-hidden":"true",transition:o?{duration:0}:K}):null]})}),rt=c.forwardRef(function({value:e,className:n,...r},s){const l=J("Tabs.Content"),u=l.value===e;return a.jsx("div",{...r,ref:s,role:"tabpanel",id:he(l.baseId,e),"aria-labelledby":pe(l.baseId,e),hidden:!u,tabIndex:0,"data-state":u?"active":"inactive",className:T("uk-tabs__panel",n)})}),at=Object.assign(tt,{List:nt,Trigger:ot,Content:rt}),me=c.createContext(null),st=()=>()=>{},it=()=>!0,ct=()=>!1;function V(t){const e=c.useContext(me);if(!e)throw new Error(`<${t}> must be rendered inside <Dialog.Root>`);return e}function be(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function xe({children:t,open:e,defaultOpen:n,onOpenChange:r}){const s=c.useId(),[l,u]=c.useState(!1),[f,m]=c.useState(!1),[d,o]=j.useControllableState({value:e,defaultValue:n??!1,onChange:r}),b=c.useMemo(()=>({open:d,setOpen:o,triggerId:`${s}-trigger`,contentId:`${s}-content`,titleId:`${s}-title`,descriptionId:`${s}-description`,hasTitle:l,setHasTitle:u,hasDescription:f,setHasDescription:m}),[s,d,f,l,o]);return a.jsx(me.Provider,{value:b,children:t})}function lt({children:t}){const e=V("Dialog.Trigger"),n=t,r=n.props.onClick;return c.cloneElement(n,{id:e.triggerId,"aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.open?e.contentId:void 0,onClick:be(r,()=>{e.setOpen(!e.open)})})}function ge({children:t,label:e="Close"}){const n=V("Dialog.Close");if(c.isValidElement(t)){const r=t,s=r.props.onClick;return c.cloneElement(r,{onClick:be(s,()=>{n.setOpen(!1)})})}return a.jsx(X,{variant:"ghost",onClick:()=>n.setOpen(!1),children:e})}const ve=c.forwardRef(function({className:e,...n},r){return a.jsx("header",{...n,ref:r,className:T("uk-dialog__header",e)})}),ye=c.forwardRef(function({className:e,children:n,...r},s){const l=V("Dialog.Title"),u=l.setHasTitle;return c.useEffect(()=>(u(!0),()=>u(!1)),[u]),a.jsx("h2",{...r,ref:s,id:l.titleId,className:T("uk-dialog__title",e),children:n})}),ke=c.forwardRef(function({className:e,...n},r){const s=V("Dialog.Description"),l=s.setHasDescription;return c.useEffect(()=>(l(!0),()=>l(!1)),[l]),a.jsx("p",{...n,ref:r,id:s.descriptionId,className:T("uk-dialog__description",e)})}),Ie=c.forwardRef(function({className:e,...n},r){return a.jsx("div",{...n,ref:r,className:T("uk-dialog__body",e)})}),we=c.forwardRef(function({className:e,...n},r){return a.jsx("footer",{...n,ref:r,className:T("uk-dialog__footer",e)})});function ut({requestClose:t,contentId:e,titleId:n,descriptionId:r,hasTitle:s,hasDescription:l,children:u,closeOnBackdropClick:f=!0,closeOnEscape:m=!0,initialFocusRef:d,returnFocusRef:o,className:b,"aria-label":p,"aria-labelledby":x,"aria-describedby":h}){const w=c.useRef(null),g=c.useRef(null),I=y.useIsPresent(),k=y.useReducedMotion()??!1;return j.useLockBodyScroll(!0),c.useLayoutEffect(()=>{const i=w.current;i&&(g.current??(g.current=document.activeElement instanceof HTMLElement?document.activeElement:null),!i.open&&(typeof i.showModal=="function"?i.showModal():i.setAttribute("open","")))},[]),j.useFocusTrap({active:!0,containerRef:w,initialFocusRef:d,returnFocusRef:o??g}),c.useEffect(()=>{const i=w.current;if(!i)return;const v=()=>{i.open||(typeof i.showModal=="function"?i.showModal():i.setAttribute("open",""))},_=()=>{if(!m){v();return}t()},C=N=>{N.preventDefault(),m&&t()},E=N=>{m||N.key!=="Escape"||N.defaultPrevented||(N.preventDefault(),N.stopPropagation())},P=N=>{f&&N.target===i&&t()};return i.addEventListener("close",_),i.addEventListener("cancel",C),i.addEventListener("keydown",E,!0),i.addEventListener("click",P),()=>{i.removeEventListener("close",_),i.removeEventListener("cancel",C),i.removeEventListener("keydown",E,!0),i.removeEventListener("click",P)}},[f,m,t]),a.jsx("dialog",{ref:w,id:e,className:T("uk-dialog",b),closedby:m||f?"any":"none","data-state":I?"open":"closed",inert:!I,"aria-label":p,"aria-labelledby":x??(p?void 0:s?n:void 0),"aria-describedby":h??(l?r:void 0),children:a.jsx(y.motion.div,{className:"uk-dialog__panel",initial:k?{opacity:0}:{opacity:0,transform:"translateY(12px) scale(0.96)"},animate:{opacity:1,transform:"translateY(0px) scale(1)",transition:k?$:{...ne,delay:.06}},exit:k?{opacity:0,transition:$}:{opacity:0,transform:"translateY(8px) scale(0.97)",transition:ne},children:u})})}function Ce({children:t,closeOnBackdropClick:e=!0,closeOnEscape:n=!0,initialFocusRef:r,returnFocusRef:s,className:l,"aria-label":u,"aria-labelledby":f,"aria-describedby":m}){const d=V("Dialog.Content"),o=j.useEventCallback(()=>{d.setOpen(!1)});return c.useSyncExternalStore(st,it,ct)?q.createPortal(a.jsx(y.MotionConfig,{reducedMotion:"user",children:a.jsx(y.AnimatePresence,{children:d.open?a.jsx(ut,{requestClose:o,contentId:d.contentId,titleId:d.titleId,descriptionId:d.descriptionId,hasTitle:d.hasTitle,hasDescription:d.hasDescription,closeOnBackdropClick:e,closeOnEscape:n,initialFocusRef:r,returnFocusRef:s,className:l,"aria-label":u,"aria-labelledby":f,"aria-describedby":m,children:t},"uk-dialog"):null})}),document.body):null}function dt({open:t,onOpenChange:e,title:n,description:r,footer:s,children:l,closeLabel:u="Close",showCloseButton:f=!0,closeOnBackdropClick:m=!0,closeOnEscape:d=!0,initialFocusRef:o,returnFocusRef:b,className:p,"aria-label":x}){return a.jsx(xe,{open:t,onOpenChange:e,children:a.jsxs(Ce,{className:p,closeOnBackdropClick:m,closeOnEscape:d,initialFocusRef:o,returnFocusRef:b,"aria-label":x,children:[n||r||f?a.jsxs(ve,{children:[a.jsxs("div",{className:"uk-dialog__heading",children:[n?a.jsx(ye,{children:n}):null,r?a.jsx(ke,{children:r}):null]}),f?a.jsx(ge,{children:a.jsx(X,{variant:"ghost",size:"sm",iconOnly:!0,"aria-label":u,className:"uk-dialog__close",children:a.jsx("svg",{viewBox:"0 0 20 20",width:"16",height:"16","aria-hidden":"true",children:a.jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})})})}):null]}):null,a.jsx(Ie,{children:l}),s?a.jsx(we,{children:s}):null]})})}const ft=Object.assign(dt,{Root:xe,Trigger:lt,Content:Ce,Header:ve,Title:ye,Description:ke,Body:Ie,Footer:we,Close:ge});function pt(t,e){if(!(e instanceof Element))return!1;const n=e.closest('a, button, input, select, textarea, label, [contenteditable="true"], [role="button"]');return n!==null&&n!==t}const ht=c.forwardRef(function({children:e,className:n,direction:r="left",speed:s=30,pauseOnHover:l=!0,gap:u="1rem",fade:f=!0,paused:m=!1,items:d,onItemClick:o,...b},p){const x=d?d.map(g=>({key:g.key,content:g.content,data:g.data})):c.Children.toArray(e).map((g,I)=>({key:c.isValidElement(g)?g.key??null:null,content:g,data:void 0})),h=(g,I,k)=>{!o||k.defaultPrevented||pt(k.currentTarget,k.target)||o({index:I,key:g.key,data:g.data},k)},w=(g,I,k)=>{!o||k.defaultPrevented||(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),o({index:I,key:g.key,data:g.data},k))};return a.jsx("div",{...b,ref:p,className:T("uk-marquee",n),"data-direction":r,"data-fade":f?"true":void 0,"data-pause-on-hover":l?"true":void 0,"data-paused":m?"true":"false",style:{...b.style,"--uk-marquee-gap":u,"--uk-marquee-duration":`${s}s`,gap:u},children:[!1,!0].map(g=>a.jsx("div",{"aria-hidden":g,className:"uk-marquee__track","data-duplicate":g?"true":void 0,inert:g&&!o,role:g?"presentation":void 0,onFocusCapture:g?I=>{I.target instanceof HTMLElement&&I.target.blur()}:void 0,children:x.map((I,k)=>a.jsx("div",{className:"uk-marquee__item","data-clickable":o?"true":void 0,...o?{role:g?void 0:"button",tabIndex:g?-1:0,onClick:i=>h(I,k,i),onKeyDown:g?void 0:i=>w(I,k,i)}:{},children:I.content},g?`duplicate-${k}`:I.key??k))},g?"duplicate":"primary"))})}),_e=c.createContext(null),je=()=>()=>{},Te=()=>!0,Ee=()=>!1;function Pe(t){const e=c.useContext(_e);if(!e)throw new Error(`<${t}> must be rendered inside <Tooltip.Root>`);return e}function Ne(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function Re(t,e){const n=typeof t=="string"?t.split(/\s+/).filter(Boolean):[];return Array.from(new Set([...n,e])).join(" ")}function S(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function mt({children:t,open:e,defaultOpen:n,onOpenChange:r,delayDuration:s=300,closeDelay:l=80}){const u=c.useId(),[f,m]=c.useState(null),d=c.useRef(null),o=c.useRef(null),[b,p]=j.useControllableState({value:e,defaultValue:n??!1,onChange:r}),x=c.useCallback(()=>{d.current!==null&&(clearTimeout(d.current),d.current=null)},[]),h=c.useCallback(()=>{o.current!==null&&(clearTimeout(o.current),o.current=null)},[]),w=j.useEventCallback((i=!1)=>{if(x(),h(),!b){if(i||s<=0){p(!0);return}d.current=setTimeout(()=>{d.current=null,p(!0)},s)}}),g=j.useEventCallback(()=>{if(x(),h(),!!b){if(l<=0){p(!1);return}o.current=setTimeout(()=>{o.current=null,p(!1)},l)}}),I=j.useEventCallback(()=>{x(),h(),p(!1)});c.useEffect(()=>{b?h():x()},[h,x,b]),c.useEffect(()=>()=>{x(),h()},[h,x]);const k=c.useMemo(()=>({open:b,triggerElement:f,setTriggerElement:m,contentId:u,requestOpen:w,requestClose:g,dismiss:I}),[u,b,I,g,w,f]);return a.jsx(_e.Provider,{value:k,children:t})}function bt({children:t}){const e=Pe("Tooltip.Trigger"),{setTriggerElement:n}=e;if(!c.isValidElement(t))throw new Error("<Tooltip.Trigger> expects a single valid React element");const r=t,s=r.props,l=s.ref??r.ref,u=s.onPointerEnter,f=s.onPointerLeave,m=s.onFocus,d=s.onBlur,o=s.onKeyDown,b=c.useCallback(p=>{Ne(l,p),n(p)},[l,n]);return c.cloneElement(r,{ref:b,"aria-describedby":e.open?Re(s["aria-describedby"],e.contentId):s["aria-describedby"],onPointerEnter:S(u,p=>{e.requestOpen(p.pointerType==="touch")}),onPointerLeave:S(f,p=>{p.pointerType!=="touch"&&e.requestClose()}),onFocus:S(m,()=>{e.requestOpen()}),onBlur:S(d,()=>{e.requestClose()}),onKeyDown:S(o,p=>{p.key==="Escape"&&e.open&&(p.preventDefault(),p.stopPropagation(),e.dismiss())})})}function z(t,e,n){return n<e?e:Math.min(Math.max(t,e),n)}function xt(t){switch(t){case"top":return"bottom";case"right":return"left";case"bottom":return"top";case"left":return"right"}}function W(t,e,n,r,s){switch(e){case"top":return t.top-s;case"right":return n-t.right-s;case"bottom":return r-t.bottom-s;case"left":return t.left-s}}function ae(t,e,n,r,s,l,u){return W(t,n,s,l,u)>=(n==="top"||n==="bottom"?e.height:e.width)+r}function gt({trigger:t,tooltip:e,side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:u,viewportWidth:f,viewportHeight:m}){let d=n;if(u&&!ae(t,e,n,s,f,m,l)){const g=xt(n),I=ae(t,e,g,s,f,m,l),k=W(t,n,f,m,l),i=W(t,g,f,m,l);(I||i>k)&&(d=g)}const o=t.left+t.width/2,b=t.top+t.height/2;let p=0,x=0;switch(d){case"top":case"bottom":p=r==="start"?t.left:r==="end"?t.right-e.width:o-e.width/2,x=d==="top"?t.top-e.height-s:t.bottom+s;break;case"left":case"right":p=d==="left"?t.left-e.width-s:t.right+s,x=r==="start"?t.top:r==="end"?t.bottom-e.height:b-e.height/2;break}u&&(p=z(p,l,f-e.width-l),x=z(x,l,m-e.height-l));const h=10,w=d==="top"||d==="bottom"?z(o-p,h,Math.max(h,e.width-h)):z(b-x,h,Math.max(h,e.height-h));return{x:p,y:x,side:d,arrowOffset:w}}function Se(t,e,{side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:u}){const[f,m]=c.useState(null);return c.useLayoutEffect(()=>{const d=e.current;if(!d||!t)return;const o=()=>{const p=t.getBoundingClientRect(),x=d.getBoundingClientRect();m(gt({trigger:p,tooltip:x,side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:u,viewportWidth:window.innerWidth||document.documentElement.clientWidth,viewportHeight:window.innerHeight||document.documentElement.clientHeight}))};o(),window.addEventListener("resize",o),window.addEventListener("scroll",o,!0);const b=typeof ResizeObserver>"u"?null:new ResizeObserver(o);return b?.observe(t),b?.observe(d),()=>{window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),b?.disconnect()}},[r,u,l,e,n,s,t]),f}function De(t,e,n){c.useEffect(()=>{const r=u=>{const f=u.target;f instanceof Node&&(t.contains(f)||e.current?.contains(f)||n())},s=()=>{document.visibilityState==="hidden"&&n()},l=u=>{const f=u.target;u.key!=="Escape"||f instanceof Node&&t.contains(f)||n()};return document.addEventListener("pointerdown",r,!0),document.addEventListener("visibilitychange",s),document.addEventListener("keydown",l,!0),window.addEventListener("blur",n),()=>{document.removeEventListener("pointerdown",r,!0),document.removeEventListener("visibilitychange",s),document.removeEventListener("keydown",l,!0),window.removeEventListener("blur",n)}},[n,e,t])}function Le(t){switch(t){case"top":return"center bottom";case"bottom":return"center top";case"left":return"right center";case"right":return"left center";default:return"center"}}function vt({contentId:t,triggerElement:e,dismiss:n,children:r,className:s,style:l,side:u="top",align:f="center",sideOffset:m=8,collisionPadding:d=8,avoidCollisions:o=!0,...b}){const p=c.useRef(null),x=y.useReducedMotion()??!1,h=y.useIsPresent(),w=Se(e,p,{side:u,align:f,sideOffset:m,collisionPadding:d,avoidCollisions:o});De(e,p,n);const g=Le(w?.side??u),I={...l,left:w?`${w.x}px`:0,top:w?`${w.y}px`:0,visibility:w?"visible":"hidden"};return a.jsx("div",{...b,ref:p,id:t,role:"tooltip","data-side":w?.side??u,"data-align":f,"data-state":h?"open":"closed","aria-hidden":h?void 0:!0,className:T("uk-tooltip",s),style:I,children:a.jsxs(y.motion.div,{className:"uk-tooltip__surface",style:{transformOrigin:g},initial:x?{opacity:0}:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:x?{opacity:0}:{opacity:0,scale:.96},transition:x?$:ce,children:[a.jsx("span",{className:"uk-tooltip__arrow","aria-hidden":"true",style:{"--uk-tooltip-arrow-offset":`${w?.arrowOffset??0}px`}}),r]})})}function yt(t){const e=Pe("Tooltip.Content"),r=c.useSyncExternalStore(je,Te,Ee)&&e.triggerElement?e.triggerElement.closest("dialog")??document.body:null;return!r||!e.triggerElement?null:q.createPortal(a.jsx(y.MotionConfig,{reducedMotion:"user",children:a.jsx(y.AnimatePresence,{children:e.open?a.jsx(vt,{contentId:e.contentId,triggerElement:e.triggerElement,dismiss:e.dismiss,...t},"uk-tooltip"):null})}),r)}const Me=c.createContext(null);function kt(t){const e=c.useContext(Me);if(!e)throw new Error(`<${t}> must be rendered inside <Tooltip.Group>`);return e}function It({activeValue:t,content:e,contentClassName:n,contentId:r,dismiss:s,triggerElement:l,side:u,align:f,sideOffset:m,collisionPadding:d,avoidCollisions:o}){const b=c.useRef(null),p=y.useReducedMotion()??!1,x=y.useIsPresent(),h=Se(l,b,{side:u,align:f,sideOffset:m,collisionPadding:d,avoidCollisions:o});De(l,b,s);const w={left:h?`${h.x}px`:0,top:h?`${h.y}px`:0,transformOrigin:Le(h?.side??u),visibility:h?"visible":"hidden"};return a.jsxs(y.motion.div,{ref:b,id:r,role:"tooltip",layout:!p,layoutDependency:t,"data-side":h?.side??u,"data-align":f,"data-state":x?"open":"closed","aria-hidden":x?void 0:!0,className:T("uk-tooltip","uk-tooltip__surface","uk-tooltip--group",n),style:w,initial:p?{opacity:0}:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:p?{opacity:0}:{opacity:0,scale:.96},transition:p?{...$,layout:{duration:0}}:$e,children:[a.jsx("span",{className:"uk-tooltip__arrow","aria-hidden":"true",style:{"--uk-tooltip-arrow-offset":`${h?.arrowOffset??0}px`}}),a.jsx(y.motion.div,{className:"uk-tooltip__content",initial:{opacity:0},animate:{opacity:1},transition:p?$:ce,children:e},t)]})}function wt({children:t,side:e="top",align:n="center",sideOffset:r=8,collisionPadding:s=8,avoidCollisions:l=!0,delayDuration:u=180,closeDelay:f=80,contentClassName:m}){const d=c.useId(),[o,b]=c.useState(()=>new Map),[p,x]=c.useState(!1),[h,w]=c.useState(null),g=c.useRef(null),I=c.useRef(null),k=c.useSyncExternalStore(je,Te,Ee),i=c.useCallback(()=>{g.current!==null&&(clearTimeout(g.current),g.current=null)},[]),v=c.useCallback(()=>{I.current!==null&&(clearTimeout(I.current),I.current=null)},[]),_=j.useEventCallback((L,D=!1)=>{if(i(),v(),w(L),!p){if(D||u<=0){x(!0);return}g.current=setTimeout(()=>{g.current=null,x(!0)},u)}}),C=j.useEventCallback(()=>{if(i(),v(),!!p){if(f<=0){x(!1);return}I.current=setTimeout(()=>{I.current=null,x(!1)},f)}}),E=j.useEventCallback(()=>{i(),v(),x(!1)}),P=j.useEventCallback((L,D,A)=>{b(F=>{const Z=F.get(L);if(Z?.triggerElement===D&&Object.is(Z.content,A))return F;const ee=new Map(F);return ee.set(L,{triggerElement:D,content:A}),ee})}),N=j.useEventCallback(L=>{b(D=>{if(!D.has(L))return D;const A=new Map(D);return A.delete(L),A})});c.useEffect(()=>()=>{i(),v()},[v,i]);const M=c.useMemo(()=>({open:p,activeValue:h,contentId:d,activate:_,requestClose:C,dismiss:E,register:P,unregister:N}),[_,h,d,E,p,P,C,N]),R=h?o.get(h):void 0,O=p&&!!R,Q=k&&R?R.triggerElement.closest("dialog")??document.body:null;return a.jsxs(Me.Provider,{value:M,children:[t,Q&&R?q.createPortal(a.jsx(y.MotionConfig,{reducedMotion:"user",children:a.jsx(y.AnimatePresence,{children:O?a.jsx(It,{activeValue:h??"",content:R.content,contentClassName:m,contentId:d,dismiss:E,triggerElement:R.triggerElement,side:e,align:n,sideOffset:r,collisionPadding:s,avoidCollisions:l},"uk-tooltip-group"):null})}),Q):null]})}function Ct({value:t,content:e,children:n}){const r=kt("Tooltip.Item"),{register:s,unregister:l}=r,[u,f]=c.useState(null);if(!c.isValidElement(n))throw new Error("<Tooltip.Item> expects a single valid React element");const m=n,d=m.props,o=d.ref??m.ref,b=d.onPointerEnter,p=d.onPointerLeave,x=d.onFocus,h=d.onBlur,w=d.onKeyDown,g=r.open&&r.activeValue===t,I=c.useCallback(k=>{Ne(o,k),f(k)},[o,f]);return c.useLayoutEffect(()=>{if(u)return s(t,u,e),()=>l(t)},[e,s,u,l,t]),c.cloneElement(m,{ref:I,"aria-describedby":g?Re(d["aria-describedby"],r.contentId):d["aria-describedby"],onPointerEnter:S(b,k=>{r.activate(t,k.pointerType==="touch")}),onPointerLeave:S(p,k=>{k.pointerType!=="touch"&&r.requestClose()}),onFocus:S(x,()=>{r.activate(t)}),onBlur:S(h,()=>{r.requestClose()}),onKeyDown:S(w,k=>{k.key==="Escape"&&g&&(k.preventDefault(),k.stopPropagation(),r.dismiss())})})}const _t={Root:mt,Trigger:bt,Content:yt,Group:wt,Item:Ct};exports.Button=X;exports.CheckBox=se;exports.Dialog=ft;exports.Input=Xe;exports.Marquee=ht;exports.Select=Ue;exports.Sidebar=et;exports.Switch=Ye;exports.Tabs=at;exports.Tooltip=_t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),a=require("react"),P=require("seam-hooks"),w=require("motion/react"),G=require("react-dom");function L(...t){return t.filter(Boolean).join(" ")}const Q=a.forwardRef(function({variant:e="primary",size:n="md",loading:r=!1,iconOnly:s=!1,type:l="button",className:c,children:d,...p},u){return i.jsxs("button",{...p,ref:u,type:l,className:L("uk-button",c),"data-variant":e,"data-size":n,"data-loading":r?"true":void 0,"data-icon-only":s?"true":void 0,disabled:p.disabled||r,"aria-busy":r||void 0,children:[r?i.jsx("span",{className:"uk-button__spinner","aria-hidden":"true"}):null,d]})}),ae=a.forwardRef(function({checked:e,defaultChecked:n,onCheckedChange:r,disabled:s,className:l,children:c,id:d,...p},u){const m=a.useId(),o=d??m,[h,v]=P.useControllableState({value:e,defaultValue:n??!1,onChange:r});return i.jsxs("label",{className:L("uk-checkbox",l),"data-disabled":s?"true":void 0,htmlFor:o,children:[i.jsx("input",{...p,ref:u,id:o,type:"checkbox",className:"uk-checkbox__input",checked:h,disabled:s,onChange:x=>{s||v(x.target.checked)}}),i.jsx("span",{className:"uk-checkbox__box","aria-hidden":"true",children:i.jsx("svg",{className:"uk-checkbox__check",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3.2,strokeLinecap:"round",strokeLinejoin:"round",children:i.jsx("path",{d:"M4 12.5 L9.5 18 L20 7",pathLength:1})})}),c?i.jsx("span",{className:"uk-checkbox__label",children:c}):null]})});ae.displayName="CheckBox";const z=[.23,1,.32,1],W=[.77,0,.175,1],ne={type:"spring",bounce:0,duration:.3},oe={type:"spring",bounce:.04,duration:.38},U={type:"spring",bounce:.08,duration:.34},ce={duration:.2,ease:W},Ve={layout:{type:"spring",bounce:.04,duration:.22},opacity:{duration:.12,ease:z},x:{type:"spring",bounce:.08,duration:.26},scaleX:{type:"spring",bounce:.08,duration:.26},scaleY:{type:"spring",bounce:.08,duration:.26}},He={layout:{duration:.16,ease:W},opacity:{duration:.16,ease:z},x:{duration:.16,ease:W}},le={duration:.12,ease:z},ze={layout:{type:"spring",bounce:0,duration:.22},opacity:{duration:.12,ease:z},scale:{duration:.12,ease:z}},H={duration:.12,ease:z},ue=a.createContext(null);function Z(t){const e=a.useContext(ue);if(!e)throw new Error(`<${t}> must be rendered inside <Select>`);return e}const qe=()=>()=>{},Ke=()=>!0,Fe=()=>!1;function re(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function de(t,e,n){return n<e?e:Math.min(Math.max(t,e),n)}function ie(t,e){const n=e?t??[]:t==null?[]:[t];return Array.from(new Set(n))}function Ge(t){return t==="bottom"?"center top":"center bottom"}function Ue(t,e=null,n=0){let r=0;function s(l,c,d){return l.flatMap(p=>{const u=p.children??[],m={option:p,index:r,parentIndex:c,depth:d,hasChildren:u.length>0};return r+=1,[m,...s(u,m.index,d+1)]})}return s(t,e,n)}function fe(t,e){for(const n of t){if(n.value===e)return n;const r=fe(n.children??[],e);if(r)return r}return null}function pe(t,e){return(t.children??[]).some(n=>e.includes(n.value)||pe(n,e))}function Xe({options:t,loading:e=!1,value:n,defaultValue:r=null,onValueChange:s,multiple:l=!1,children:c}){const d=a.useId(),p=ie(n,l),u=ie(r,l),[m,o]=P.useControllableState({value:n===void 0?void 0:p,defaultValue:u,onChange:S=>{s?.(l?S:S[0]??"")}}),[h,v]=a.useState(!1),[x,k]=a.useState(e);x!==e&&(k(e),e&&v(!1));const g=a.useMemo(()=>Ue(t),[t]),C=g.findIndex(S=>S.option.value===m[0]),[I,b]=a.useState(null),f=I??Math.max(C,0),j=a.useCallback(S=>{b(S)},[]),E=P.useEventCallback(S=>{const N=g[S],R=N?.option;e||!R||R.disabled||N?.hasChildren||(o(D=>l?D.includes(R.value)?D.filter(O=>O!==R.value):[...D,R.value]:D[0]===R.value?D:[R.value]),l||(v(!1),b(null)))}),y=P.useEventCallback(S=>{o(N=>N.filter(R=>R!==S))}),_=P.useEventCallback(()=>{o([])}),T=a.useMemo(()=>({values:m,multiple:l,activeIndex:f,open:h,setOpen:v,setActiveIndex:j,commit:E,removeValue:y,clearValues:_,triggerId:`${d}-trigger`,contentId:`${d}-content`,options:t,optionNodes:g,loading:e}),[f,d,E,l,h,t,g,e,y,_,j,m]);return i.jsx(ue.Provider,{value:T,children:c})}function K(t,e,n,r=!0){const s=t.length;if(s===0)return-1;for(let l=1;l<=s;l+=1){const c=r?(e+n*l+s*l)%s:e+n*l;if(c<0||c>=s)break;if(!t[c]?.option.disabled)return c}return e}function Y(t,e){const n=t[e];if(!n?.hasChildren)return e;for(let r=e+1;r<t.length&&(t[r]?.depth??0)>n.depth;r+=1)if(t[r]?.depth===n.depth+1&&!t[r]?.option.disabled)return r;return e}const We=a.forwardRef(function({className:e,placeholder:n="请选择",size:r="md",clear:s=!1,loadingText:l="加载中...",disabled:c,onPointerDown:d,onKeyDown:p,...u},m){const o=Z("Select.Trigger"),h=w.useReducedMotion()??!1,v=o.values.map(f=>fe(o.options,f)??{value:f,label:f}),x=v[0],k=a.useRef({search:"",timer:null}),g=a.useCallback(()=>{k.current.timer&&(clearTimeout(k.current.timer),k.current.timer=null),k.current.search=""},[]);a.useEffect(()=>g,[g]);const C=P.useEventCallback(f=>{if(o.loading)return;const j=k.current;j.timer&&clearTimeout(j.timer),j.search+=f.toLowerCase(),j.timer=setTimeout(g,500);const E=o.optionNodes.map(R=>{const D=R.option.label;return(typeof D=="string"?D:R.option.value).toLowerCase()}),y=o.open&&o.activeIndex>=0?o.activeIndex+1:0,_=Array.from({length:E.length},(R,D)=>(y+D)%E.length),T=_.find(R=>!o.optionNodes[R]?.option.disabled&&E[R]?.startsWith(j.search)),S=_.find(R=>!o.optionNodes[R]?.option.disabled&&E[R]?.includes(j.search)),N=T??S;N!==void 0&&(o.open?o.setActiveIndex(N):o.multiple||o.optionNodes[N]?.hasChildren?(o.setActiveIndex(N),o.setOpen(!0)):o.commit(N))}),I=P.useEventCallback(f=>{c||o.loading||o.setOpen(!o.open)}),b=P.useEventCallback(f=>{if(c||o.loading)return;if(f.key.length===1&&!f.metaKey&&!f.ctrlKey&&!f.altKey){f.preventDefault(),C(f.key);return}if(f.key==="Backspace"&&o.multiple){const E=o.values[o.values.length-1];E&&(f.preventDefault(),o.removeValue(E));return}if(!o.open){["ArrowDown","ArrowUp","Enter"," "].includes(f.key)&&(f.preventDefault(),o.setOpen(!0),o.loading||o.setActiveIndex(o.activeIndex>=0?o.activeIndex:K(o.optionNodes,-1,1)));return}if(f.key==="Escape"||f.key==="Tab"){o.setOpen(!1),f.currentTarget.focus();return}const j=o.optionNodes[o.activeIndex];if(f.key==="Enter"||f.key===" "){if(f.preventDefault(),j?.hasChildren){o.setActiveIndex(Y(o.optionNodes,o.activeIndex)),f.currentTarget.focus();return}o.commit(o.activeIndex),f.currentTarget.focus();return}if(f.key==="ArrowRight"&&j?.hasChildren){f.preventDefault(),o.setActiveIndex(Y(o.optionNodes,o.activeIndex));return}if(f.key==="ArrowLeft"&&j?.parentIndex!=null){f.preventDefault(),o.setActiveIndex(j.parentIndex);return}if(!o.loading){if(f.key==="ArrowDown"){f.preventDefault(),o.setActiveIndex(K(o.optionNodes,o.activeIndex,1));return}if(f.key==="ArrowUp"){f.preventDefault(),o.setActiveIndex(K(o.optionNodes,o.activeIndex,-1));return}if(f.key==="Home"||f.key==="End"){f.preventDefault();const E=f.key==="Home"?1:-1,y=f.key==="Home"?-1:o.optionNodes.length;o.setActiveIndex(K(o.optionNodes,y,E,!1))}}});return i.jsxs("div",{...u,ref:m,id:o.triggerId,role:"combobox",tabIndex:c||o.loading?-1:0,"aria-disabled":c||o.loading||void 0,"aria-expanded":o.open,"aria-busy":o.loading||void 0,"aria-haspopup":"listbox","aria-controls":o.open?o.contentId:void 0,"aria-activedescendant":o.open&&o.optionNodes[o.activeIndex]?`${o.contentId}-option-${o.activeIndex}`:void 0,"data-size":r,"data-multiple":o.multiple||void 0,"data-loading":o.loading||void 0,className:L("uk-select__trigger",e),onPointerDown:re(d,I),onKeyDown:re(p,b),children:[o.multiple?i.jsxs("span",{className:"uk-select__tags",children:[i.jsx(w.AnimatePresence,{initial:!1,children:v.map(f=>{const j=f.label??f.value,E=typeof j=="string"?j:f.value;return i.jsxs(w.motion.span,{className:"uk-select__tag","data-slot":"select-tag",layout:!0,initial:h?{opacity:0}:{opacity:0,x:12},animate:h?{opacity:1}:{opacity:1,x:0},exit:h?{opacity:0}:{opacity:0,x:4},transition:h?{duration:0}:He,children:[i.jsx("span",{className:"uk-select__tag-label",children:j}),i.jsx("button",{type:"button",className:"uk-select__tag-remove",disabled:c,"aria-label":`移除 ${E}`,onPointerDown:y=>y.stopPropagation(),onKeyDown:y=>{y.key==="Backspace"&&y.stopPropagation()},onClick:y=>{y.stopPropagation(),o.removeValue(f.value)},children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:i.jsx("path",{d:"M5 5l6 6M11 5l-6 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]},f.value)})}),v.length===0?i.jsx("span",{className:"uk-select__placeholder",children:n}):null]}):i.jsx("span",{className:"uk-select__value",children:x?.label??o.values[0]??n}),i.jsxs("span",{className:"uk-select__actions",children:[s&&!c&&!o.loading&&o.values.length>0?i.jsx("button",{type:"button",className:"uk-select__clear","aria-label":"清空",onPointerDown:f=>f.stopPropagation(),onKeyDown:f=>{["Backspace"," "].includes(f.key)&&f.stopPropagation()},onClick:f=>{f.stopPropagation(),document.getElementById(o.triggerId)?.focus(),o.clearValues()},children:i.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[i.jsx("path",{d:"M18 6 6 18"}),i.jsx("path",{d:"m6 6 12 12"})]})}):null,i.jsx("span",{"aria-hidden":"true",className:L("uk-select__chevron",o.loading&&"uk-select__spinner"),children:o.loading?null:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",children:i.jsx("path",{d:"m4 6.2 4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),o.loading?i.jsx("span",{className:"uk-select__loading-status",role:"status","aria-live":"polite",children:l}):null]})});function Ye(t,e){const[n,r]=a.useState(null),s=a.useCallback(()=>{const l=e.current;if(!t||!l)return;const c=t.getBoundingClientRect(),d=l.getBoundingClientRect(),p=window.innerHeight-c.bottom-8,u=c.top-8,m=p>=Math.min(d.height,320)||p>=u?"bottom":"top",o=m==="bottom"?c.bottom+6:c.top-d.height-6,h=de(c.left,8,Math.max(8,window.innerWidth-c.width-8));r({x:h,y:o,side:m})},[e,t]);return a.useLayoutEffect(()=>{if(!t)return;s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0);const l=typeof ResizeObserver>"u"?null:new ResizeObserver(s);return l?.observe(t),l?.observe(e.current??t),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0),l?.disconnect()}},[e,t,s]),n}function Je({emptyText:t}){const e=Z("Select.Content"),n=e.triggerId,r=document.getElementById(n),s=a.useRef(null),l=w.useReducedMotion()??!1,c=w.useIsPresent(),d=Ye(r,s),p=a.useSyncExternalStore(qe,Ke,Fe),[u,m]=a.useState([]),[o,h]=a.useState(0),v=a.useRef(new Map),x=a.useRef(new Map),[k,g]=a.useState(e.open),[C,I]=a.useState(!1);if(k!==e.open&&(g(e.open),I(!1),e.open||(m([]),h(y=>y+1))),a.useEffect(()=>{!e.open||!d||!C||m(y=>{const _=e.optionNodes[e.activeIndex];if(!_)return y;const T=_.hasChildren?_.depth+1:_.depth,S=y.filter($=>$.level<=T);if(!_.hasChildren)return S.length===y.length?y:S;const N=v.current.get(_.index);if(!N)return S;const R=N.getBoundingClientRect(),D=224,M=R.right+D+14>window.innerWidth?R.left-D-6:R.right+6,B=de(R.top-6,8,window.innerHeight-8),V=S.find($=>$.level===T);return V?.parentIndex===_.index?V.left===M&&V.top===B?y:[...S.filter($=>$.level!==T),{...V,left:M,top:B}]:[...S.filter($=>$.level!==T),{session:o,level:T,parentIndex:_.index,left:M,top:B}]})},[e.activeIndex,e.open,e.optionNodes,o,d,C,m]),a.useEffect(()=>{if(!e.open)return;const y=S=>{const N=S.target;N instanceof Node&&(r?.contains(N)||s.current?.contains(N)||Array.from(x.current.values()).some(R=>R.contains(N))||(e.setOpen(!1),r?.focus()))};document.addEventListener("pointerdown",y,!0);const _=S=>{S.key==="Escape"&&(e.setOpen(!1),r?.focus())},T=()=>{e.setOpen(!1)};return document.addEventListener("keydown",_,!0),window.addEventListener("blur",T),()=>{document.removeEventListener("pointerdown",y,!0),document.removeEventListener("keydown",_,!0),window.removeEventListener("blur",T)}},[e,r]),!p)return null;const b=r?.closest("dialog")??document.body,f=a.useCallback((y,_)=>{_?v.current.set(y,_):v.current.delete(y)},[]),j=y=>{const _=y.option,T=e.values.includes(_.value),S=y.index===e.activeIndex;return i.jsxs("li",{ref:N=>f(y.index,N),id:`${e.contentId}-option-${y.index}`,role:"option","aria-disabled":_.disabled||void 0,"aria-selected":T,"data-disabled":_.disabled||void 0,"data-selected":T||pe(_,e.values)||void 0,"data-active":S||void 0,"data-has-children":y.hasChildren||void 0,"data-depth":y.depth,className:"uk-select__option",onPointerEnter:N=>{N.pointerType==="mouse"&&!_.disabled&&e.setActiveIndex(y.index)},onClick:N=>{if(N.stopPropagation(),y.hasChildren){e.setActiveIndex(Y(e.optionNodes,y.index));return}e.commit(y.index)},children:[i.jsx(w.AnimatePresence,{initial:!1,children:S?i.jsx(w.motion.span,{className:"uk-select__option-highlight","data-slot":"select-active-highlight",layoutId:`${e.contentId}-active-${y.depth}`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:l?{duration:0}:U}):null}),i.jsx("span",{className:"uk-select__option-label",children:_.label??_.value}),y.hasChildren?i.jsx("span",{"aria-hidden":"true",className:"uk-select__expand",children:i.jsx("svg",{viewBox:"0 0 16 16",fill:"none",children:i.jsx("path",{d:"m6 4 4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}):i.jsx("span",{"aria-hidden":"true",className:"uk-select__check"})]},_.value)},E=e.open?u:[];return G.createPortal(i.jsxs(w.LayoutGroup,{id:`select-${e.contentId}`,children:[i.jsx("div",{ref:s,className:"uk-select","data-side":d?.side??"bottom","data-state":c?"open":"closed","aria-hidden":c?void 0:!0,style:{left:d?`${d.x}px`:0,top:d?`${d.y}px`:0,"--uk-select-width":`${r?.offsetWidth??220}px`,visibility:d?"visible":"hidden"},children:i.jsx(w.motion.div,{className:"uk-select__surface",style:{transformOrigin:Ge(d?.side??"bottom")},initial:l?{opacity:0}:{opacity:0,scale:.97,y:-4},animate:l?{opacity:1}:{opacity:1,scale:1,y:0},exit:l?{opacity:0}:{opacity:0,scale:.97,y:-2},transition:l?H:ce,onAnimationComplete:()=>{e.open&&I(!0)},children:e.options.length===0?i.jsx("p",{className:"uk-select__empty",children:t}):i.jsx("ul",{id:e.contentId,className:"uk-select__list",role:"listbox","aria-labelledby":n,"aria-owns":E.map(y=>`${e.contentId}-submenu-${y.level}`).join(" ")||void 0,children:e.optionNodes.filter(y=>y.depth===0).map(j)})})}),E.map(y=>{const _=e.optionNodes.filter(T=>T.parentIndex===y.parentIndex);return i.jsx(w.motion.div,{ref:T=>{T?x.current.set(y.level,T):x.current.delete(y.level)},className:"uk-select__submenu","data-select-owner":e.contentId,"data-state":c?"open":"closed",layout:!0,initial:{opacity:0,x:-34,scaleX:.18,scaleY:.36},animate:{opacity:1,x:0,scaleX:1,scaleY:1},exit:{opacity:0,x:-16,scaleX:.28,scaleY:.42},style:{left:y.left,top:y.top,transformOrigin:"left center"},transition:l?H:Ve,children:i.jsx("ul",{id:`${e.contentId}-submenu-${y.level}`,className:"uk-select__list",role:"listbox","aria-labelledby":n,children:_.map(j)})},`${y.session}-${y.level}`)})]}),b)}const Qe=a.forwardRef(function({options:e,multiple:n,value:r,defaultValue:s,onValueChange:l,placeholder:c,size:d="md",clear:p,disabled:u,invalid:m,emptyText:o="暂无可选项",loading:h=!1,loadingText:v="加载中...",className:x,...k},g){return i.jsxs(Xe,{options:e,loading:h,multiple:n,value:r,defaultValue:s,onValueChange:l,children:[i.jsx(We,{...k,ref:g,placeholder:c,size:d,clear:p,loadingText:v,disabled:u,"aria-invalid":m||void 0,"data-size":d,className:x}),i.jsx(Ze,{emptyText:o})]})});function Ze({emptyText:t}){const e=Z("Select.Content");return i.jsx(w.AnimatePresence,{children:e.open?i.jsx(Je,{emptyText:t},"select-layer"):null})}const et=a.forwardRef(function({inputSize:e="md",invalid:n=!1,className:r,"aria-invalid":s,...l},c){return i.jsx("input",{...l,ref:c,className:L("uk-input",r),"data-size":e,"aria-invalid":n?!0:s})}),tt=a.forwardRef(function({checked:e,defaultChecked:n,onCheckedChange:r,disabled:s,className:l,children:c,id:d,...p},u){const m=a.useId(),o=d??m,h=w.useReducedMotion()??!1,v=a.useRef(!1),x=a.useRef(null),[k,g]=P.useControllableState({value:e,defaultValue:n??!1,onChange:r}),C=w.useMotionValue(k?16:0);a.useEffect(()=>{if(x.current)return;const b=w.animate(C,k?16:0,h?{duration:0}:ne);return()=>b.stop()},[k,h,C]);const I=b=>{const f=x.current;if(!(!f||f.pointerId!==b.pointerId)){if(f.moved){const j=f.samples[0],E=f.samples[f.samples.length-1],y=j&&E?Math.max(E.time-j.time,1):1,_=j&&E?(E.x-j.x)/y*1e3:0,T=Math.abs(_)>220?_>0:C.get()>=8;v.current=!0,x.current=null,g(T),w.animate(C,T?16:0,h?{duration:0}:{...ne,velocity:_}),window.setTimeout(()=>{v.current=!1},0)}else x.current=null;b.currentTarget.hasPointerCapture(b.pointerId)&&typeof b.currentTarget.releasePointerCapture=="function"&&b.currentTarget.releasePointerCapture(b.pointerId)}};return i.jsxs("label",{className:L("uk-switch",l),"data-disabled":s?"true":void 0,htmlFor:o,onClickCapture:b=>{v.current&&(b.preventDefault(),b.stopPropagation())},children:[i.jsx("input",{...p,ref:u,id:o,type:"checkbox",role:"switch",className:"uk-switch__input",checked:k,disabled:s,"aria-checked":k,onChange:b=>g(b.target.checked)}),i.jsx("span",{className:"uk-switch__track","aria-hidden":"true",onPointerDown:b=>{s||(x.current={pointerId:b.pointerId,startX:b.clientX,startValue:C.get(),moved:!1,samples:[{x:b.clientX,time:performance.now()}]},typeof b.currentTarget.setPointerCapture=="function"&&b.currentTarget.setPointerCapture(b.pointerId))},onPointerMove:b=>{const f=x.current;if(!f||f.pointerId!==b.pointerId)return;const j=b.clientX-f.startX;Math.abs(j)>4&&(f.moved=!0),f.moved&&(b.preventDefault(),C.set(Math.max(0,Math.min(16,f.startValue+j))),f.samples.push({x:b.clientX,time:performance.now()}),f.samples=f.samples.filter(E=>performance.now()-E.time<120))},onPointerUp:I,onPointerCancel:I,children:i.jsx(w.motion.span,{className:"uk-switch__thumb",style:{x:C}})}),c?i.jsx("span",{className:"uk-switch__label",children:c}):null]})}),he=a.createContext(null);function me(t){const e=a.useContext(he);if(!e)throw new Error(`<${t}> must be rendered inside <Sidebar>`);return e}function X(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function nt({children:t,className:e,hoverPreview:n=!0,hoverIndicator:r="rail",groupGap:s,style:l,...c}){const[d,p]=a.useState(null),u=a.useId().replace(/:/g,""),m=a.useMemo(()=>({hoveredId:d,setHoveredId:p,indicatorBaseId:u,hoverPreview:n,hoverIndicator:r}),[d,u,n,r]),o=typeof s=="number"?`${s}px`:s,h={...l,...o===void 0?{}:{"--uk-sidebar-group-gap":o}};return i.jsx(he.Provider,{value:m,children:i.jsx(w.LayoutGroup,{id:`sidebar-${u}`,children:i.jsx("nav",{...c,className:L("uk-sidebar",e),style:h,children:t})})})}function ot({title:t,icon:e,collapsible:n=!1,open:r,defaultOpen:s=!0,onOpenChange:l,children:c,className:d,...p}){const u=a.useId(),m=a.useId(),o=a.useId(),h=a.useRef(null),v=a.useRef(null),x=me("Sidebar.Group"),k=e!=null,g=w.useReducedMotion()??!1,[C,I]=P.useControllableState({value:r,defaultValue:s,onChange:l}),b=n?C:!0,f=x.hoveredId===o;a.useEffect(()=>{!n||b||v.current?.contains(document.activeElement)&&h.current?.focus()},[n,b]);const j=i.jsxs(i.Fragment,{children:[k?i.jsx("span",{className:"uk-sidebar__group-icon","aria-hidden":"true",children:e}):null,i.jsx("span",{className:"uk-sidebar__group-label",children:t}),n?i.jsx("span",{className:"uk-sidebar__chevron","aria-hidden":"true",children:i.jsx("svg",{viewBox:"0 0 16 16",width:"12",height:"12",fill:"none",children:i.jsx("path",{d:"m6 3.8 4.2 4.2L6 12.2",stroke:"currentColor",strokeWidth:"1.35",strokeLinecap:"round",strokeLinejoin:"round"})})}):null]});return i.jsxs("section",{...p,className:L("uk-sidebar__group",d),"aria-labelledby":p["aria-labelledby"]??u,"data-collapsible":n?"true":"false","data-has-icon":k?"true":"false","data-state":b?"open":"closed",children:[n?i.jsxs("button",{ref:h,type:"button",className:"uk-sidebar__group-title uk-sidebar__group-trigger",id:u,"aria-controls":m,"aria-expanded":b,"data-preview":x.hoverIndicator==="background"&&f?"true":void 0,onClick:()=>I(E=>!E),onPointerEnter:E=>{x.hoverPreview&&x.hoverIndicator==="background"&&E.pointerType==="mouse"&&x.setHoveredId(o)},onPointerLeave:()=>{x.hoveredId===o&&x.setHoveredId(null)},onPointerCancel:()=>{x.hoveredId===o&&x.setHoveredId(null)},children:[i.jsx(w.AnimatePresence,{initial:!1,children:x.hoverPreview&&x.hoverIndicator==="background"&&f?i.jsx(w.motion.span,{className:"uk-sidebar__group-surface","data-kind":"hover","data-slot":"sidebar-hover-highlight",layoutId:`${x.indicatorBaseId}-hover`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:g?{duration:0}:U}):null}),j]}):i.jsx("div",{className:"uk-sidebar__group-title",id:u,children:j}),i.jsx(w.motion.div,{ref:v,className:"uk-sidebar__content",id:m,"data-state":b?"open":"closed",initial:!1,animate:{height:b?"auto":0,opacity:b?1:0},transition:g?{duration:0}:ce,inert:n&&!b,"aria-hidden":n&&!b?!0:void 0,children:i.jsx("ul",{className:"uk-sidebar__list",children:c})})]})}function rt({active:t=!1,children:e,className:n}){const r=me("Sidebar.Item"),s=a.useId(),c=w.useReducedMotion()??!1?{duration:0}:U;if(!a.isValidElement(e))throw new Error("<Sidebar.Item> expects a single valid React element");const d=e,p=d.props,u=p.className,m=typeof u=="function"?g=>L("uk-sidebar__link",u(g),n):L("uk-sidebar__link",u,n),o=p.onPointerEnter,h=p.onPointerLeave,v=p.onPointerCancel,x=r.hoveredId===s,k=i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"uk-sidebar__rail","aria-hidden":"true"}),i.jsx(w.AnimatePresence,{initial:!1,children:r.hoverPreview&&r.hoverIndicator==="rail"&&x?i.jsx(w.motion.span,{className:"uk-sidebar__rail-indicator","data-kind":"hover","data-slot":"sidebar-hover-rail-indicator",layoutId:`${r.indicatorBaseId}-hover-rail`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:c}):null}),i.jsx(w.AnimatePresence,{initial:!1,children:r.hoverIndicator==="rail"&&t?i.jsx(w.motion.span,{className:"uk-sidebar__rail-indicator","data-kind":"active","data-slot":"sidebar-active-rail-indicator",layoutId:`${r.indicatorBaseId}-active-rail`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:c}):null}),i.jsx(w.AnimatePresence,{initial:!1,children:r.hoverPreview&&r.hoverIndicator==="background"&&x?i.jsx(w.motion.span,{className:"uk-sidebar__surface","data-kind":"hover","data-slot":"sidebar-hover-highlight",layoutId:`${r.indicatorBaseId}-hover`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:c}):null}),i.jsx(w.AnimatePresence,{initial:!1,children:r.hoverIndicator==="background"&&t?i.jsx(w.motion.span,{className:"uk-sidebar__surface","data-kind":"active","data-slot":"sidebar-active-highlight",layoutId:`${r.indicatorBaseId}-active`,"aria-hidden":"true",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:c}):null}),i.jsx("span",{className:"uk-sidebar__label",children:p.children})]});return i.jsx("li",{className:"uk-sidebar__item",children:a.cloneElement(d,{className:m,"data-active":t?"true":"false","data-preview":t||x?"true":"false","aria-current":p["aria-current"]??(t?"page":void 0),onPointerEnter:X(o,g=>{r.hoverPreview&&g.pointerType==="mouse"&&r.setHoveredId(s)}),onPointerLeave:X(h,()=>{r.hoveredId===s&&r.setHoveredId(null)}),onPointerCancel:X(v,()=>{r.hoveredId===s&&r.setHoveredId(null)})},k)})}const it=Object.assign(nt,{Group:ot,Item:rt}),xe=a.createContext(null);function ee(t){const e=a.useContext(xe);if(!e)throw new Error(`<${t}> must be rendered inside <Tabs>`);return e}function be(t,e){return`${t}-tab-${encodeURIComponent(e)}`}function ge(t,e){return`${t}-panel-${encodeURIComponent(e)}`}function st({value:t,defaultValue:e,onValueChange:n,orientation:r="horizontal",className:s,children:l}){const c=a.useId(),[d,p]=P.useControllableState({value:t,defaultValue:e??"",onChange:n}),u=a.useMemo(()=>({baseId:c,value:d,setValue:p,orientation:r,indicatorId:`${c}-indicator`}),[c,d,r,p]);return i.jsx(xe.Provider,{value:u,children:i.jsx("div",{className:L("uk-tabs",s),"data-orientation":r,children:l})})}const at=a.forwardRef(function({className:e,onKeyDown:n,...r},s){const{orientation:l}=ee("Tabs.List");return i.jsx("div",{...r,ref:s,role:"tablist","aria-orientation":l,tabIndex:-1,className:L("uk-tabs__list",e),onKeyDown:c=>{if(n?.(c),c.defaultPrevented)return;const p=c.target?.closest('[role="tab"]');if(!p||p.hasAttribute("disabled"))return;const u=Array.from(c.currentTarget.querySelectorAll('[role="tab"]:not([disabled])')),m=u.indexOf(p);if(m===-1)return;const o=l==="horizontal"?"ArrowRight":"ArrowDown",h=l==="horizontal"?"ArrowLeft":"ArrowUp";let v=-1;switch(c.key){case o:v=(m+1)%u.length;break;case h:v=(m-1+u.length)%u.length;break;case"Home":v=0;break;case"End":v=u.length-1;break;default:return}c.preventDefault();const x=u[v];x&&(x.focus(),x.click())}})}),ct=a.forwardRef(function({value:e,type:n="button",className:r,onClick:s,children:l,...c},d){const p=ee("Tabs.Trigger"),u=p.value===e,m=w.useReducedMotion()??!1;return i.jsxs("button",{...c,ref:d,type:n,role:"tab",id:be(p.baseId,e),"aria-selected":u,"aria-controls":ge(p.baseId,e),tabIndex:u?0:-1,"data-state":u?"active":"inactive",className:L("uk-tabs__trigger",r),onClick:o=>{s?.(o),o.defaultPrevented||p.setValue(e)},children:[l,u?i.jsx(w.motion.span,{className:"uk-tabs__indicator",layoutId:p.indicatorId,"aria-hidden":"true",transition:m?{duration:0}:U}):null]})}),lt=a.forwardRef(function({value:e,className:n,...r},s){const l=ee("Tabs.Content"),c=l.value===e;return i.jsx("div",{...r,ref:s,role:"tabpanel",id:ge(l.baseId,e),"aria-labelledby":be(l.baseId,e),hidden:!c,tabIndex:0,"data-state":c?"active":"inactive",className:L("uk-tabs__panel",n)})}),ut=Object.assign(st,{List:at,Trigger:ct,Content:lt}),ve=a.createContext(null),dt=()=>()=>{},ft=()=>!0,pt=()=>!1;function q(t){const e=a.useContext(ve);if(!e)throw new Error(`<${t}> must be rendered inside <Dialog.Root>`);return e}function ye(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function ke({children:t,open:e,defaultOpen:n,onOpenChange:r}){const s=a.useId(),[l,c]=a.useState(!1),[d,p]=a.useState(!1),[u,m]=P.useControllableState({value:e,defaultValue:n??!1,onChange:r}),o=a.useMemo(()=>({open:u,setOpen:m,triggerId:`${s}-trigger`,contentId:`${s}-content`,titleId:`${s}-title`,descriptionId:`${s}-description`,hasTitle:l,setHasTitle:c,hasDescription:d,setHasDescription:p}),[s,u,d,l,m]);return i.jsx(ve.Provider,{value:o,children:t})}function ht({children:t}){const e=q("Dialog.Trigger"),n=t,r=n.props.onClick;return a.cloneElement(n,{id:e.triggerId,"aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.open?e.contentId:void 0,onClick:ye(r,()=>{e.setOpen(!e.open)})})}function Ie({children:t,label:e="Close"}){const n=q("Dialog.Close");if(a.isValidElement(t)){const r=t,s=r.props.onClick;return a.cloneElement(r,{onClick:ye(s,()=>{n.setOpen(!1)})})}return i.jsx(Q,{variant:"ghost",onClick:()=>n.setOpen(!1),children:e})}const we=a.forwardRef(function({className:e,...n},r){return i.jsx("header",{...n,ref:r,className:L("uk-dialog__header",e)})}),Ce=a.forwardRef(function({className:e,children:n,...r},s){const l=q("Dialog.Title"),c=l.setHasTitle;return a.useEffect(()=>(c(!0),()=>c(!1)),[c]),i.jsx("h2",{...r,ref:s,id:l.titleId,className:L("uk-dialog__title",e),children:n})}),_e=a.forwardRef(function({className:e,...n},r){const s=q("Dialog.Description"),l=s.setHasDescription;return a.useEffect(()=>(l(!0),()=>l(!1)),[l]),i.jsx("p",{...n,ref:r,id:s.descriptionId,className:L("uk-dialog__description",e)})}),je=a.forwardRef(function({className:e,...n},r){return i.jsx("div",{...n,ref:r,className:L("uk-dialog__body",e)})}),Te=a.forwardRef(function({className:e,...n},r){return i.jsx("footer",{...n,ref:r,className:L("uk-dialog__footer",e)})});function mt({requestClose:t,contentId:e,titleId:n,descriptionId:r,hasTitle:s,hasDescription:l,children:c,closeOnBackdropClick:d=!0,closeOnEscape:p=!0,initialFocusRef:u,returnFocusRef:m,className:o,"aria-label":h,"aria-labelledby":v,"aria-describedby":x}){const k=a.useRef(null),g=a.useRef(null),C=w.useIsPresent(),I=w.useReducedMotion()??!1;return P.useLockBodyScroll(!0),a.useLayoutEffect(()=>{const b=k.current;b&&(g.current??(g.current=document.activeElement instanceof HTMLElement?document.activeElement:null),!b.open&&(typeof b.showModal=="function"?b.showModal():b.setAttribute("open","")))},[]),P.useFocusTrap({active:!0,containerRef:k,initialFocusRef:u,returnFocusRef:m??g}),a.useEffect(()=>{const b=k.current;if(!b)return;const f=()=>{b.open||(typeof b.showModal=="function"?b.showModal():b.setAttribute("open",""))},j=()=>{if(!p){f();return}t()},E=T=>{T.preventDefault(),p&&t()},y=T=>{p||T.key!=="Escape"||T.defaultPrevented||(T.preventDefault(),T.stopPropagation())},_=T=>{d&&T.target===b&&t()};return b.addEventListener("close",j),b.addEventListener("cancel",E),b.addEventListener("keydown",y,!0),b.addEventListener("click",_),()=>{b.removeEventListener("close",j),b.removeEventListener("cancel",E),b.removeEventListener("keydown",y,!0),b.removeEventListener("click",_)}},[d,p,t]),i.jsx("dialog",{ref:k,id:e,className:L("uk-dialog",o),closedby:p||d?"any":"none","data-state":C?"open":"closed",inert:!C,"aria-label":h,"aria-labelledby":v??(h?void 0:s?n:void 0),"aria-describedby":x??(l?r:void 0),children:i.jsx(w.motion.div,{className:"uk-dialog__panel",initial:I?{opacity:0}:{opacity:0,transform:"translateY(12px) scale(0.96)"},animate:{opacity:1,transform:"translateY(0px) scale(1)",transition:I?H:{...oe,delay:.06}},exit:I?{opacity:0,transition:H}:{opacity:0,transform:"translateY(8px) scale(0.97)",transition:oe},children:c})})}function Ee({children:t,closeOnBackdropClick:e=!0,closeOnEscape:n=!0,initialFocusRef:r,returnFocusRef:s,className:l,"aria-label":c,"aria-labelledby":d,"aria-describedby":p}){const u=q("Dialog.Content"),m=P.useEventCallback(()=>{u.setOpen(!1)});return a.useSyncExternalStore(dt,ft,pt)?G.createPortal(i.jsx(w.MotionConfig,{reducedMotion:"user",children:i.jsx(w.AnimatePresence,{children:u.open?i.jsx(mt,{requestClose:m,contentId:u.contentId,titleId:u.titleId,descriptionId:u.descriptionId,hasTitle:u.hasTitle,hasDescription:u.hasDescription,closeOnBackdropClick:e,closeOnEscape:n,initialFocusRef:r,returnFocusRef:s,className:l,"aria-label":c,"aria-labelledby":d,"aria-describedby":p,children:t},"uk-dialog"):null})}),document.body):null}function xt({open:t,onOpenChange:e,title:n,description:r,footer:s,children:l,closeLabel:c="Close",showCloseButton:d=!0,closeOnBackdropClick:p=!0,closeOnEscape:u=!0,initialFocusRef:m,returnFocusRef:o,className:h,"aria-label":v}){return i.jsx(ke,{open:t,onOpenChange:e,children:i.jsxs(Ee,{className:h,closeOnBackdropClick:p,closeOnEscape:u,initialFocusRef:m,returnFocusRef:o,"aria-label":v,children:[n||r||d?i.jsxs(we,{children:[i.jsxs("div",{className:"uk-dialog__heading",children:[n?i.jsx(Ce,{children:n}):null,r?i.jsx(_e,{children:r}):null]}),d?i.jsx(Ie,{children:i.jsx(Q,{variant:"ghost",size:"sm",iconOnly:!0,"aria-label":c,className:"uk-dialog__close",children:i.jsx("svg",{viewBox:"0 0 20 20",width:"16",height:"16","aria-hidden":"true",children:i.jsx("path",{d:"M5 5l10 10M15 5L5 15",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})})})}):null]}):null,i.jsx(je,{children:l}),s?i.jsx(Te,{children:s}):null]})})}const bt=Object.assign(xt,{Root:ke,Trigger:ht,Content:Ee,Header:we,Title:Ce,Description:_e,Body:je,Footer:Te,Close:Ie});function gt(t,e){if(!(e instanceof Element))return!1;const n=e.closest('a, button, input, select, textarea, label, [contenteditable="true"], [role="button"]');return n!==null&&n!==t}const vt=a.forwardRef(function({children:e,className:n,direction:r="left",speed:s=30,pauseOnHover:l=!0,gap:c="1rem",fade:d=!0,paused:p=!1,items:u,onItemClick:m,...o},h){const v=u?u.map(g=>({key:g.key,content:g.content,data:g.data})):a.Children.toArray(e).map((g,C)=>({key:a.isValidElement(g)?g.key??null:null,content:g,data:void 0})),x=(g,C,I)=>{!m||I.defaultPrevented||gt(I.currentTarget,I.target)||m({index:C,key:g.key,data:g.data},I)},k=(g,C,I)=>{!m||I.defaultPrevented||(I.key==="Enter"||I.key===" ")&&(I.preventDefault(),m({index:C,key:g.key,data:g.data},I))};return i.jsx("div",{...o,ref:h,className:L("uk-marquee",n),"data-direction":r,"data-fade":d?"true":void 0,"data-pause-on-hover":l?"true":void 0,"data-paused":p?"true":"false",style:{...o.style,"--uk-marquee-gap":c,"--uk-marquee-duration":`${s}s`,gap:c},children:[!1,!0].map(g=>i.jsx("div",{"aria-hidden":g,className:"uk-marquee__track","data-duplicate":g?"true":void 0,inert:g&&!m,role:g?"presentation":void 0,onFocusCapture:g?C=>{C.target instanceof HTMLElement&&C.target.blur()}:void 0,children:v.map((C,I)=>i.jsx("div",{className:"uk-marquee__item","data-clickable":m?"true":void 0,...m?{role:g?void 0:"button",tabIndex:g?-1:0,onClick:b=>x(C,I,b),onKeyDown:g?void 0:b=>k(C,I,b)}:{},children:C.content},g?`duplicate-${I}`:C.key??I))},g?"duplicate":"primary"))})}),Ne=a.createContext(null),Se=()=>()=>{},Re=()=>!0,Pe=()=>!1;function Le(t){const e=a.useContext(Ne);if(!e)throw new Error(`<${t}> must be rendered inside <Tooltip.Root>`);return e}function De(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function Me(t,e){const n=typeof t=="string"?t.split(/\s+/).filter(Boolean):[];return Array.from(new Set([...n,e])).join(" ")}function A(t,e){return n=>{t?.(n),n.defaultPrevented||e(n)}}function yt({children:t,open:e,defaultOpen:n,onOpenChange:r,delayDuration:s=300,closeDelay:l=80}){const c=a.useId(),[d,p]=a.useState(null),u=a.useRef(null),m=a.useRef(null),[o,h]=P.useControllableState({value:e,defaultValue:n??!1,onChange:r}),v=a.useCallback(()=>{u.current!==null&&(clearTimeout(u.current),u.current=null)},[]),x=a.useCallback(()=>{m.current!==null&&(clearTimeout(m.current),m.current=null)},[]),k=P.useEventCallback((b=!1)=>{if(v(),x(),!o){if(b||s<=0){h(!0);return}u.current=setTimeout(()=>{u.current=null,h(!0)},s)}}),g=P.useEventCallback(()=>{if(v(),x(),!!o){if(l<=0){h(!1);return}m.current=setTimeout(()=>{m.current=null,h(!1)},l)}}),C=P.useEventCallback(()=>{v(),x(),h(!1)});a.useEffect(()=>{o?x():v()},[x,v,o]),a.useEffect(()=>()=>{v(),x()},[x,v]);const I=a.useMemo(()=>({open:o,triggerElement:d,setTriggerElement:p,contentId:c,requestOpen:k,requestClose:g,dismiss:C}),[c,o,C,g,k,d]);return i.jsx(Ne.Provider,{value:I,children:t})}function kt({children:t}){const e=Le("Tooltip.Trigger"),{setTriggerElement:n}=e;if(!a.isValidElement(t))throw new Error("<Tooltip.Trigger> expects a single valid React element");const r=t,s=r.props,l=s.ref??r.ref,c=s.onPointerEnter,d=s.onPointerLeave,p=s.onFocus,u=s.onBlur,m=s.onKeyDown,o=a.useCallback(h=>{De(l,h),n(h)},[l,n]);return a.cloneElement(r,{ref:o,"aria-describedby":e.open?Me(s["aria-describedby"],e.contentId):s["aria-describedby"],onPointerEnter:A(c,h=>{e.requestOpen(h.pointerType==="touch")}),onPointerLeave:A(d,h=>{h.pointerType!=="touch"&&e.requestClose()}),onFocus:A(p,()=>{e.requestOpen()}),onBlur:A(u,()=>{e.requestClose()}),onKeyDown:A(m,h=>{h.key==="Escape"&&e.open&&(h.preventDefault(),h.stopPropagation(),e.dismiss())})})}function F(t,e,n){return n<e?e:Math.min(Math.max(t,e),n)}function It(t){switch(t){case"top":return"bottom";case"right":return"left";case"bottom":return"top";case"left":return"right"}}function J(t,e,n,r,s){switch(e){case"top":return t.top-s;case"right":return n-t.right-s;case"bottom":return r-t.bottom-s;case"left":return t.left-s}}function se(t,e,n,r,s,l,c){return J(t,n,s,l,c)>=(n==="top"||n==="bottom"?e.height:e.width)+r}function wt({trigger:t,tooltip:e,side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:c,viewportWidth:d,viewportHeight:p}){let u=n;if(c&&!se(t,e,n,s,d,p,l)){const g=It(n),C=se(t,e,g,s,d,p,l),I=J(t,n,d,p,l),b=J(t,g,d,p,l);(C||b>I)&&(u=g)}const m=t.left+t.width/2,o=t.top+t.height/2;let h=0,v=0;switch(u){case"top":case"bottom":h=r==="start"?t.left:r==="end"?t.right-e.width:m-e.width/2,v=u==="top"?t.top-e.height-s:t.bottom+s;break;case"left":case"right":h=u==="left"?t.left-e.width-s:t.right+s,v=r==="start"?t.top:r==="end"?t.bottom-e.height:o-e.height/2;break}c&&(h=F(h,l,d-e.width-l),v=F(v,l,p-e.height-l));const x=10,k=u==="top"||u==="bottom"?F(m-h,x,Math.max(x,e.width-x)):F(o-v,x,Math.max(x,e.height-x));return{x:h,y:v,side:u,arrowOffset:k}}function Oe(t,e,{side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:c}){const[d,p]=a.useState(null);return a.useLayoutEffect(()=>{const u=e.current;if(!u||!t)return;const m=()=>{const h=t.getBoundingClientRect(),v=u.getBoundingClientRect();p(wt({trigger:h,tooltip:v,side:n,align:r,sideOffset:s,collisionPadding:l,avoidCollisions:c,viewportWidth:window.innerWidth||document.documentElement.clientWidth,viewportHeight:window.innerHeight||document.documentElement.clientHeight}))};m(),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0);const o=typeof ResizeObserver>"u"?null:new ResizeObserver(m);return o?.observe(t),o?.observe(u),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0),o?.disconnect()}},[r,c,l,e,n,s,t]),d}function $e(t,e,n){a.useEffect(()=>{const r=c=>{const d=c.target;d instanceof Node&&(t.contains(d)||e.current?.contains(d)||n())},s=()=>{document.visibilityState==="hidden"&&n()},l=c=>{const d=c.target;c.key!=="Escape"||d instanceof Node&&t.contains(d)||n()};return document.addEventListener("pointerdown",r,!0),document.addEventListener("visibilitychange",s),document.addEventListener("keydown",l,!0),window.addEventListener("blur",n),()=>{document.removeEventListener("pointerdown",r,!0),document.removeEventListener("visibilitychange",s),document.removeEventListener("keydown",l,!0),window.removeEventListener("blur",n)}},[n,e,t])}function Ae(t){switch(t){case"top":return"center bottom";case"bottom":return"center top";case"left":return"right center";case"right":return"left center";default:return"center"}}function Ct({contentId:t,triggerElement:e,dismiss:n,children:r,className:s,style:l,side:c="top",align:d="center",sideOffset:p=8,collisionPadding:u=8,avoidCollisions:m=!0,...o}){const h=a.useRef(null),v=w.useReducedMotion()??!1,x=w.useIsPresent(),k=Oe(e,h,{side:c,align:d,sideOffset:p,collisionPadding:u,avoidCollisions:m});$e(e,h,n);const g=Ae(k?.side??c),C={...l,left:k?`${k.x}px`:0,top:k?`${k.y}px`:0,visibility:k?"visible":"hidden"};return i.jsx("div",{...o,ref:h,id:t,role:"tooltip","data-side":k?.side??c,"data-align":d,"data-state":x?"open":"closed","aria-hidden":x?void 0:!0,className:L("uk-tooltip",s),style:C,children:i.jsxs(w.motion.div,{className:"uk-tooltip__surface",style:{transformOrigin:g},initial:v?{opacity:0}:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:v?{opacity:0}:{opacity:0,scale:.96},transition:v?H:le,children:[i.jsx("span",{className:"uk-tooltip__arrow","aria-hidden":"true",style:{"--uk-tooltip-arrow-offset":`${k?.arrowOffset??0}px`}}),r]})})}function _t(t){const e=Le("Tooltip.Content"),r=a.useSyncExternalStore(Se,Re,Pe)&&e.triggerElement?e.triggerElement.closest("dialog")??document.body:null;return!r||!e.triggerElement?null:G.createPortal(i.jsx(w.MotionConfig,{reducedMotion:"user",children:i.jsx(w.AnimatePresence,{children:e.open?i.jsx(Ct,{contentId:e.contentId,triggerElement:e.triggerElement,dismiss:e.dismiss,...t},"uk-tooltip"):null})}),r)}const Be=a.createContext(null);function jt(t){const e=a.useContext(Be);if(!e)throw new Error(`<${t}> must be rendered inside <Tooltip.Group>`);return e}function Tt({activeValue:t,content:e,contentClassName:n,contentId:r,dismiss:s,triggerElement:l,side:c,align:d,sideOffset:p,collisionPadding:u,avoidCollisions:m}){const o=a.useRef(null),h=w.useReducedMotion()??!1,v=w.useIsPresent(),x=Oe(l,o,{side:c,align:d,sideOffset:p,collisionPadding:u,avoidCollisions:m});$e(l,o,s);const k={left:x?`${x.x}px`:0,top:x?`${x.y}px`:0,transformOrigin:Ae(x?.side??c),visibility:x?"visible":"hidden"};return i.jsxs(w.motion.div,{ref:o,id:r,role:"tooltip",layout:!h,layoutDependency:t,"data-side":x?.side??c,"data-align":d,"data-state":v?"open":"closed","aria-hidden":v?void 0:!0,className:L("uk-tooltip","uk-tooltip__surface","uk-tooltip--group",n),style:k,initial:h?{opacity:0}:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:h?{opacity:0}:{opacity:0,scale:.96},transition:h?{...H,layout:{duration:0}}:ze,children:[i.jsx("span",{className:"uk-tooltip__arrow","aria-hidden":"true",style:{"--uk-tooltip-arrow-offset":`${x?.arrowOffset??0}px`}}),i.jsx(w.motion.div,{className:"uk-tooltip__content",initial:{opacity:0},animate:{opacity:1},transition:h?H:le,children:e},t)]})}function Et({children:t,side:e="top",align:n="center",sideOffset:r=8,collisionPadding:s=8,avoidCollisions:l=!0,delayDuration:c=180,closeDelay:d=80,contentClassName:p}){const u=a.useId(),[m,o]=a.useState(()=>new Map),[h,v]=a.useState(!1),[x,k]=a.useState(null),g=a.useRef(null),C=a.useRef(null),I=a.useSyncExternalStore(Se,Re,Pe),b=a.useCallback(()=>{g.current!==null&&(clearTimeout(g.current),g.current=null)},[]),f=a.useCallback(()=>{C.current!==null&&(clearTimeout(C.current),C.current=null)},[]),j=P.useEventCallback((O,M=!1)=>{if(b(),f(),k(O),!h){if(M||c<=0){v(!0);return}g.current=setTimeout(()=>{g.current=null,v(!0)},c)}}),E=P.useEventCallback(()=>{if(b(),f(),!!h){if(d<=0){v(!1);return}C.current=setTimeout(()=>{C.current=null,v(!1)},d)}}),y=P.useEventCallback(()=>{b(),f(),v(!1)}),_=P.useEventCallback((O,M,B)=>{o(V=>{const $=V.get(O);if($?.triggerElement===M&&Object.is($.content,B))return V;const te=new Map(V);return te.set(O,{triggerElement:M,content:B}),te})}),T=P.useEventCallback(O=>{o(M=>{if(!M.has(O))return M;const B=new Map(M);return B.delete(O),B})});a.useEffect(()=>()=>{b(),f()},[f,b]);const S=a.useMemo(()=>({open:h,activeValue:x,contentId:u,activate:j,requestClose:E,dismiss:y,register:_,unregister:T}),[j,x,u,y,h,_,E,T]),N=x?m.get(x):void 0,R=h&&!!N,D=I&&N?N.triggerElement.closest("dialog")??document.body:null;return i.jsxs(Be.Provider,{value:S,children:[t,D&&N?G.createPortal(i.jsx(w.MotionConfig,{reducedMotion:"user",children:i.jsx(w.AnimatePresence,{children:R?i.jsx(Tt,{activeValue:x??"",content:N.content,contentClassName:p,contentId:u,dismiss:y,triggerElement:N.triggerElement,side:e,align:n,sideOffset:r,collisionPadding:s,avoidCollisions:l},"uk-tooltip-group"):null})}),D):null]})}function Nt({value:t,content:e,children:n}){const r=jt("Tooltip.Item"),{register:s,unregister:l}=r,[c,d]=a.useState(null);if(!a.isValidElement(n))throw new Error("<Tooltip.Item> expects a single valid React element");const p=n,u=p.props,m=u.ref??p.ref,o=u.onPointerEnter,h=u.onPointerLeave,v=u.onFocus,x=u.onBlur,k=u.onKeyDown,g=r.open&&r.activeValue===t,C=a.useCallback(I=>{De(m,I),d(I)},[m,d]);return a.useLayoutEffect(()=>{if(c)return s(t,c,e),()=>l(t)},[e,s,c,l,t]),a.cloneElement(p,{ref:C,"aria-describedby":g?Me(u["aria-describedby"],r.contentId):u["aria-describedby"],onPointerEnter:A(o,I=>{r.activate(t,I.pointerType==="touch")}),onPointerLeave:A(h,I=>{I.pointerType!=="touch"&&r.requestClose()}),onFocus:A(v,()=>{r.activate(t)}),onBlur:A(x,()=>{r.requestClose()}),onKeyDown:A(k,I=>{I.key==="Escape"&&g&&(I.preventDefault(),I.stopPropagation(),r.dismiss())})})}const St={Root:yt,Trigger:kt,Content:_t,Group:Et,Item:Nt};exports.Button=Q;exports.CheckBox=ae;exports.Dialog=bt;exports.Input=et;exports.Marquee=vt;exports.Select=Qe;exports.Sidebar=it;exports.Switch=tt;exports.Tabs=ut;exports.Tooltip=St;
2
2
  //# sourceMappingURL=index.cjs.map