wimui 0.62.2 → 0.63.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.
@@ -1,72 +1,75 @@
1
1
  "use client";
2
2
  import { mergeRefs as e } from "../../_internal/mergeRefs.js";
3
- import t from "./affix.module.js";
4
- import n, { useCallback as r, useEffect as i, useRef as a, useState as o } from "react";
5
- import s from "classnames";
6
- import { jsx as c } from "react/jsx-runtime";
3
+ import { observeMove as t } from "../../_internal/observeMove.js";
4
+ import n from "./affix.module.js";
5
+ import r, { useCallback as i, useEffect as a, useRef as o, useState as s } from "react";
6
+ import c from "classnames";
7
+ import { jsx as l } from "react/jsx-runtime";
7
8
  //#region src/components/navigation/Affix/Affix.tsx
8
- var l = n.forwardRef(function({ offsetTop: n, offsetBottom: l, onChange: u, target: d = () => window, children: f, className: p, style: m }, h) {
9
- let [g, _] = o({ isAffixed: !1 }), v = a(null), y = a(null), b = a(null), x = a(!1), S = r(() => {
10
- if (!v.current) return;
11
- let e = d();
9
+ var u = r.forwardRef(function({ offsetTop: r, offsetBottom: u, onChange: d, target: f = () => window, children: p, className: m, style: h }, g) {
10
+ let [_, v] = s({ isAffixed: !1 }), y = o(null), b = o(null), x = o(null), S = o(!1), C = i(() => {
11
+ if (!y.current) return;
12
+ let e = f();
12
13
  if (!e) return;
13
- let t = v.current.getBoundingClientRect(), r = e === window || e instanceof Window ? {
14
+ let t = y.current.getBoundingClientRect(), n = e === window || e instanceof Window ? {
14
15
  top: 0,
15
16
  bottom: window.innerHeight
16
17
  } : e.getBoundingClientRect(), i = !1, a, o;
17
- n !== void 0 && t.top < r.top + n ? (i = !0, a = {
18
+ r !== void 0 && t.top < n.top + r ? (i = !0, a = {
18
19
  position: "fixed",
19
- top: r.top + n,
20
+ top: n.top + r,
20
21
  width: t.width,
21
22
  height: t.height,
22
23
  zIndex: 1e3
23
24
  }, o = {
24
25
  width: t.width,
25
26
  height: t.height
26
- }) : l !== void 0 && t.bottom > r.bottom - l && (i = !0, a = {
27
+ }) : u !== void 0 && t.bottom > n.bottom - u && (i = !0, a = {
27
28
  position: "fixed",
28
- bottom: window.innerHeight - r.bottom + l,
29
+ bottom: window.innerHeight - n.bottom + u,
29
30
  width: t.width,
30
31
  height: t.height,
31
32
  zIndex: 1e3
32
33
  }, o = {
33
34
  width: t.width,
34
35
  height: t.height
35
- }), i !== x.current && (x.current = i, u?.(i)), _((e) => e.isAffixed === i && JSON.stringify(e.affixStyle) === JSON.stringify(a) && JSON.stringify(e.placeholderStyle) === JSON.stringify(o) ? e : {
36
+ }), i !== S.current && (S.current = i, d?.(i)), v((e) => e.isAffixed === i && JSON.stringify(e.affixStyle) === JSON.stringify(a) && JSON.stringify(e.placeholderStyle) === JSON.stringify(o) ? e : {
36
37
  isAffixed: i,
37
38
  affixStyle: a,
38
39
  placeholderStyle: o
39
40
  });
40
41
  }, [
41
- n,
42
- l,
43
- d,
44
- u
42
+ r,
43
+ u,
44
+ f,
45
+ d
45
46
  ]);
46
- return i(() => {
47
- let e = d();
47
+ return a(() => {
48
+ let e = f();
48
49
  if (!e) return;
49
- let t = () => {
50
- b.current && window.cancelAnimationFrame(b.current), b.current = window.requestAnimationFrame(S);
50
+ let n = () => {
51
+ x.current && window.cancelAnimationFrame(x.current), x.current = window.requestAnimationFrame(C);
51
52
  };
52
- return e.addEventListener("scroll", t), window.addEventListener("resize", t), S(), () => {
53
- e.removeEventListener("scroll", t), window.removeEventListener("resize", t), b.current && window.cancelAnimationFrame(b.current);
53
+ e.addEventListener("scroll", n), window.addEventListener("resize", n);
54
+ let r = y.current ? t(y.current, n) : void 0;
55
+ return C(), () => {
56
+ e.removeEventListener("scroll", n), window.removeEventListener("resize", n), r?.(), x.current && window.cancelAnimationFrame(x.current);
54
57
  };
55
- }, [d, S]), /* @__PURE__ */ c("div", {
56
- ref: e(v, h),
58
+ }, [f, C]), /* @__PURE__ */ l("div", {
59
+ ref: e(y, g),
57
60
  style: {
58
- ...g.placeholderStyle,
59
- ...m
61
+ ..._.placeholderStyle,
62
+ ...h
60
63
  },
61
- className: s(p),
62
- children: /* @__PURE__ */ c("div", {
63
- ref: y,
64
- className: s("wim-affix", t.root, g.isAffixed && t.affixed),
65
- style: g.affixStyle,
66
- children: f
64
+ className: c(m),
65
+ children: /* @__PURE__ */ l("div", {
66
+ ref: b,
67
+ className: c("wim-affix", n.root, _.isAffixed && n.affixed),
68
+ style: _.affixStyle,
69
+ children: p
67
70
  })
68
71
  });
69
72
  });
70
- l.displayName = "Affix";
73
+ u.displayName = "Affix";
71
74
  //#endregion
72
- export { l as Affix, l as default };
75
+ export { u as Affix, u as default };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../../_internal/useInlineFloating.cjs"),a=require("./menubar.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=(0,o.createContext)(null),u=(0,o.createContext)(null),d=()=>{let e=(0,o.useContext)(l);if(!e)throw Error(`Menubar compound parts must be used within <Menubar>`);return e},f=()=>{let e=(0,o.useContext)(u);if(!e)throw Error(`Menubar.Trigger/Content/Item must be used within <Menubar.Menu>`);return e},p=o.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:i,...u},d)=>{let[f,p]=(0,o.useState)(null),m=(0,o.useRef)(new Map),h=(0,o.useRef)(null),g=(0,o.useCallback)(e=>{h.current=e,typeof d==`function`?d(e):d&&(d.current=e)},[d]),_=(0,o.useCallback)((e,t)=>{t?m.current.set(e,t):m.current.delete(e)},[]),v=(0,o.useCallback)(()=>Array.from(m.current.keys()),[]),y=(0,o.useCallback)(e=>{m.current.get(e)?.focus()},[]);(0,o.useEffect)(()=>{if(!f)return;let e=e=>{h.current&&!h.current.contains(e.target)&&p(null)},t=e=>{e.key===`Escape`&&(p(null),f&&y(f))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f,y]);let b=e=>{if(i?.(e),e.defaultPrevented)return;let t=v();if(t.length===0)return;let n=f??t.find(e=>m.current.get(e)===document.activeElement)??null;if(!n)return;let r=t.indexOf(n);if(!(r<0)){if(e.key===`ArrowRight`){e.preventDefault();let n=t[(r+1)%t.length];f&&p(n),y(n)}else if(e.key===`ArrowLeft`){e.preventDefault();let n=t[(r-1+t.length)%t.length];f&&p(n),y(n)}else if(e.key===`Home`){e.preventDefault();let n=t[0];f&&p(n),y(n)}else if(e.key===`End`){e.preventDefault();let n=t[t.length-1];f&&p(n),y(n)}}},x=(0,o.useMemo)(()=>({openMenuId:f,setOpenMenuId:p,registerTrigger:_,getTriggerIds:v,focusTrigger:y}),[f,_,v,y]),S=e?t.Root:`div`;return(0,c.jsx)(l.Provider,{value:x,children:(0,c.jsx)(S,{ref:g,role:`menubar`,className:(0,s.default)(`wim-menubar`,a.default.root,n),onKeyDown:b,...u,children:(0,c.jsx)(t.Slottable,{children:r})})})});p.displayName=`Menubar`;var m=o.default.forwardRef(({value:e,disabled:t=!1,className:n,children:r,...i},l)=>{let{openMenuId:f,setOpenMenuId:p,focusTrigger:m}=d(),h=(0,o.useId)(),g=`wim-menubar-trigger-${e}-${h}`,_=`wim-menubar-content-${e}-${h}`,v=f===e,y=()=>{t||p(e)},b=()=>{m(e),p(null)},x=()=>{t||p(v?null:e)},S=(0,o.useMemo)(()=>({menuId:e,triggerId:g,contentId:_,isOpen:v,open:y,close:b,toggle:x}),[e,g,_,v,t]);return(0,c.jsx)(u.Provider,{value:S,children:(0,c.jsx)(`div`,{ref:l,role:`none`,"data-disabled":t||void 0,className:(0,s.default)(a.default.menu,n),...i,children:r})})});m.displayName=`Menubar.Menu`;var h=o.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:i,onMouseEnter:l,...u},p)=>{let{openMenuId:m,registerTrigger:h}=d(),{triggerId:g,contentId:_,isOpen:v,open:y,toggle:b,menuId:x}=f(),S=!!u.disabled,C=(0,o.useCallback)(e=>{h(x,e),typeof p==`function`?p(e):p&&(p.current=e)},[h,x,p]),w=e=>{i?.(e),!(e.defaultPrevented||S)&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y())},T=e=>{l?.(e),m&&!S&&y()};return(0,c.jsx)(e?t.Root:`button`,{...u,ref:C,type:e?void 0:`button`,id:g,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":v,"aria-controls":v?_:void 0,disabled:S,className:(0,s.default)(a.default.trigger,v&&a.default.triggerOpen,n),onClick:b,onKeyDown:w,onMouseEnter:T,children:(0,c.jsx)(t.Slottable,{children:r})})});h.displayName=`Menubar.Trigger`;var g=o.default.forwardRef(({align:e=`start`,className:t,children:r,...l},u)=>{let{contentId:d,triggerId:p,isOpen:m,close:h}=f(),[g,_]=(0,o.useState)(-1),[v,y]=(0,o.useState)(m),b=(0,o.useRef)(null);m!==v&&(y(m),_(m?0:-1));let{setReference:x,setFloating:S,floatingProps:C}=i.useInlineFloating({open:m}),w=(0,o.useCallback)(e=>{b.current=e,S(e),x(e?.parentElement??null),typeof u==`function`?u(e):u&&(u.current=e)},[u,S,x]);(0,o.useEffect)(()=>{!m||g<0||Array.from(b.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[])[g]?.focus()},[g,m]);let T=e=>{let t=Array.from(b.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),_(e=>e<t.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),_(e=>e>0?e-1:t.length-1);break;case`Home`:e.preventDefault(),_(0);break;case`End`:e.preventDefault(),_(t.length-1);break;case`Tab`:h()}};return(0,c.jsx)(n.Transition,{...l,ref:w,show:m,preset:`fade`,id:d,role:`menu`,"aria-labelledby":p,className:(0,s.default)(a.default.content,e===`end`?a.default.alignEnd:a.default.alignStart,t),onKeyDown:T,"data-side":C[`data-side`],style:{...l.style,...C.style},children:r})});g.displayName=`Menubar.Content`;var _=o.default.forwardRef(({children:e,onSelect:t,onClick:n,disabled:i=!1,className:o,...l},u)=>{let{close:d}=f(),p=e=>{i||(e.stopPropagation(),t?.(),n?.(e),d())};return(0,c.jsx)(r.BaseListItem,{...l,ref:u,className:(0,s.default)(a.default.item,o),disabled:i,role:`menuitem`,tabIndex:-1,onClick:p,onKeyDown:e=>{!i&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),p(e))},children:e})});_.displayName=`Menubar.Item`;var v=o.default.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`div`,{ref:n,role:`separator`,className:(0,s.default)(a.default.separator,e),...t}));v.displayName=`Menubar.Separator`;var y=p;y.Menu=m,y.Trigger=h,y.Content=g,y.Item=_,y.Separator=v,exports.Menubar=y,exports.default=y;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../../_internal/useInlineFloating.cjs"),a=require("./menubar.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=(0,o.createContext)(null),u=(0,o.createContext)(null),d=()=>{let e=(0,o.useContext)(l);if(!e)throw Error(`Menubar compound parts must be used within <Menubar>`);return e},f=()=>{let e=(0,o.useContext)(u);if(!e)throw Error(`Menubar.Trigger/Content/Item must be used within <Menubar.Menu>`);return e},p=o.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:i,...u},d)=>{let[f,p]=(0,o.useState)(null),m=(0,o.useRef)(new Map),h=(0,o.useRef)(null),g=(0,o.useCallback)(e=>{h.current=e,typeof d==`function`?d(e):d&&(d.current=e)},[d]),_=(0,o.useCallback)((e,t)=>{t?m.current.set(e,t):m.current.delete(e)},[]),v=(0,o.useCallback)(()=>Array.from(m.current.keys()),[]),y=(0,o.useCallback)(e=>{m.current.get(e)?.focus()},[]);(0,o.useEffect)(()=>{if(!f)return;let e=e=>{h.current&&!h.current.contains(e.target)&&p(null)},t=e=>{e.key===`Escape`&&(p(null),f&&y(f))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f,y]);let b=e=>{if(i?.(e),e.defaultPrevented)return;let t=v();if(t.length===0)return;let n=f??t.find(e=>m.current.get(e)===document.activeElement)??null;if(!n)return;let r=t.indexOf(n);if(!(r<0)){if(e.key===`ArrowRight`){e.preventDefault();let n=t[(r+1)%t.length];f&&p(n),y(n)}else if(e.key===`ArrowLeft`){e.preventDefault();let n=t[(r-1+t.length)%t.length];f&&p(n),y(n)}else if(e.key===`Home`){e.preventDefault();let n=t[0];f&&p(n),y(n)}else if(e.key===`End`){e.preventDefault();let n=t[t.length-1];f&&p(n),y(n)}}},x=(0,o.useMemo)(()=>({openMenuId:f,setOpenMenuId:p,registerTrigger:_,getTriggerIds:v,focusTrigger:y}),[f,_,v,y]),S=e?t.Root:`div`;return(0,c.jsx)(l.Provider,{value:x,children:(0,c.jsx)(S,{ref:g,role:`menubar`,className:(0,s.default)(`wim-menubar`,a.default.root,n),onKeyDown:b,...u,children:(0,c.jsx)(t.Slottable,{children:r})})})});p.displayName=`Menubar`;var m=o.default.forwardRef(({value:e,disabled:t=!1,className:n,children:r,...i},l)=>{let{openMenuId:f,setOpenMenuId:p,focusTrigger:m}=d(),h=(0,o.useId)(),[g,_]=(0,o.useState)(void 0),[v,y]=(0,o.useState)(void 0),b=g??`wim-menubar-trigger-${e}-${h}`,x=v??`wim-menubar-content-${e}-${h}`,S=f===e,C=()=>{t||p(e)},w=()=>{m(e),p(null)},T=()=>{t||p(S?null:e)},E=(0,o.useMemo)(()=>({menuId:e,triggerId:b,contentId:x,setTriggerIdOverride:_,setContentIdOverride:y,isOpen:S,open:C,close:w,toggle:T}),[e,b,x,S,t]);return(0,c.jsx)(u.Provider,{value:E,children:(0,c.jsx)(`div`,{ref:l,role:`none`,"data-disabled":t||void 0,className:(0,s.default)(a.default.menu,n),...i,children:r})})});m.displayName=`Menubar.Menu`;var h=o.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:i,onMouseEnter:l,id:u,...p},m)=>{let{openMenuId:h,registerTrigger:g}=d(),{triggerId:_,contentId:v,isOpen:y,open:b,toggle:x,menuId:S,setTriggerIdOverride:C}=f();(0,o.useEffect)(()=>(C(u),()=>C(void 0)),[u,C]);let w=!!p.disabled,T=(0,o.useCallback)(e=>{g(S,e),typeof m==`function`?m(e):m&&(m.current=e)},[g,S,m]),E=e=>{i?.(e),!(e.defaultPrevented||w)&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b())},D=e=>{l?.(e),h&&!w&&b()};return(0,c.jsx)(e?t.Root:`button`,{...p,ref:T,type:e?void 0:`button`,id:u??_,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":y,"aria-controls":y?v:void 0,disabled:w,className:(0,s.default)(a.default.trigger,y&&a.default.triggerOpen,n),onClick:x,onKeyDown:E,onMouseEnter:D,children:(0,c.jsx)(t.Slottable,{children:r})})});h.displayName=`Menubar.Trigger`;var g=o.default.forwardRef(({align:e=`start`,className:t,children:r,id:l,"aria-labelledby":u,...d},p)=>{let{contentId:m,triggerId:h,isOpen:g,close:_,setContentIdOverride:v}=f();(0,o.useEffect)(()=>(v(l),()=>v(void 0)),[l,v]);let[y,b]=(0,o.useState)(-1),[x,S]=(0,o.useState)(g),C=(0,o.useRef)(null);g!==x&&(S(g),b(g?0:-1));let{setReference:w,setFloating:T,floatingProps:E}=i.useInlineFloating({open:g}),D=(0,o.useCallback)(e=>{C.current=e,T(e),w(e?.parentElement??null),typeof p==`function`?p(e):p&&(p.current=e)},[p,T,w]);(0,o.useEffect)(()=>{!g||y<0||Array.from(C.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[])[y]?.focus()},[y,g]);let O=e=>{let t=Array.from(C.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),b(e=>e<t.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),b(e=>e>0?e-1:t.length-1);break;case`Home`:e.preventDefault(),b(0);break;case`End`:e.preventDefault(),b(t.length-1);break;case`Tab`:_()}};return(0,c.jsx)(n.Transition,{...d,ref:D,show:g,preset:`fade`,id:l??m,role:`menu`,"aria-labelledby":u??h,className:(0,s.default)(a.default.content,e===`end`?a.default.alignEnd:a.default.alignStart,t),onKeyDown:O,"data-side":E[`data-side`],style:{...d.style,...E.style},children:r})});g.displayName=`Menubar.Content`;var _=o.default.forwardRef(({children:e,onSelect:t,onClick:n,disabled:i=!1,className:o,...l},u)=>{let{close:d}=f(),p=e=>{i||(e.stopPropagation(),t?.(),n?.(e),d())};return(0,c.jsx)(r.BaseListItem,{...l,ref:u,className:(0,s.default)(a.default.item,o),disabled:i,role:`menuitem`,tabIndex:-1,onClick:p,onKeyDown:e=>{!i&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),p(e))},children:e})});_.displayName=`Menubar.Item`;var v=o.default.forwardRef(({className:e,...t},n)=>(0,c.jsx)(`div`,{ref:n,role:`separator`,className:(0,s.default)(a.default.separator,e),...t}));v.displayName=`Menubar.Separator`;var y=p;y.Menu=m,y.Trigger=h,y.Content=g,y.Item=_,y.Separator=v,exports.Menubar=y,exports.default=y;
@@ -87,29 +87,31 @@ var _ = s(null), v = s(null), y = () => {
87
87
  });
88
88
  x.displayName = "Menubar";
89
89
  var S = o.forwardRef(({ value: e, disabled: t = !1, className: n, children: r, ...i }, o) => {
90
- let { openMenuId: s, setOpenMenuId: c, focusTrigger: l } = y(), u = d(), p = `wim-menubar-trigger-${e}-${u}`, m = `wim-menubar-content-${e}-${u}`, _ = s === e, b = () => {
90
+ let { openMenuId: s, setOpenMenuId: c, focusTrigger: l } = y(), u = d(), [p, _] = m(void 0), [b, x] = m(void 0), S = p ?? `wim-menubar-trigger-${e}-${u}`, C = b ?? `wim-menubar-content-${e}-${u}`, w = s === e, T = () => {
91
91
  t || c(e);
92
- }, x = () => {
92
+ }, E = () => {
93
93
  l(e), c(null);
94
- }, S = () => {
95
- t || c(_ ? null : e);
96
- }, C = f(() => ({
94
+ }, D = () => {
95
+ t || c(w ? null : e);
96
+ }, O = f(() => ({
97
97
  menuId: e,
98
- triggerId: p,
99
- contentId: m,
100
- isOpen: _,
101
- open: b,
102
- close: x,
103
- toggle: S
98
+ triggerId: S,
99
+ contentId: C,
100
+ setTriggerIdOverride: _,
101
+ setContentIdOverride: x,
102
+ isOpen: w,
103
+ open: T,
104
+ close: E,
105
+ toggle: D
104
106
  }), [
105
107
  e,
106
- p,
107
- m,
108
- _,
108
+ S,
109
+ C,
110
+ w,
109
111
  t
110
112
  ]);
111
113
  return /* @__PURE__ */ g(v.Provider, {
112
- value: C,
114
+ value: O,
113
115
  children: /* @__PURE__ */ g("div", {
114
116
  ref: o,
115
117
  role: "none",
@@ -121,81 +123,85 @@ var S = o.forwardRef(({ value: e, disabled: t = !1, className: n, children: r, .
121
123
  });
122
124
  });
123
125
  S.displayName = "Menubar.Menu";
124
- var C = o.forwardRef(({ asChild: n = !1, className: r, children: i, onKeyDown: o, onMouseEnter: s, ...l }, u) => {
125
- let { openMenuId: d, registerTrigger: f } = y(), { triggerId: p, contentId: m, isOpen: _, open: v, toggle: x, menuId: S } = b(), C = !!l.disabled, w = c((e) => {
126
- f(S, e), typeof u == "function" ? u(e) : u && (u.current = e);
126
+ var C = o.forwardRef(({ asChild: n = !1, className: r, children: i, onKeyDown: o, onMouseEnter: s, id: l, ...d }, f) => {
127
+ let { openMenuId: p, registerTrigger: m } = y(), { triggerId: _, contentId: v, isOpen: x, open: S, toggle: C, menuId: w, setTriggerIdOverride: T } = b();
128
+ u(() => (T(l), () => T(void 0)), [l, T]);
129
+ let E = !!d.disabled, D = c((e) => {
130
+ m(w, e), typeof f == "function" ? f(e) : f && (f.current = e);
127
131
  }, [
128
- f,
129
- S,
130
- u
131
- ]), T = (e) => {
132
- o?.(e), !(e.defaultPrevented || C) && (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), v());
133
- }, E = (e) => {
134
- s?.(e), d && !C && v();
132
+ m,
133
+ w,
134
+ f
135
+ ]), O = (e) => {
136
+ o?.(e), !(e.defaultPrevented || E) && (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), S());
137
+ }, k = (e) => {
138
+ s?.(e), p && !E && S();
135
139
  };
136
140
  return /* @__PURE__ */ g(n ? e : "button", {
137
- ...l,
138
- ref: w,
141
+ ...d,
142
+ ref: D,
139
143
  type: n ? void 0 : "button",
140
- id: p,
144
+ id: l ?? _,
141
145
  role: "menuitem",
142
146
  "aria-haspopup": "menu",
143
- "aria-expanded": _,
144
- "aria-controls": _ ? m : void 0,
145
- disabled: C,
146
- className: h(a.trigger, _ && a.triggerOpen, r),
147
- onClick: x,
148
- onKeyDown: T,
149
- onMouseEnter: E,
147
+ "aria-expanded": x,
148
+ "aria-controls": x ? v : void 0,
149
+ disabled: E,
150
+ className: h(a.trigger, x && a.triggerOpen, r),
151
+ onClick: C,
152
+ onKeyDown: O,
153
+ onMouseEnter: k,
150
154
  children: /* @__PURE__ */ g(t, { children: i })
151
155
  });
152
156
  });
153
157
  C.displayName = "Menubar.Trigger";
154
- var w = o.forwardRef(({ align: e = "start", className: t, children: r, ...o }, s) => {
155
- let { contentId: l, triggerId: d, isOpen: f, close: _ } = b(), [v, y] = m(-1), [x, S] = m(f), C = p(null);
156
- f !== x && (S(f), y(f ? 0 : -1));
157
- let { setReference: w, setFloating: T, floatingProps: E } = i({ open: f }), D = c((e) => {
158
- C.current = e, T(e), w(e?.parentElement ?? null), typeof s == "function" ? s(e) : s && (s.current = e);
158
+ var w = o.forwardRef(({ align: e = "start", className: t, children: r, id: o, "aria-labelledby": s, ...l }, d) => {
159
+ let { contentId: f, triggerId: _, isOpen: v, close: y, setContentIdOverride: x } = b();
160
+ u(() => (x(o), () => x(void 0)), [o, x]);
161
+ let [S, C] = m(-1), [w, T] = m(v), E = p(null);
162
+ v !== w && (T(v), C(v ? 0 : -1));
163
+ let { setReference: D, setFloating: O, floatingProps: k } = i({ open: v }), A = c((e) => {
164
+ E.current = e, O(e), D(e?.parentElement ?? null), typeof d == "function" ? d(e) : d && (d.current = e);
159
165
  }, [
160
- s,
161
- T,
162
- w
166
+ d,
167
+ O,
168
+ D
163
169
  ]);
164
170
  u(() => {
165
- !f || v < 0 || Array.from(C.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? [])[v]?.focus();
166
- }, [v, f]);
167
- let O = (e) => {
168
- let t = Array.from(C.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? []);
171
+ !v || S < 0 || Array.from(E.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? [])[S]?.focus();
172
+ }, [S, v]);
173
+ let j = (e) => {
174
+ let t = Array.from(E.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? []);
169
175
  if (t.length !== 0) switch (e.key) {
170
176
  case "ArrowDown":
171
- e.preventDefault(), y((e) => e < t.length - 1 ? e + 1 : 0);
177
+ e.preventDefault(), C((e) => e < t.length - 1 ? e + 1 : 0);
172
178
  break;
173
179
  case "ArrowUp":
174
- e.preventDefault(), y((e) => e > 0 ? e - 1 : t.length - 1);
180
+ e.preventDefault(), C((e) => e > 0 ? e - 1 : t.length - 1);
175
181
  break;
176
182
  case "Home":
177
- e.preventDefault(), y(0);
183
+ e.preventDefault(), C(0);
178
184
  break;
179
185
  case "End":
180
- e.preventDefault(), y(t.length - 1);
186
+ e.preventDefault(), C(t.length - 1);
181
187
  break;
182
- case "Tab": _();
188
+ case "Tab": y();
183
189
  }
184
190
  };
185
191
  return /* @__PURE__ */ g(n, {
186
- ...o,
187
- ref: D,
188
- show: f,
192
+ ...l,
193
+ ref: A,
194
+ show: v,
189
195
  preset: "fade",
190
- id: l,
196
+ id: o ?? f,
191
197
  role: "menu",
192
- "aria-labelledby": d,
198
+ "aria-labelledby": s ?? _,
193
199
  className: h(a.content, e === "end" ? a.alignEnd : a.alignStart, t),
194
- onKeyDown: O,
195
- "data-side": E["data-side"],
200
+ onKeyDown: j,
201
+ "data-side": k["data-side"],
196
202
  style: {
197
- ...o.style,
198
- ...E.style
203
+ ...l.style,
204
+ ...k.style
199
205
  },
200
206
  children: r
201
207
  });
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../../_internal/mergeRefs.cjs"),a=require("./dropdown.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@floating-ui/react");var u=o.default.createContext({isOpen:!1,toggle:()=>{},close:()=>{},menuId:``,triggerId:``,focusedIndex:-1,setFocusedIndex:()=>{},registerItem:()=>0,containerRef:{current:null},setReference:()=>{},setFloating:()=>{},floatingStyles:{},floatingRef:{current:null},setAlign:()=>{}}),d=(0,o.forwardRef)(({children:e,className:n,asChild:r=!1,defaultOpen:d=!1,open:f,onOpenChange:p,...m},h)=>{let[g,_]=(0,o.useState)(d),v=f??g,y=(0,o.useCallback)(e=>{f===void 0&&_(e),p?.(e)},[f,p]),[b,x]=(0,o.useState)(-1),S=(0,o.useRef)(null),C=(0,o.useRef)(0),[w,T]=(0,o.useState)(`left`),{refs:E,floatingStyles:D}=(0,l.useFloating)({open:v,placement:w===`right`?`bottom-end`:`bottom-start`,whileElementsMounted:l.autoUpdate,middleware:[(0,l.offset)(4),(0,l.flip)(),(0,l.shift)({padding:8})]}),O=i.mergeRefs(S,h);(0,o.useEffect)(()=>{C.current=0});let k=()=>{let e=C.current;return C.current+=1,e},A=(0,o.useId)(),j=`wim-dropdown-menu-${A}`,M=`wim-dropdown-trigger-${A}`,N=()=>{let e=!v;y(e),x(e?0:-1)},P=(0,o.useCallback)(()=>{let e=E.floating.current,t=!!e&&e.contains(document.activeElement);y(!1),x(-1),t&&E.reference.current?.focus?.({preventScroll:!0})},[y,E.floating,E.reference]);(0,o.useEffect)(()=>{let e=e=>{let t=e.target,n=E.floating.current?.contains(t)??!1;S.current&&!S.current.contains(t)&&!n&&P()},t=e=>{e.key===`Escape`&&P()};return v&&(document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t)),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[v,E.floating,P]);let F=e=>{if(!v)return;let t=Array.from((E.floating.current??S.current)?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)||[]);switch(e.key){case`ArrowDown`:e.preventDefault(),x(e=>e<t.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),x(e=>e>0?e-1:t.length-1);break;case`Home`:e.preventDefault(),x(0);break;case`End`:e.preventDefault(),x(t.length-1);break;case`Tab`:P()}};(0,o.useEffect)(()=>{v&&b>=0&&Array.from((E.floating.current??S.current)?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)||[])[b]?.focus({preventScroll:!0})},[b,v,E.floating]);let I=r?t.Root:`div`;return(0,c.jsx)(u.Provider,{value:{isOpen:v,toggle:N,close:P,menuId:j,triggerId:M,focusedIndex:b,setFocusedIndex:x,registerItem:k,containerRef:S,setReference:E.setReference,setFloating:E.setFloating,floatingStyles:D,floatingRef:E.floating,setAlign:T},children:(0,c.jsx)(I,{...m,role:`none`,className:(0,s.default)(`wim-dropdown`,a.default.root,n),ref:O,onKeyDown:F,children:(0,c.jsx)(t.Slottable,{children:e})})})});d.displayName=`Dropdown`;var f=(0,o.forwardRef)(({children:e,className:n,asChild:r=!1,...l},d)=>{let{toggle:f,isOpen:p,menuId:m,triggerId:h,setReference:g}=o.default.useContext(u),_=r?t.Root:`div`,v=i.mergeRefs(g,d);return(0,c.jsx)(_,{...l,ref:v,id:h,className:(0,s.default)(a.default.trigger,n),onClick:f,"aria-haspopup":`menu`,"aria-expanded":p,"aria-controls":p?m:void 0,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `||e.key===`ArrowDown`&&!p)&&(e.preventDefault(),f())},children:(0,c.jsx)(t.Slottable,{children:e})})});f.displayName=`Dropdown.Trigger`;var p=(0,o.forwardRef)(({children:e,className:t,align:r=`left`,show:d,style:f,...p},m)=>{let{isOpen:h,menuId:g,triggerId:_,setFloating:v,floatingStyles:y,setAlign:b}=o.default.useContext(u);(0,o.useEffect)(()=>{b(r)},[r,b]);let x=i.mergeRefs(v,m);return(0,c.jsx)(l.FloatingPortal,{children:(0,c.jsx)(n.Transition,{...p,ref:x,show:d===void 0?h:d,preset:`fade`,id:g,style:{...y,...f},className:(0,s.default)(a.default.menu,t),role:`menu`,"aria-labelledby":_,children:e})})});p.displayName=`Dropdown.Menu`;var m=(0,o.forwardRef)(({children:e,onClick:t,disabled:n=!1,className:i,...l},d)=>{let{close:f,focusedIndex:p,setFocusedIndex:m,registerItem:h}=o.default.useContext(u),[g]=(0,o.useState)(()=>h()),_=p===g,v=e=>{n||(e.stopPropagation(),t&&t(),f())};return(0,c.jsx)(r.BaseListItem,{...l,ref:d,className:(0,s.default)(a.default.item,i),onClick:v,onFocus:()=>m(g),disabled:n,role:`menuitem`,tabIndex:_?0:-1,onKeyDown:e=>{!n&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),v(e))},children:e})});m.displayName=`Dropdown.Item`;var h=(0,o.forwardRef)((e,t)=>(0,c.jsx)(d,{...e,ref:t}));h.displayName=`Dropdown`,h.Trigger=f,h.Menu=p,h.Item=m,exports.Dropdown=h,exports.default=h,exports.DropdownItem=m,exports.DropdownMenu=p,exports.DropdownTrigger=f;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../../_internal/mergeRefs.cjs"),a=require("./dropdown.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime"),l=require("@floating-ui/react");var u=o.default.createContext({isOpen:!1,toggle:()=>{},close:()=>{},menuId:``,triggerId:``,setTriggerIdOverride:()=>{},setMenuIdOverride:()=>{},focusedIndex:-1,setFocusedIndex:()=>{},registerItem:()=>0,containerRef:{current:null},setReference:()=>{},setFloating:()=>{},floatingStyles:{},floatingRef:{current:null},setAlign:()=>{}}),d=(0,o.forwardRef)(({children:e,className:n,asChild:r=!1,defaultOpen:d=!1,open:f,onOpenChange:p,...m},h)=>{let[g,_]=(0,o.useState)(d),v=f??g,y=(0,o.useCallback)(e=>{f===void 0&&_(e),p?.(e)},[f,p]),[b,x]=(0,o.useState)(-1),S=(0,o.useRef)(null),C=(0,o.useRef)(0),[w,T]=(0,o.useState)(`left`),{refs:E,floatingStyles:D}=(0,l.useFloating)({open:v,placement:w===`right`?`bottom-end`:`bottom-start`,whileElementsMounted:l.autoUpdate,middleware:[(0,l.offset)(4),(0,l.flip)(),(0,l.shift)({padding:8})]}),O=i.mergeRefs(S,h);(0,o.useEffect)(()=>{C.current=0});let k=()=>{let e=C.current;return C.current+=1,e},A=(0,o.useId)(),[j,M]=(0,o.useState)(void 0),[N,P]=(0,o.useState)(void 0),F=N??`wim-dropdown-menu-${A}`,I=j??`wim-dropdown-trigger-${A}`,L=()=>{let e=!v;y(e),x(e?0:-1)},R=(0,o.useCallback)(()=>{let e=E.floating.current,t=!!e&&e.contains(document.activeElement);y(!1),x(-1),t&&E.reference.current?.focus?.({preventScroll:!0})},[y,E.floating,E.reference]);(0,o.useEffect)(()=>{let e=e=>{let t=e.target,n=E.floating.current?.contains(t)??!1;S.current&&!S.current.contains(t)&&!n&&R()},t=e=>{e.key===`Escape`&&R()};return v&&(document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t)),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[v,E.floating,R]);let z=e=>{if(!v)return;let t=Array.from((E.floating.current??S.current)?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)||[]);switch(e.key){case`ArrowDown`:e.preventDefault(),x(e=>e<t.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),x(e=>e>0?e-1:t.length-1);break;case`Home`:e.preventDefault(),x(0);break;case`End`:e.preventDefault(),x(t.length-1);break;case`Tab`:R()}};(0,o.useEffect)(()=>{v&&b>=0&&Array.from((E.floating.current??S.current)?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)||[])[b]?.focus({preventScroll:!0})},[b,v,E.floating]);let B=r?t.Root:`div`;return(0,c.jsx)(u.Provider,{value:{isOpen:v,toggle:L,close:R,menuId:F,triggerId:I,setTriggerIdOverride:M,setMenuIdOverride:P,focusedIndex:b,setFocusedIndex:x,registerItem:k,containerRef:S,setReference:E.setReference,setFloating:E.setFloating,floatingStyles:D,floatingRef:E.floating,setAlign:T},children:(0,c.jsx)(B,{...m,role:`none`,className:(0,s.default)(`wim-dropdown`,a.default.root,n),ref:O,onKeyDown:z,children:(0,c.jsx)(t.Slottable,{children:e})})})});d.displayName=`Dropdown`;var f=(0,o.forwardRef)(({children:e,className:n,asChild:r=!1,id:l,...d},f)=>{let{toggle:p,isOpen:m,menuId:h,triggerId:g,setTriggerIdOverride:_,setReference:v}=o.default.useContext(u);(0,o.useEffect)(()=>(_(l),()=>_(void 0)),[l,_]);let y=r?t.Root:`div`,b=i.mergeRefs(v,f);return(0,c.jsx)(y,{...d,ref:b,id:l??g,className:(0,s.default)(a.default.trigger,n),onClick:p,"aria-haspopup":`menu`,"aria-expanded":m,"aria-controls":m?h:void 0,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `||e.key===`ArrowDown`&&!m)&&(e.preventDefault(),p())},children:(0,c.jsx)(t.Slottable,{children:e})})});f.displayName=`Dropdown.Trigger`;var p=(0,o.forwardRef)(({children:e,className:t,align:r=`left`,show:d,style:f,id:p,"aria-labelledby":m,...h},g)=>{let{isOpen:_,menuId:v,triggerId:y,setMenuIdOverride:b,setFloating:x,floatingStyles:S,setAlign:C}=o.default.useContext(u);(0,o.useEffect)(()=>(b(p),()=>b(void 0)),[p,b]),(0,o.useEffect)(()=>{C(r)},[r,C]);let w=i.mergeRefs(x,g);return(0,c.jsx)(l.FloatingPortal,{children:(0,c.jsx)(n.Transition,{...h,ref:w,show:d===void 0?_:d,preset:`fade`,id:p??v,style:{...S,...f},className:(0,s.default)(a.default.menu,t),role:`menu`,"aria-labelledby":m??y,children:e})})});p.displayName=`Dropdown.Menu`;var m=(0,o.forwardRef)(({children:e,onClick:t,disabled:n=!1,className:i,...l},d)=>{let{close:f,focusedIndex:p,setFocusedIndex:m,registerItem:h}=o.default.useContext(u),[g]=(0,o.useState)(()=>h()),_=p===g,v=e=>{n||(e.stopPropagation(),t&&t(),f())};return(0,c.jsx)(r.BaseListItem,{...l,ref:d,className:(0,s.default)(a.default.item,i),onClick:v,onFocus:()=>m(g),disabled:n,role:`menuitem`,tabIndex:_?0:-1,onKeyDown:e=>{!n&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),v(e))},children:e})});m.displayName=`Dropdown.Item`;var h=(0,o.forwardRef)((e,t)=>(0,c.jsx)(d,{...e,ref:t}));h.displayName=`Dropdown`,h.Trigger=f,h.Menu=p,h.Item=m,exports.Dropdown=h,exports.default=h,exports.DropdownItem=m,exports.DropdownMenu=p,exports.DropdownTrigger=f;
@@ -15,6 +15,8 @@ var x = o.createContext({
15
15
  close: () => {},
16
16
  menuId: "",
17
17
  triggerId: "",
18
+ setTriggerIdOverride: () => {},
19
+ setMenuIdOverride: () => {},
18
20
  focusedIndex: -1,
19
21
  setFocusedIndex: () => {},
20
22
  registerItem: () => 0,
@@ -43,10 +45,10 @@ var x = o.createContext({
43
45
  let R = () => {
44
46
  let e = M.current;
45
47
  return M.current += 1, e;
46
- }, z = u(), B = `wim-dropdown-menu-${z}`, V = `wim-dropdown-trigger-${z}`, H = () => {
48
+ }, z = u(), [B, V] = f(void 0), [H, U] = f(void 0), W = H ?? `wim-dropdown-menu-${z}`, G = B ?? `wim-dropdown-trigger-${z}`, K = () => {
47
49
  let e = !D;
48
50
  O(e), A(e ? 0 : -1);
49
- }, U = c(() => {
51
+ }, q = c(() => {
50
52
  let e = F.floating.current, t = !!e && e.contains(document.activeElement);
51
53
  O(!1), A(-1), t && F.reference.current?.focus?.({ preventScroll: !0 });
52
54
  }, [
@@ -57,9 +59,9 @@ var x = o.createContext({
57
59
  l(() => {
58
60
  let e = (e) => {
59
61
  let t = e.target, n = F.floating.current?.contains(t) ?? !1;
60
- j.current && !j.current.contains(t) && !n && U();
62
+ j.current && !j.current.contains(t) && !n && q();
61
63
  }, t = (e) => {
62
- e.key === "Escape" && U();
64
+ e.key === "Escape" && q();
63
65
  };
64
66
  return D && (document.addEventListener("mousedown", e), document.addEventListener("keydown", t)), () => {
65
67
  document.removeEventListener("mousedown", e), document.removeEventListener("keydown", t);
@@ -67,9 +69,9 @@ var x = o.createContext({
67
69
  }, [
68
70
  D,
69
71
  F.floating,
70
- U
72
+ q
71
73
  ]);
72
- let W = (e) => {
74
+ let J = (e) => {
73
75
  if (!D) return;
74
76
  let t = Array.from((F.floating.current ?? j.current)?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") || []);
75
77
  switch (e.key) {
@@ -85,7 +87,7 @@ var x = o.createContext({
85
87
  case "End":
86
88
  e.preventDefault(), A(t.length - 1);
87
89
  break;
88
- case "Tab": U();
90
+ case "Tab": q();
89
91
  }
90
92
  };
91
93
  l(() => {
@@ -95,14 +97,16 @@ var x = o.createContext({
95
97
  D,
96
98
  F.floating
97
99
  ]);
98
- let G = o ? e : "div";
100
+ let Y = o ? e : "div";
99
101
  return /* @__PURE__ */ m(x.Provider, {
100
102
  value: {
101
103
  isOpen: D,
102
- toggle: H,
103
- close: U,
104
- menuId: B,
105
- triggerId: V,
104
+ toggle: K,
105
+ close: q,
106
+ menuId: W,
107
+ triggerId: G,
108
+ setTriggerIdOverride: V,
109
+ setMenuIdOverride: U,
106
110
  focusedIndex: k,
107
111
  setFocusedIndex: A,
108
112
  registerItem: R,
@@ -113,56 +117,58 @@ var x = o.createContext({
113
117
  floatingRef: F.floating,
114
118
  setAlign: P
115
119
  },
116
- children: /* @__PURE__ */ m(G, {
120
+ children: /* @__PURE__ */ m(Y, {
117
121
  ...C,
118
122
  role: "none",
119
123
  className: p("wim-dropdown", a.root, r),
120
124
  ref: L,
121
- onKeyDown: W,
125
+ onKeyDown: J,
122
126
  children: /* @__PURE__ */ m(t, { children: n })
123
127
  })
124
128
  });
125
129
  });
126
130
  S.displayName = "Dropdown";
127
- var C = s(({ children: n, className: r, asChild: s = !1, ...c }, l) => {
128
- let { toggle: u, isOpen: d, menuId: f, triggerId: h, setReference: g } = o.useContext(x), _ = s ? e : "div", v = i(g, l);
129
- return /* @__PURE__ */ m(_, {
130
- ...c,
131
- ref: v,
132
- id: h,
131
+ var C = s(({ children: n, className: r, asChild: s = !1, id: c, ...u }, d) => {
132
+ let { toggle: f, isOpen: h, menuId: g, triggerId: _, setTriggerIdOverride: v, setReference: y } = o.useContext(x);
133
+ l(() => (v(c), () => v(void 0)), [c, v]);
134
+ let b = s ? e : "div", S = i(y, d);
135
+ return /* @__PURE__ */ m(b, {
136
+ ...u,
137
+ ref: S,
138
+ id: c ?? _,
133
139
  className: p(a.trigger, r),
134
- onClick: u,
140
+ onClick: f,
135
141
  "aria-haspopup": "menu",
136
- "aria-expanded": d,
137
- "aria-controls": d ? f : void 0,
142
+ "aria-expanded": h,
143
+ "aria-controls": h ? g : void 0,
138
144
  role: "button",
139
145
  tabIndex: 0,
140
146
  onKeyDown: (e) => {
141
- (e.key === "Enter" || e.key === " " || e.key === "ArrowDown" && !d) && (e.preventDefault(), u());
147
+ (e.key === "Enter" || e.key === " " || e.key === "ArrowDown" && !h) && (e.preventDefault(), f());
142
148
  },
143
149
  children: /* @__PURE__ */ m(t, { children: n })
144
150
  });
145
151
  });
146
152
  C.displayName = "Dropdown.Trigger";
147
- var w = s(({ children: e, className: t, align: r = "left", show: s, style: c, ...u }, d) => {
148
- let { isOpen: f, menuId: g, triggerId: _, setFloating: v, floatingStyles: y, setAlign: b } = o.useContext(x);
149
- l(() => {
150
- b(r);
151
- }, [r, b]);
152
- let S = i(v, d);
153
+ var w = s(({ children: e, className: t, align: r = "left", show: s, style: c, id: u, "aria-labelledby": d, ...f }, g) => {
154
+ let { isOpen: _, menuId: v, triggerId: y, setMenuIdOverride: b, setFloating: S, floatingStyles: C, setAlign: w } = o.useContext(x);
155
+ l(() => (b(u), () => b(void 0)), [u, b]), l(() => {
156
+ w(r);
157
+ }, [r, w]);
158
+ let T = i(S, g);
153
159
  return /* @__PURE__ */ m(h, { children: /* @__PURE__ */ m(n, {
154
- ...u,
155
- ref: S,
156
- show: s === void 0 ? f : s,
160
+ ...f,
161
+ ref: T,
162
+ show: s === void 0 ? _ : s,
157
163
  preset: "fade",
158
- id: g,
164
+ id: u ?? v,
159
165
  style: {
160
- ...y,
166
+ ...C,
161
167
  ...c
162
168
  },
163
169
  className: p(a.menu, t),
164
170
  role: "menu",
165
- "aria-labelledby": _,
171
+ "aria-labelledby": d ?? y,
166
172
  children: e
167
173
  }) });
168
174
  });
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.62.2 — a React 19 component library: 228 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.63.0 — a React 19 component library: 228 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -938,7 +938,7 @@ Useful for using the button styles with Link components (e.g. from React Router
938
938
  - `size: Extract<ComponentSize, "sm" | "md" | "lg">` = "md" — Size of the button
939
939
  - `variant: "solid" | "outline" | "ghost"` = "outline" — Visual style variant of the button
940
940
  - `intent: ButtonIntent` = "default" — Design intent of the button (visual / semantic state). Unrelated to the ARIA role attribute.
941
- - `icon: React.ComponentProps<typeof Icon>["name"] | React.ReactNode` — Icon name or custom icon element
941
+ - `icon: React.ComponentProps<typeof Icon>["name"] | React.ReactNode` — Icon name or custom icon element. An icon-only button (no children) needs `aria-label` or `aria-labelledby`: the icon name is not used as the accessible name.
942
942
  - `iconPosition: "left" | "right"` = "left" — Position of the icon relative to the label
943
943
  - `loading: boolean` = false — Whether to show a loading indicator and disable interaction
944
944
  - `justify: "start" | "center" | "end" | "between"` = "center" — Horizontal alignment of the button content
@@ -1263,7 +1263,7 @@ text to take a name from, and the icon name is not used as one.
1263
1263
  - `size: Extract<ComponentSize, "sm" | "md" | "lg">` = "md" — Size of the button
1264
1264
  - `variant: "solid" | "outline" | "ghost"` = "outline" — Visual style variant of the button
1265
1265
  - `intent: ButtonIntent` = "default" — Design intent of the button (visual / semantic state). Unrelated to the ARIA role attribute.
1266
- - `icon: React.ComponentProps<typeof Icon>["name"] | React.ReactNode` — Icon name or custom icon element
1266
+ - `icon: React.ComponentProps<typeof Icon>["name"] | React.ReactNode` — Icon name or custom icon element. An icon-only button (no children) needs `aria-label` or `aria-labelledby`: the icon name is not used as the accessible name.
1267
1267
  - `loading: boolean` = false — Whether to show a loading indicator and disable interaction
1268
1268
  - `justify: "start" | "center" | "end" | "between"` = "center" — Horizontal alignment of the button content
1269
1269
  - `animateWidth: boolean` = false — Whether to animate the width change when label changes
package/dist/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.62.2 — a React 19 component library: 228 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.63.0 — a React 19 component library: 228 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10