wimui 0.62.1 → 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.
Files changed (28) hide show
  1. package/dist/components/_internal/observeMove.cjs +2 -0
  2. package/dist/components/_internal/observeMove.d.ts +16 -0
  3. package/dist/components/_internal/observeMove.js +44 -0
  4. package/dist/components/feedback/Tour/Tour.cjs +1 -1
  5. package/dist/components/feedback/Tour/Tour.js +91 -88
  6. package/dist/components/form/Button/Button.cjs +1 -1
  7. package/dist/components/form/Button/Button.d.ts +2 -2
  8. package/dist/components/form/Button/Button.js +14 -12
  9. package/dist/components/form/Textarea/Textarea.cjs +1 -1
  10. package/dist/components/form/Textarea/Textarea.js +4 -4
  11. package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
  12. package/dist/components/layout/Dashboard/Dashboard.js +3 -2
  13. package/dist/components/layout/Navbar/Navbar.cjs +1 -1
  14. package/dist/components/layout/Navbar/Navbar.js +1 -0
  15. package/dist/components/media/Gallery/Gallery.cjs +1 -1
  16. package/dist/components/media/Gallery/Gallery.js +49 -49
  17. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  18. package/dist/components/media/ImageCompare/ImageCompare.js +5 -4
  19. package/dist/components/navigation/Affix/Affix.cjs +1 -1
  20. package/dist/components/navigation/Affix/Affix.js +39 -36
  21. package/dist/components/navigation/Menubar/Menubar.cjs +1 -1
  22. package/dist/components/navigation/Menubar/Menubar.js +67 -61
  23. package/dist/components/overlay/Dropdown/Dropdown.cjs +1 -1
  24. package/dist/components/overlay/Dropdown/Dropdown.js +42 -36
  25. package/dist/llms-full.txt +3 -3
  26. package/dist/llms.txt +1 -1
  27. package/dist/wimui.umd.js +5 -5
  28. package/package.json +1 -1
@@ -15,63 +15,63 @@ var v = c(null), y = () => {
15
15
  if (!e) throw Error("Gallery subcomponents must be used within Gallery");
16
16
  return e;
17
17
  }, b = s.forwardRef(({ items: a, columns: s = 3, gap: c = "md", aspect: u = "square", selectable: y = !1, selected: b, defaultSelected: S = [], onSelectionChange: C, onItemClick: w, renderActions: T, className: E, style: D, ...O }, k) => {
18
- let { t: A } = e(t), j = b !== void 0, [M, N] = m(() => new Set(S)), [P, F] = m(0), I = p(null), L = p(null), [R, z] = m(s), B = l((e) => {
19
- L.current = e, typeof k == "function" ? k(e) : k && (k.current = e);
18
+ let { t: A } = e(t), j = b !== void 0, [M, N] = m(() => new Set(S)), P = Math.max(1, Math.floor(s) || 1), [F, I] = m(0), L = p(null), R = p(null), [z, B] = m(P), V = l((e) => {
19
+ R.current = e, typeof k == "function" ? k(e) : k && (k.current = e);
20
20
  }, [k]);
21
21
  d(() => {
22
- let e = L.current;
22
+ let e = R.current;
23
23
  if (!e) return;
24
24
  let t = new ResizeObserver((e) => {
25
25
  let t = e[0].contentRect.width;
26
- z(t < 480 ? 1 : t < 576 ? 2 : s);
26
+ B(t < 480 ? 1 : t < 576 ? 2 : P);
27
27
  });
28
28
  return t.observe(e), () => t.disconnect();
29
- }, [s]);
30
- let V = f(() => j ? new Set(b) : M, [
29
+ }, [P]);
30
+ let H = f(() => j ? new Set(b) : M, [
31
31
  j,
32
32
  b,
33
33
  M
34
- ]), H = l((e) => {
34
+ ]), U = l((e) => {
35
35
  j || N(e), C?.(Array.from(e));
36
- }, [j, C]), U = l((e, t, n) => {
37
- let r = new Set(V);
38
- if (n && I.current !== null) {
39
- let n = Math.min(I.current, t), i = Math.max(I.current, t), o = !V.has(e);
36
+ }, [j, C]), W = l((e, t, n) => {
37
+ let r = new Set(H);
38
+ if (n && L.current !== null) {
39
+ let n = Math.min(L.current, t), i = Math.max(L.current, t), o = !H.has(e);
40
40
  for (let e = n; e <= i; e++) o ? r.add(a[e].id) : r.delete(a[e].id);
41
- } else r.has(e) ? r.delete(e) : r.add(e), I.current = t;
42
- H(r);
41
+ } else r.has(e) ? r.delete(e) : r.add(e), L.current = t;
42
+ U(r);
43
43
  }, [
44
- V,
44
+ H,
45
45
  a,
46
- H
47
- ]), W = l(() => {
48
- H(new Set(a.map((e) => e.id)));
49
- }, [a, H]), G = l(() => {
50
- H(/* @__PURE__ */ new Set());
51
- }, [H]), K = f(() => {
46
+ U
47
+ ]), G = l(() => {
48
+ U(new Set(a.map((e) => e.id)));
49
+ }, [a, U]), K = l(() => {
50
+ U(/* @__PURE__ */ new Set());
51
+ }, [U]), q = f(() => {
52
52
  let e = [];
53
- for (let t = 0; t < a.length; t += R) e.push({
54
- rowItems: a.slice(t, t + R),
53
+ for (let t = 0; t < a.length; t += z) e.push({
54
+ rowItems: a.slice(t, t + z),
55
55
  startIndex: t
56
56
  });
57
57
  return e;
58
- }, [a, R]), q = Array.from(V), J = q.length > 0, Y = {
59
- "--gallery-columns": R,
58
+ }, [a, z]), J = Array.from(H), Y = J.length > 0, X = {
59
+ "--gallery-columns": z,
60
60
  ...D
61
- }, X = (e) => {
62
- let t = R, n = a.length, r = P;
61
+ }, Z = (e) => {
62
+ let t = z, n = a.length, r = F;
63
63
  switch (e.key) {
64
64
  case "ArrowRight":
65
- e.preventDefault(), r = Math.min(P + 1, n - 1);
65
+ e.preventDefault(), r = Math.min(F + 1, n - 1);
66
66
  break;
67
67
  case "ArrowLeft":
68
- e.preventDefault(), r = Math.max(P - 1, 0);
68
+ e.preventDefault(), r = Math.max(F - 1, 0);
69
69
  break;
70
70
  case "ArrowDown":
71
- e.preventDefault(), r = Math.min(P + t, n - 1);
71
+ e.preventDefault(), r = Math.min(F + t, n - 1);
72
72
  break;
73
73
  case "ArrowUp":
74
- e.preventDefault(), r = Math.max(P - t, 0);
74
+ e.preventDefault(), r = Math.max(F - t, 0);
75
75
  break;
76
76
  case "Home":
77
77
  e.preventDefault(), r = 0;
@@ -80,50 +80,50 @@ var v = c(null), y = () => {
80
80
  e.preventDefault(), r = n - 1;
81
81
  break;
82
82
  case "Escape":
83
- y && (e.preventDefault(), G());
83
+ y && (e.preventDefault(), K());
84
84
  break;
85
85
  case "a":
86
86
  case "A":
87
- y && (e.ctrlKey || e.metaKey) && (e.preventDefault(), W());
87
+ y && (e.ctrlKey || e.metaKey) && (e.preventDefault(), G());
88
88
  break;
89
89
  default: return;
90
90
  }
91
- r !== P && (F(r), e.currentTarget.querySelectorAll("[data-gallery-item]")[r]?.focus());
91
+ r !== F && (I(r), e.currentTarget.querySelectorAll("[data-gallery-item]")[r]?.focus());
92
92
  };
93
93
  return /* @__PURE__ */ g(v.Provider, {
94
94
  value: {
95
95
  selectable: y,
96
- selectedIds: V,
97
- lastClickedIndex: I,
96
+ selectedIds: H,
97
+ lastClickedIndex: L,
98
98
  items: a,
99
- toggleSelect: U,
100
- focusedIndex: P,
101
- setFocusedIndex: F,
102
- selectAll: W,
103
- clearSelection: G,
99
+ toggleSelect: W,
100
+ focusedIndex: F,
101
+ setFocusedIndex: I,
102
+ selectAll: G,
103
+ clearSelection: K,
104
104
  onItemClick: w
105
105
  },
106
106
  children: /* @__PURE__ */ _("div", {
107
- ref: B,
107
+ ref: V,
108
108
  className: h("wim-gallery", o.root, E),
109
109
  ...O,
110
- children: [y && J && /* @__PURE__ */ _("div", {
110
+ children: [y && Y && /* @__PURE__ */ _("div", {
111
111
  className: o.toolbar,
112
112
  role: "toolbar",
113
113
  "aria-label": A("gallery.toolbar_label"),
114
114
  children: [/* @__PURE__ */ g("span", {
115
115
  className: o.toolbarCount,
116
- children: A("gallery.selected_count", { count: q.length })
116
+ children: A("gallery.selected_count", { count: J.length })
117
117
  }), /* @__PURE__ */ _("div", {
118
118
  className: o.toolbarActions,
119
119
  children: [T?.({
120
- selectedIds: q,
121
- clearSelection: G
120
+ selectedIds: J,
121
+ clearSelection: K
122
122
  }), /* @__PURE__ */ g(i, {
123
123
  size: "sm",
124
124
  variant: "ghost",
125
125
  className: o.toolbarClear,
126
- onClick: G,
126
+ onClick: K,
127
127
  "aria-label": A("gallery.clear_selection"),
128
128
  icon: /* @__PURE__ */ g(r, {
129
129
  component: n,
@@ -133,13 +133,13 @@ var v = c(null), y = () => {
133
133
  })]
134
134
  }), /* @__PURE__ */ g("div", {
135
135
  className: h(o.grid, o[`gap-${c}`], o[`aspect-${u}`]),
136
- style: Y,
136
+ style: X,
137
137
  role: "grid",
138
138
  "aria-multiselectable": y || void 0,
139
139
  "aria-label": A("gallery.grid_label"),
140
- onKeyDown: X,
140
+ onKeyDown: Z,
141
141
  tabIndex: 0,
142
- children: K.map(({ rowItems: e, startIndex: t }, n) => /* @__PURE__ */ g("div", {
142
+ children: q.map(({ rowItems: e, startIndex: t }, n) => /* @__PURE__ */ g("div", {
143
143
  role: "row",
144
144
  style: { display: "contents" },
145
145
  children: e.map((e, n) => /* @__PURE__ */ g(x, {
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/chevron-left.cjs"),i=require("../../../icon/chevron-right.cjs"),a=require("../Icon/Icon.cjs"),o=require("./image-compare.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=e=>Math.max(0,Math.min(100,e)),d=s.default.forwardRef(({before:e,after:d,beforeAlt:f=``,afterAlt:p=``,beforeLabel:m,afterLabel:h,defaultPosition:g=50,position:_,onPositionChange:v,orientation:y=`horizontal`,width:b,height:x,radius:S=`md`,labels:C,className:w,"aria-label":T,"aria-labelledby":E,"aria-describedby":D,...O},k)=>{let{t:A}=t.useWimTranslation(n.commonNs),{handleAriaLabel:j=A(`imageCompare.handle`)}=C??{},M=_!==void 0,[N,P]=(0,s.useState)(u(g)),F=u(M?_:N),I=y===`vertical`,L=(0,s.useRef)(null),R=(0,s.useRef)(!1),z=(0,s.useCallback)(e=>{L.current=e,typeof k==`function`?k(e):k&&(k.current=e)},[k]),B=(0,s.useCallback)(e=>{let t=u(e);M||P(t),v?.(t)},[M,v]),V=(0,s.useCallback)((e,t)=>{let n=L.current?.getBoundingClientRect();if(!n)return;let r=I?(t-n.top)/n.height*100:(e-n.left)/n.width*100;B(r)},[I,B]),H=e=>{R.current=!0,e.currentTarget.setPointerCapture(e.pointerId),V(e.clientX,e.clientY)},U=e=>{R.current&&V(e.clientX,e.clientY)},W=e=>{R.current=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},G=e=>{let t=e.shiftKey?10:2,n=I?`ArrowUp`:`ArrowLeft`,r=I?`ArrowDown`:`ArrowRight`;e.key===n?(e.preventDefault(),B(F-t)):e.key===r?(e.preventDefault(),B(F+t)):e.key===`Home`?(e.preventDefault(),B(0)):e.key===`End`&&(e.preventDefault(),B(100))},K=I?{clipPath:`inset(0 0 ${100-F}% 0)`}:{clipPath:`inset(0 ${100-F}% 0 0)`},q=I?{top:`${F}%`}:{left:`${F}%`};return(0,l.jsxs)(`div`,{ref:z,className:(0,c.default)(`wim-image-compare`,o.default.root,I&&o.default.vertical,o.default[`radius-${S}`],w),style:{width:b,height:x},onPointerDown:H,onPointerMove:U,onPointerUp:W,...O,children:[(0,l.jsx)(`img`,{className:o.default.image,src:d,alt:p,draggable:!1}),h&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.afterLabel),children:h}),(0,l.jsxs)(`div`,{className:o.default.beforeLayer,style:K,children:[(0,l.jsx)(`img`,{className:o.default.image,src:e,alt:f,draggable:!1}),m&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.beforeLabel),children:m})]}),(0,l.jsxs)(`div`,{className:o.default.divider,style:q,children:[(0,l.jsx)(`span`,{className:o.default.line,"aria-hidden":`true`}),(0,l.jsxs)(`button`,{type:`button`,className:o.default.handle,role:`slider`,"aria-label":E?void 0:T??j,"aria-labelledby":E,"aria-describedby":D,"aria-orientation":y,"aria-valuenow":Math.round(F),"aria-valuemin":0,"aria-valuemax":100,onKeyDown:G,onPointerDown:H,children:[(0,l.jsx)(a.Icon,{component:r.default,size:`sm`,className:o.default.arrow}),(0,l.jsx)(a.Icon,{component:i.default,size:`sm`,className:o.default.arrow})]})]})]})});d.displayName=`ImageCompare`,exports.ImageCompare=d;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/chevron-left.cjs"),i=require("../../../icon/chevron-right.cjs"),a=require("../Icon/Icon.cjs"),o=require("./image-compare.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=e=>Math.max(0,Math.min(100,e)),d=s.default.forwardRef(({before:e,after:d,beforeAlt:f=``,afterAlt:p=``,beforeLabel:m,afterLabel:h,defaultPosition:g=50,position:_,onPositionChange:v,orientation:y=`horizontal`,width:b,height:x,radius:S=`md`,labels:C,className:w,"aria-label":T,"aria-labelledby":E,"aria-describedby":D,...O},k)=>{let{t:A}=t.useWimTranslation(n.commonNs),{handleAriaLabel:j=A(`imageCompare.handle`)}=C??{},M=_!==void 0,[N,P]=(0,s.useState)(u(g)),F=u(M?_:N),I=y===`vertical`,L=(0,s.useRef)(null),R=(0,s.useRef)(!1),z=(0,s.useCallback)(e=>{L.current=e,typeof k==`function`?k(e):k&&(k.current=e)},[k]),B=(0,s.useCallback)(e=>{let t=u(e);M||P(t),v?.(t)},[M,v]),V=(0,s.useCallback)((e,t)=>{let n=L.current?.getBoundingClientRect();if(!n)return;let r=I?(t-n.top)/n.height*100:(e-n.left)/n.width*100;B(r)},[I,B]),H=e=>{R.current=!0,e.currentTarget.setPointerCapture(e.pointerId),V(e.clientX,e.clientY)},U=e=>{R.current&&V(e.clientX,e.clientY)},W=e=>{R.current=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},G=e=>{let t=e.shiftKey?10:2,n=I?`ArrowUp`:`ArrowLeft`,r=I?`ArrowDown`:`ArrowRight`;e.key===n?(e.preventDefault(),B(F-t)):e.key===r?(e.preventDefault(),B(F+t)):e.key===`Home`?(e.preventDefault(),B(0)):e.key===`End`&&(e.preventDefault(),B(100))},K=I?{clipPath:`inset(0 0 ${100-F}% 0)`}:{clipPath:`inset(0 ${100-F}% 0 0)`},q=I?{top:`${F}%`}:{left:`${F}%`};return(0,l.jsxs)(`div`,{ref:z,className:(0,c.default)(`wim-image-compare`,o.default.root,I&&o.default.vertical,o.default[`radius-${S}`],w),onPointerDown:H,onPointerMove:U,onPointerUp:W,...O,style:{width:b,height:x,...O.style},children:[(0,l.jsx)(`img`,{className:o.default.image,src:d,alt:p,draggable:!1}),h&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.afterLabel),children:h}),(0,l.jsxs)(`div`,{className:o.default.beforeLayer,style:K,children:[(0,l.jsx)(`img`,{className:o.default.image,src:e,alt:f,draggable:!1}),m&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.beforeLabel),children:m})]}),(0,l.jsxs)(`div`,{className:o.default.divider,style:q,children:[(0,l.jsx)(`span`,{className:o.default.line,"aria-hidden":`true`}),(0,l.jsxs)(`button`,{type:`button`,className:o.default.handle,role:`slider`,"aria-label":E?void 0:T??j,"aria-labelledby":E,"aria-describedby":D,"aria-orientation":y,"aria-valuenow":Math.round(F),"aria-valuemin":0,"aria-valuemax":100,onKeyDown:G,onPointerDown:H,children:[(0,l.jsx)(a.Icon,{component:r.default,size:`sm`,className:o.default.arrow}),(0,l.jsx)(a.Icon,{component:i.default,size:`sm`,className:o.default.arrow})]})]})]})});d.displayName=`ImageCompare`,exports.ImageCompare=d;
@@ -33,14 +33,15 @@ var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, aft
33
33
  return /* @__PURE__ */ f("div", {
34
34
  ref: H,
35
35
  className: u("wim-image-compare", a.root, z && a.vertical, a[`radius-${T}`], D),
36
- style: {
37
- width: C,
38
- height: w
39
- },
40
36
  onPointerDown: G,
41
37
  onPointerMove: K,
42
38
  onPointerUp: q,
43
39
  ...j,
40
+ style: {
41
+ width: C,
42
+ height: w,
43
+ ...j.style
44
+ },
44
45
  children: [
45
46
  /* @__PURE__ */ d("img", {
46
47
  className: a.image,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../_internal/mergeRefs.cjs"),n=require("./affix.module.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("classnames");i=e.__toESM(i,1);let a=require("react/jsx-runtime");var o=r.default.forwardRef(function({offsetTop:e,offsetBottom:o,onChange:s,target:c=()=>window,children:l,className:u,style:d},f){let[p,m]=(0,r.useState)({isAffixed:!1}),h=(0,r.useRef)(null),g=(0,r.useRef)(null),_=(0,r.useRef)(null),v=(0,r.useRef)(!1),y=(0,r.useCallback)(()=>{if(!h.current)return;let t=c();if(!t)return;let n=h.current.getBoundingClientRect(),r=t===window||t instanceof Window?{top:0,bottom:window.innerHeight}:t.getBoundingClientRect(),i=!1,a,l;e!==void 0&&n.top<r.top+e?(i=!0,a={position:`fixed`,top:r.top+e,width:n.width,height:n.height,zIndex:1e3},l={width:n.width,height:n.height}):o!==void 0&&n.bottom>r.bottom-o&&(i=!0,a={position:`fixed`,bottom:window.innerHeight-r.bottom+o,width:n.width,height:n.height,zIndex:1e3},l={width:n.width,height:n.height}),i!==v.current&&(v.current=i,s?.(i)),m(e=>e.isAffixed===i&&JSON.stringify(e.affixStyle)===JSON.stringify(a)&&JSON.stringify(e.placeholderStyle)===JSON.stringify(l)?e:{isAffixed:i,affixStyle:a,placeholderStyle:l})},[e,o,c,s]);return(0,r.useEffect)(()=>{let e=c();if(!e)return;let t=()=>{_.current&&window.cancelAnimationFrame(_.current),_.current=window.requestAnimationFrame(y)};return e.addEventListener(`scroll`,t),window.addEventListener(`resize`,t),y(),()=>{e.removeEventListener(`scroll`,t),window.removeEventListener(`resize`,t),_.current&&window.cancelAnimationFrame(_.current)}},[c,y]),(0,a.jsx)(`div`,{ref:t.mergeRefs(h,f),style:{...p.placeholderStyle,...d},className:(0,i.default)(u),children:(0,a.jsx)(`div`,{ref:g,className:(0,i.default)(`wim-affix`,n.default.root,p.isAffixed&&n.default.affixed),style:p.affixStyle,children:l})})});o.displayName=`Affix`,exports.Affix=o,exports.default=o;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../_internal/mergeRefs.cjs"),n=require("../../_internal/observeMove.cjs"),r=require("./affix.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=i.default.forwardRef(function({offsetTop:e,offsetBottom:s,onChange:c,target:l=()=>window,children:u,className:d,style:f},p){let[m,h]=(0,i.useState)({isAffixed:!1}),g=(0,i.useRef)(null),_=(0,i.useRef)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(!1),b=(0,i.useCallback)(()=>{if(!g.current)return;let t=l();if(!t)return;let n=g.current.getBoundingClientRect(),r=t===window||t instanceof Window?{top:0,bottom:window.innerHeight}:t.getBoundingClientRect(),i=!1,a,o;e!==void 0&&n.top<r.top+e?(i=!0,a={position:`fixed`,top:r.top+e,width:n.width,height:n.height,zIndex:1e3},o={width:n.width,height:n.height}):s!==void 0&&n.bottom>r.bottom-s&&(i=!0,a={position:`fixed`,bottom:window.innerHeight-r.bottom+s,width:n.width,height:n.height,zIndex:1e3},o={width:n.width,height:n.height}),i!==y.current&&(y.current=i,c?.(i)),h(e=>e.isAffixed===i&&JSON.stringify(e.affixStyle)===JSON.stringify(a)&&JSON.stringify(e.placeholderStyle)===JSON.stringify(o)?e:{isAffixed:i,affixStyle:a,placeholderStyle:o})},[e,s,l,c]);return(0,i.useEffect)(()=>{let e=l();if(!e)return;let t=()=>{v.current&&window.cancelAnimationFrame(v.current),v.current=window.requestAnimationFrame(b)};e.addEventListener(`scroll`,t),window.addEventListener(`resize`,t);let r=g.current?n.observeMove(g.current,t):void 0;return b(),()=>{e.removeEventListener(`scroll`,t),window.removeEventListener(`resize`,t),r?.(),v.current&&window.cancelAnimationFrame(v.current)}},[l,b]),(0,o.jsx)(`div`,{ref:t.mergeRefs(g,p),style:{...m.placeholderStyle,...f},className:(0,a.default)(d),children:(0,o.jsx)(`div`,{ref:_,className:(0,a.default)(`wim-affix`,r.default.root,m.isAffixed&&r.default.affixed),style:m.affixStyle,children:u})})});s.displayName=`Affix`,exports.Affix=s,exports.default=s;
@@ -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;