@box-kite/react 2.2.16 → 2.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/datePicker.cjs +1 -1
- package/components/datePicker.mjs +196 -193
- package/components/dialog.cjs +1 -1
- package/components/dialog.mjs +85 -84
- package/components/menu.cjs +1 -1
- package/components/menu.mjs +119 -118
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +1 -0
- package/components/popover.cjs +1 -1
- package/components/popover.mjs +49 -48
- package/components/presence.cjs +1 -1
- package/components/presence.mjs +1 -1
- package/components/semantics.d.ts +29 -29
- package/components/swipeItem.cjs +1 -1
- package/components/swipeItem.mjs +1 -1
- package/components/tabs.cjs +1 -1
- package/components/tabs.mjs +1 -1
- package/components/toaster.cjs +1 -1
- package/components/toaster.mjs +1 -1
- package/docs/props.md +2 -2
- package/motion.cjs +1 -1
- package/motion.mjs +30 -20
- package/package.json +40 -40
- package/react/animation/useHeldContent.d.ts +6 -0
- package/react/animation/usePresence.d.ts +4 -0
package/components/dialog.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../client.cjs"),r=require("../effects.cjs"),i=require("../box.cjs"),a=require("../behavior.cjs"),o=require("../identity.cjs"),s=require("../reporting.cjs"),c=require("./semantics.cjs");let
|
|
1
|
+
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../client.cjs"),r=require("../effects.cjs"),i=require("../box.cjs"),a=require("../behavior.cjs"),o=require("../identity.cjs"),s=require("../reporting.cjs"),c=require("../motion.cjs"),l=require("./semantics.cjs");let u=require("react"),d=require("react/jsx-runtime");var f=0;function p(e){let{classNames:i,styleElements:a}=n.i({overflow:`hidden`},!1),o=i.slice(1).join(` `);return r.n(()=>{let n=t.n();if(!(!e||!n||!o))return f+=1,n.classList.add(o),()=>{--f,f===0&&n.classList.remove(o)}},[e,o]),a}var m=(0,u.createContext)(null);function h(e){let t=(0,u.useContext)(m);if(!t)throw Error(`<${e}> must be rendered inside a <Dialog>.`);return t}function g(e,t){return(0,d.jsx)(v,{role:`dialog`,...e,elementRef:t})}function _(e,t){return(0,d.jsx)(v,{role:`alertdialog`,...e,modal:!0,dismissible:!1,elementRef:t})}function v(e){let{role:n,trigger:l,children:f,open:h,defaultOpen:g=!1,onOpenChange:_,label:v,labelledBy:b,describedBy:x,modal:S=!0,dismissible:C=!0,lockScroll:w=S,initialFocus:T,elementRef:E,props:D,...O}=e,k=o.t(`dialog`),A=O.id??k,[j,M]=s.a({value:h,defaultValue:g,onChange:_,interaction:{component:n===`alertdialog`?`alertDialog`:`dialog`,type:`openChange`}}),[N,P]=(0,u.useState)(null),F=(0,u.useCallback)(e=>{P(e),t.l(E,e)},[E]),[I,L]=(0,u.useState)(null),[R,z]=(0,u.useState)(!1),[B,V]=(0,u.useState)({title:0,description:0}),H=p(j&&w);a.n({enabled:j,returnTo:I});let U=c.t(f,j,N),W=(0,u.useCallback)(e=>(V(t=>({...t,[e]:t[e]+1})),()=>V(t=>({...t,[e]:t[e]-1}))),[]),G=(0,u.useMemo)(()=>({titleId:`${A}-title`,descriptionId:`${A}-description`,register:W}),[A,W]);y({dialog:N,isOpen:j,domOpen:R,setDomOpen:z,setOpen:M,modal:S,dismissible:C,triggerElement:I}),r.n(()=>{let e=t.f(T);!j||!e||e.focus()},[j,T]);let K=a.a(e=>{M(e=>!e,{reason:`trigger`,event:e})}),q=(0,u.useMemo)(()=>({ref:L,props:{"aria-expanded":j,"aria-haspopup":`dialog`,"aria-controls":j?A:void 0,onClick:K}}),[A,K,j]),J=O;return(0,d.jsxs)(d.Fragment,{children:[H,l?.(q),(0,d.jsx)(m.Provider,{value:G,children:(0,d.jsx)(i.default,{ref:F,tag:`dialog`,component:`dialog`,...J,id:A,props:{role:n,"aria-label":B.title||b?void 0:v,"aria-labelledby":b??(B.title?G.titleId:void 0),"aria-describedby":x??(B.description?G.descriptionId:void 0),...D},children:U})})]})}function y(e){let{dialog:n,isOpen:i,domOpen:o,setDomOpen:s,setOpen:c,modal:l,dismissible:d,triggerElement:f}=e,p=(0,u.useRef)(`imperative`),m=t.s(),h=d?`any`:`closerequest`;r.n(()=>{!n||i===o||(s(i),i?l?n.showModal():n.show():n.close())},[n,i,o,l,s]),r.n(()=>{if(!n)return;let e=new AbortController;return n.addEventListener(`close`,e=>{s(!1),c(!1,{reason:p.current,event:e}),p.current=`imperative`},{signal:e.signal}),()=>e.abort()},[n,s,c]),r.n(()=>{if(!(!n||!m))return n.setAttribute(`closedby`,h),()=>n.removeAttribute(`closedby`)},[n,m,h]),r.n(()=>{if(!i||!n)return;let e=new AbortController,r=(t,n)=>document.addEventListener(t,n,{signal:e.signal,capture:!0});return r(`keydown`,e=>{e.key===`Escape`&&(p.current=`escape`)}),r(`pointerdown`,e=>{t.p(e,[f])?p.current=`trigger`:!t.p(e,[n])||b(n,e)?p.current=`outside-pointer`:p.current=`imperative`}),()=>e.abort()},[i,n,f]),a.r({enabled:i&&!l&&!m,inside:[n],escapeKey:!0,outsidePointer:!1,onDismiss:(e,t)=>c(!1,{reason:`escape`,event:t})}),r.n(()=>{if(!n||!i||!d||m)return;let e=new AbortController;return document.addEventListener(`pointerdown`,e=>{t.p(e,[f])||t.p(e,[n])&&!b(n,e)||c(!1,{reason:`outside-pointer`,event:e})},{signal:e.signal,capture:!0}),()=>e.abort()},[n,i,d,m,f,c])}function b(e,t){let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function x(e){let t=h(`Dialog.Title`);return r.n(()=>t.register(`title`),[t]),(0,d.jsx)(l.H2,{id:t.titleId,component:`dialog.title`,...e})}function S(e){let t=h(`Dialog.Description`);return r.n(()=>t.register(`description`),[t]),(0,d.jsx)(l.P,{id:t.descriptionId,component:`dialog.description`,...e})}x.displayName=`Dialog.Title`,S.displayName=`Dialog.Description`;var C={Title:x,Description:S},w=Object.assign(e.f(g,`Dialog`),C),T=Object.assign(e.f(_,`AlertDialog`),C);exports.AlertDialog=T,exports.default=w;
|
package/components/dialog.mjs
CHANGED
|
@@ -7,37 +7,38 @@ import c from "../box.mjs";
|
|
|
7
7
|
import { a as l, n as u, r as d } from "../behavior.mjs";
|
|
8
8
|
import { t as f } from "../identity.mjs";
|
|
9
9
|
import { a as p } from "../reporting.mjs";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { t as m } from "../motion.mjs";
|
|
11
|
+
import { H2 as h, P as g } from "./semantics.mjs";
|
|
12
|
+
import { createContext as _, useCallback as v, useContext as y, useMemo as b, useRef as x, useState as S } from "react";
|
|
13
|
+
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
13
14
|
//#region src/react/dialog/useScrollLock.ts
|
|
14
|
-
var
|
|
15
|
-
function
|
|
15
|
+
var E = 0;
|
|
16
|
+
function D(e) {
|
|
16
17
|
let { classNames: t, styleElements: n } = o({ overflow: "hidden" }, !1), i = t.slice(1).join(" ");
|
|
17
18
|
return s(() => {
|
|
18
19
|
let t = r();
|
|
19
|
-
if (!(!e || !t || !i)) return
|
|
20
|
-
--
|
|
20
|
+
if (!(!e || !t || !i)) return E += 1, t.classList.add(i), () => {
|
|
21
|
+
--E, E === 0 && t.classList.remove(i);
|
|
21
22
|
};
|
|
22
23
|
}, [e, i]), n;
|
|
23
24
|
}
|
|
24
25
|
//#endregion
|
|
25
26
|
//#region src/components/dialog.tsx
|
|
26
|
-
var
|
|
27
|
-
function
|
|
28
|
-
let t =
|
|
27
|
+
var O = _(null);
|
|
28
|
+
function k(e) {
|
|
29
|
+
let t = y(O);
|
|
29
30
|
if (!t) throw Error(`<${e}> must be rendered inside a <Dialog>.`);
|
|
30
31
|
return t;
|
|
31
32
|
}
|
|
32
|
-
function
|
|
33
|
-
return /* @__PURE__ */
|
|
33
|
+
function A(e, t) {
|
|
34
|
+
return /* @__PURE__ */ w(M, {
|
|
34
35
|
role: "dialog",
|
|
35
36
|
...e,
|
|
36
37
|
elementRef: t
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
|
-
function
|
|
40
|
-
return /* @__PURE__ */
|
|
40
|
+
function j(e, t) {
|
|
41
|
+
return /* @__PURE__ */ w(M, {
|
|
41
42
|
role: "alertdialog",
|
|
42
43
|
...e,
|
|
43
44
|
modal: !0,
|
|
@@ -45,92 +46,92 @@ function A(e, t) {
|
|
|
45
46
|
elementRef: t
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
|
-
function
|
|
49
|
-
let { role: r, trigger: i, children: a, open: o, defaultOpen: d = !1, onOpenChange:
|
|
49
|
+
function M(e) {
|
|
50
|
+
let { role: r, trigger: i, children: a, open: o, defaultOpen: d = !1, onOpenChange: h, label: g, labelledBy: _, describedBy: y, modal: x = !0, dismissible: E = !0, lockScroll: k = x, initialFocus: A, elementRef: j, props: M, ...P } = e, F = f("dialog"), I = P.id ?? F, [L, R] = p({
|
|
50
51
|
value: o,
|
|
51
52
|
defaultValue: d,
|
|
52
|
-
onChange:
|
|
53
|
+
onChange: h,
|
|
53
54
|
interaction: {
|
|
54
55
|
component: r === "alertdialog" ? "alertDialog" : "dialog",
|
|
55
56
|
type: "openChange"
|
|
56
57
|
}
|
|
57
|
-
}), [
|
|
58
|
-
|
|
59
|
-
}, [
|
|
58
|
+
}), [z, B] = S(null), V = v((e) => {
|
|
59
|
+
B(e), n(j, e);
|
|
60
|
+
}, [j]), [H, U] = S(null), [W, G] = S(!1), [K, q] = S({
|
|
60
61
|
title: 0,
|
|
61
62
|
description: 0
|
|
62
|
-
}),
|
|
63
|
+
}), J = D(L && k);
|
|
63
64
|
u({
|
|
64
|
-
enabled:
|
|
65
|
-
returnTo:
|
|
65
|
+
enabled: L,
|
|
66
|
+
returnTo: H
|
|
66
67
|
});
|
|
67
|
-
let
|
|
68
|
+
let Y = m(a, L, z), X = v((e) => (q((t) => ({
|
|
68
69
|
...t,
|
|
69
70
|
[e]: t[e] + 1
|
|
70
|
-
})), () =>
|
|
71
|
+
})), () => q((t) => ({
|
|
71
72
|
...t,
|
|
72
73
|
[e]: t[e] - 1
|
|
73
|
-
}))), []),
|
|
74
|
-
titleId: `${
|
|
75
|
-
descriptionId: `${
|
|
76
|
-
register:
|
|
77
|
-
}), [
|
|
78
|
-
|
|
79
|
-
dialog:
|
|
80
|
-
isOpen:
|
|
81
|
-
domOpen:
|
|
82
|
-
setDomOpen:
|
|
83
|
-
setOpen:
|
|
84
|
-
modal:
|
|
85
|
-
dismissible:
|
|
86
|
-
triggerElement:
|
|
74
|
+
}))), []), Z = b(() => ({
|
|
75
|
+
titleId: `${I}-title`,
|
|
76
|
+
descriptionId: `${I}-description`,
|
|
77
|
+
register: X
|
|
78
|
+
}), [I, X]);
|
|
79
|
+
N({
|
|
80
|
+
dialog: z,
|
|
81
|
+
isOpen: L,
|
|
82
|
+
domOpen: W,
|
|
83
|
+
setDomOpen: G,
|
|
84
|
+
setOpen: R,
|
|
85
|
+
modal: x,
|
|
86
|
+
dismissible: E,
|
|
87
|
+
triggerElement: H
|
|
87
88
|
}), s(() => {
|
|
88
|
-
let e = t(
|
|
89
|
-
!
|
|
90
|
-
}, [
|
|
91
|
-
let
|
|
92
|
-
|
|
89
|
+
let e = t(A);
|
|
90
|
+
!L || !e || e.focus();
|
|
91
|
+
}, [L, A]);
|
|
92
|
+
let Q = l((e) => {
|
|
93
|
+
R((e) => !e, {
|
|
93
94
|
reason: "trigger",
|
|
94
95
|
event: e
|
|
95
96
|
});
|
|
96
|
-
}),
|
|
97
|
-
ref:
|
|
97
|
+
}), $ = b(() => ({
|
|
98
|
+
ref: U,
|
|
98
99
|
props: {
|
|
99
|
-
"aria-expanded":
|
|
100
|
+
"aria-expanded": L,
|
|
100
101
|
"aria-haspopup": "dialog",
|
|
101
|
-
"aria-controls":
|
|
102
|
-
onClick:
|
|
102
|
+
"aria-controls": L ? I : void 0,
|
|
103
|
+
onClick: Q
|
|
103
104
|
}
|
|
104
105
|
}), [
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
]),
|
|
109
|
-
return /* @__PURE__ */
|
|
110
|
-
|
|
111
|
-
i?.(
|
|
112
|
-
/* @__PURE__ */
|
|
113
|
-
value:
|
|
114
|
-
children: /* @__PURE__ */
|
|
115
|
-
ref:
|
|
106
|
+
I,
|
|
107
|
+
Q,
|
|
108
|
+
L
|
|
109
|
+
]), ee = P;
|
|
110
|
+
return /* @__PURE__ */ T(C, { children: [
|
|
111
|
+
J,
|
|
112
|
+
i?.($),
|
|
113
|
+
/* @__PURE__ */ w(O.Provider, {
|
|
114
|
+
value: Z,
|
|
115
|
+
children: /* @__PURE__ */ w(c, {
|
|
116
|
+
ref: V,
|
|
116
117
|
tag: "dialog",
|
|
117
118
|
component: "dialog",
|
|
118
|
-
...
|
|
119
|
-
id:
|
|
119
|
+
...ee,
|
|
120
|
+
id: I,
|
|
120
121
|
props: {
|
|
121
122
|
role: r,
|
|
122
|
-
"aria-label":
|
|
123
|
-
"aria-labelledby":
|
|
124
|
-
"aria-describedby":
|
|
125
|
-
...
|
|
123
|
+
"aria-label": K.title || _ ? void 0 : g,
|
|
124
|
+
"aria-labelledby": _ ?? (K.title ? Z.titleId : void 0),
|
|
125
|
+
"aria-describedby": y ?? (K.description ? Z.descriptionId : void 0),
|
|
126
|
+
...M
|
|
126
127
|
},
|
|
127
|
-
children:
|
|
128
|
+
children: Y
|
|
128
129
|
})
|
|
129
130
|
})
|
|
130
131
|
] });
|
|
131
132
|
}
|
|
132
|
-
function
|
|
133
|
-
let { dialog: t, isOpen: n, domOpen: r, setDomOpen: o, setOpen: c, modal: l, dismissible: u, triggerElement: f } = e, p =
|
|
133
|
+
function N(e) {
|
|
134
|
+
let { dialog: t, isOpen: n, domOpen: r, setDomOpen: o, setOpen: c, modal: l, dismissible: u, triggerElement: f } = e, p = x("imperative"), m = a(), h = u ? "any" : "closerequest";
|
|
134
135
|
s(() => {
|
|
135
136
|
!t || n === r || (o(n), n ? l ? t.showModal() : t.show() : t.close());
|
|
136
137
|
}, [
|
|
@@ -167,7 +168,7 @@ function M(e) {
|
|
|
167
168
|
return r("keydown", (e) => {
|
|
168
169
|
e.key === "Escape" && (p.current = "escape");
|
|
169
170
|
}), r("pointerdown", (e) => {
|
|
170
|
-
i(e, [f]) ? p.current = "trigger" : !i(e, [t]) ||
|
|
171
|
+
i(e, [f]) ? p.current = "trigger" : !i(e, [t]) || P(t, e) ? p.current = "outside-pointer" : p.current = "imperative";
|
|
171
172
|
}), () => e.abort();
|
|
172
173
|
}, [
|
|
173
174
|
n,
|
|
@@ -186,7 +187,7 @@ function M(e) {
|
|
|
186
187
|
if (!t || !n || !u || m) return;
|
|
187
188
|
let e = new AbortController();
|
|
188
189
|
return document.addEventListener("pointerdown", (e) => {
|
|
189
|
-
i(e, [f]) || i(e, [t]) && !
|
|
190
|
+
i(e, [f]) || i(e, [t]) && !P(t, e) || c(!1, {
|
|
190
191
|
reason: "outside-pointer",
|
|
191
192
|
event: e
|
|
192
193
|
});
|
|
@@ -203,30 +204,30 @@ function M(e) {
|
|
|
203
204
|
c
|
|
204
205
|
]);
|
|
205
206
|
}
|
|
206
|
-
function
|
|
207
|
+
function P(e, t) {
|
|
207
208
|
let n = e.getBoundingClientRect();
|
|
208
209
|
return t.clientX < n.left || t.clientX > n.right || t.clientY < n.top || t.clientY > n.bottom;
|
|
209
210
|
}
|
|
210
|
-
function
|
|
211
|
-
let t =
|
|
212
|
-
return s(() => t.register("title"), [t]), /* @__PURE__ */
|
|
211
|
+
function F(e) {
|
|
212
|
+
let t = k("Dialog.Title");
|
|
213
|
+
return s(() => t.register("title"), [t]), /* @__PURE__ */ w(h, {
|
|
213
214
|
id: t.titleId,
|
|
214
215
|
component: "dialog.title",
|
|
215
216
|
...e
|
|
216
217
|
});
|
|
217
218
|
}
|
|
218
|
-
function
|
|
219
|
-
let t =
|
|
220
|
-
return s(() => t.register("description"), [t]), /* @__PURE__ */
|
|
219
|
+
function I(e) {
|
|
220
|
+
let t = k("Dialog.Description");
|
|
221
|
+
return s(() => t.register("description"), [t]), /* @__PURE__ */ w(g, {
|
|
221
222
|
id: t.descriptionId,
|
|
222
223
|
component: "dialog.description",
|
|
223
224
|
...e
|
|
224
225
|
});
|
|
225
226
|
}
|
|
226
|
-
|
|
227
|
-
var
|
|
228
|
-
Title:
|
|
229
|
-
Description:
|
|
230
|
-
},
|
|
227
|
+
F.displayName = "Dialog.Title", I.displayName = "Dialog.Description";
|
|
228
|
+
var L = {
|
|
229
|
+
Title: F,
|
|
230
|
+
Description: I
|
|
231
|
+
}, R = Object.assign(e(A, "Dialog"), L), z = Object.assign(e(j, "AlertDialog"), L);
|
|
231
232
|
//#endregion
|
|
232
|
-
export {
|
|
233
|
+
export { z as AlertDialog, R as default };
|
package/components/menu.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../identity.cjs"),o=require("../keyboard.cjs"),s=require("../placement.cjs"),c=require("../reporting.cjs"),l=require("../layer.cjs"),u=require("./overlay.cjs");let
|
|
1
|
+
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../identity.cjs"),o=require("../keyboard.cjs"),s=require("../placement.cjs"),c=require("../reporting.cjs"),l=require("../layer.cjs"),u=require("./overlay.cjs"),d=require("../motion.cjs");let f=require("react"),p=require("react/jsx-runtime");var m;(function(e){let t=e.ITEM_SELECTOR=`[role="menuitem"],[role="menuitemcheckbox"],[role="menuitemradio"]`;function n(e,t){return t instanceof Element&&t.closest(`[role="menu"]`)===e}e.owns=n;function r(e){return[...e.querySelectorAll(t)].filter(t=>n(e,t))}e.items=r;function i(e){return e.getAttribute(`aria-disabled`)===`true`}e.isDisabled=i;function a(e){return e.getAttribute(`aria-haspopup`)===`menu`}e.isSubTrigger=a;function s(e,t,n){if(e.length!==0)return e[t<0?n>0?0:e.length-1:((t+n)%e.length+e.length)%e.length]}e.step=s;function c(e,t,n){let r=o.t.target(t,n,e.length,t=>e[t].textContent??``);return r<0?void 0:e[r]}e.typeaheadTarget=c})(m||={});var h=m,g=(0,f.createContext)(null);function _(e){let t=(0,f.useContext)(g);if(!t)throw Error(`<${e}> must be rendered inside a <Menu>.`);return t}function v(e){let[t,n]=(0,f.useState)([]);return{panels:t,registerLayer:(0,f.useCallback)(t=>{n(e=>[...e,t]);let r=e?.(t);return()=>{n(e=>e.filter(e=>e!==t)),r?.()}},[e])}}var y=(0,f.createContext)(null);function b(e,t){let{trigger:n,children:r,open:a,defaultOpen:o=!1,onOpenChange:s,label:c,labelledBy:u,side:d=`bottom`,align:m=`start`,offset:_=1,flip:y=!0,matchWidth:b=!1,props:S,...C}=e,w=(0,f.useRef)(`first`),T=i.a(e=>{let t=h.items(e),n=w.current===`last`?t[t.length-1]:t[0];w.current=`first`,(n??e).focus()}),{panels:E,registerLayer:D}=v(),O=l.t({haspopup:`menu`,idPrefix:`menu`,id:C.id,open:a,defaultOpen:o,onOpenChange:s,interaction:{component:`menu`,type:`openChange`},onOpened:T,inside:E}),k=i.a(e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),w.current=e.key===`ArrowUp`?`last`:`first`,O.isOpen&&O.panelElement?T(O.panelElement):O.setOpen(!0,{reason:`trigger`,event:e}))}),A=(0,f.useMemo)(()=>({ref:O.trigger.ref,props:{...O.trigger.props,onKeyDown:k}}),[k,O.trigger]),j=i.a(e=>O.setOpen(!1,e)),M=(0,f.useMemo)(()=>({open:O.isOpen,closeAll:j,registerLayer:D}),[j,O.isOpen,D]);return(0,p.jsxs)(p.Fragment,{children:[n(A),(0,p.jsx)(g.Provider,{value:M,children:(0,p.jsx)(x,{layer:O,side:d,align:m,offset:_,flip:y,matchWidth:b,label:c,labelledBy:u??(c?void 0:O.triggerId),contentProps:S,...C,elementRef:t,children:r})})]})}function x(e){let{layer:n,side:a,align:c,offset:l,flip:m,matchWidth:g,label:v,labelledBy:y,contentProps:b,closeSelf:x,elementRef:S,children:C,...w}=e,{platform:T,isOpen:E,id:D,triggerElement:O,setPanel:k}=n,A=(0,f.useCallback)(e=>{k(e),t.l(S,e)},[k,S]),j=_(`Menu`),M=(0,f.useRef)({query:``,at:0}),N=s.t({side:a,align:c,offset:l,flip:m,matchWidth:g,anchor:O}),P=d.t(C,E,n.panelElement),F={role:`menu`,"aria-label":v,"aria-labelledby":y,tabIndex:-1,onKeyDown:i.a(e=>{let n=e.currentTarget;if(!h.owns(n,e.target))return;let r=h.items(n),i=r.indexOf(document.activeElement),a=t=>{t&&(e.preventDefault(),t.focus())},s=t.m(n)?`ArrowRight`:`ArrowLeft`;switch(e.key){case`ArrowDown`:return a(h.step(r,i,1));case`ArrowUp`:return a(h.step(r,i,-1));case`Home`:return a(r[0]);case`End`:return a(r[r.length-1]);case`Tab`:return j.closeAll({reason:`tab`,event:e});case s:return x?(e.preventDefault(),x({reason:`trigger`,event:e})):void 0}if(o.t.isPrintable(e)){let t=o.t.push(M.current,e.key,e.timeStamp);a(h.typeaheadTarget(r,t,i))}}),onPointerOver:i.a(e=>{let t=e.currentTarget,n=e.target?.closest(h.ITEM_SELECTOR);!n||!h.owns(t,n)||n===document.activeElement||n.focus()}),...b};return T?(0,p.jsx)(r.default,{ref:A,component:`menu`,...w,variant:[w.variant,{topLayer:!0}],...N.layerProps,id:D,props:{popover:`auto`,...F},children:P}):E?(0,p.jsx)(u.default,{contentRef:A,anchor:O,side:a,align:c,offset:l,flip:m,matchWidth:g,component:`menu`,...w,id:D,props:F,children:C}):null}function S(e,o){let{label:s,children:u,disabled:d,side:m=`end`,align:y=`start`,offset:b=0,flip:S=!0,itemProps:w,props:T,...E}=e,D=_(`Menu.Sub`),O=a.t(`menu-sub`),k=i.a(e=>{(h.items(e)[0]??e).focus()}),A=i.a((e,t)=>{e&&t?.focus()}),{panels:j,registerLayer:M}=v(D.registerLayer),N=c.i(`menu.sub`),P=l.t({haspopup:`menu`,idPrefix:`menu-sub`,id:E.id,onOpened:k,onClosing:A,inside:j});n.n(()=>{if(!(!P.isOpen||!P.panelElement))return D.registerLayer(P.panelElement)},[P.isOpen,P.panelElement,D.registerLayer]),n.n(()=>{D.open||P.setOpen(!1,{reason:`imperative`})},[D.open,P.setOpen]),n.n(()=>{if(!P.isOpen)return;let e=new AbortController;return document.addEventListener(`focusin`,e=>{t.p(e,[P.panelElement,P.triggerElement])||P.setOpen(!1,{reason:`imperative`,event:e})},{signal:e.signal}),()=>e.abort()},[P.isOpen,P.panelElement,P.triggerElement,P.setOpen]);let F=i.a(e=>{let n=t.m(e.currentTarget)?`ArrowLeft`:`ArrowRight`;d||e.key!==n||(e.preventDefault(),P.setOpen(!0,{reason:`trigger`,event:e}),N(`openChange`,!0,{reason:`keyboard`,event:e,item:C(s)}))}),I=i.a(e=>{d||P.setOpen(!0,{reason:`trigger`,event:e})}),L=(0,f.useMemo)(()=>({open:P.isOpen,closeAll:D.closeAll,registerLayer:M}),[P.isOpen,D.closeAll,M]);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(r.default,{tag:`button`,ref:d?void 0:P.trigger.ref,component:`menu.item`,variant:{sub:!0},id:O,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":d||void 0,...P.trigger.props,...w,onKeyDown:F,onPointerEnter:I},children:[s,(0,p.jsx)(r.default,{component:`menu.arrow`})]}),!d&&(0,p.jsx)(g.Provider,{value:L,children:(0,p.jsx)(x,{layer:P,side:m,align:y,offset:b,flip:S,matchWidth:!1,labelledBy:O,contentProps:T,closeSelf:e=>P.setOpen(!1,e),...E,elementRef:o,children:u})})]})}var C=(e,t)=>t??(typeof e==`string`?e:void 0);function w(e){let{onSelect:t,disabled:n,closeOnSelect:a=!0,value:o,props:s,children:l,...u}=e,d=_(`Menu.Item`),f=c.i(`menu.item`),m=i.a(e=>{n||(t?.(e),f(`select`,C(l,o),{reason:`select`,event:e}),a&&d.closeAll({reason:`select`,event:e}))});return(0,p.jsx)(r.default,{tag:`button`,component:`menu.item`,...u,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":n||void 0,...s,onClick:m},children:l})}function T(e){let{checked:t,defaultChecked:n=!1,onCheckedChange:a,disabled:o,closeOnSelect:s=!1,value:l,props:u,children:d,...f}=e,m=_(`Menu.CheckboxItem`),[h,g]=i.i({value:t,defaultValue:n,onChange:a}),v=c.i(`menu.checkboxItem`),y=i.a(e=>{o||(g(!h,{reason:`select`,event:e}),v(`checkedChange`,!h,{reason:`select`,event:e,item:C(d,l)}),s&&m.closeAll({reason:`select`,event:e}))});return(0,p.jsxs)(r.default,{tag:`button`,component:`menu.item`,...f,props:{type:`button`,role:`menuitemcheckbox`,tabIndex:-1,"aria-checked":h,"aria-disabled":o||void 0,...u,onClick:y},children:[(0,p.jsx)(r.default,{component:`menu.indicator`,children:h&&(0,p.jsx)(r.default,{component:`menu.check`})}),d]})}function E(e){let{label:t,value:n,defaultValue:r=``,onValueChange:a,children:o,...s}=e,[l,u]=c.a({value:n,defaultValue:r,onChange:a,interaction:{component:`menu.radioGroup`,type:`valueChange`}}),d=i.a((e,t)=>u(e,{reason:`select`,event:t})),m=(0,f.useMemo)(()=>({value:l,select:d}),[l,d]);return(0,p.jsx)(y.Provider,{value:m,children:(0,p.jsx)(O,{label:t,...s,children:o})})}function D(e){let{value:t,disabled:n,closeOnSelect:a=!1,props:o,children:s,...c}=e,l=_(`Menu.RadioItem`),u=(0,f.useContext)(y);if(!u)throw Error(`<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.`);let d=u.value===t,m=i.a(e=>{n||(u.select(t,e),a&&l.closeAll({reason:`select`,event:e}))});return(0,p.jsxs)(r.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitemradio`,tabIndex:-1,"aria-checked":d,"aria-disabled":n||void 0,...o,onClick:m},children:[(0,p.jsx)(r.default,{component:`menu.indicator`,children:d&&(0,p.jsx)(r.default,{component:`menu.dot`})}),s]})}function O(e){let{label:t,props:n,children:i,...o}=e,s=a.t(`menu-group`);return(0,p.jsxs)(r.default,{component:`menu.group`,...o,props:{role:`group`,"aria-labelledby":t?s:void 0,...n},children:[t&&(0,p.jsx)(r.default,{component:`menu.label`,id:s,props:{role:`presentation`},children:t}),i]})}function k(e){let{props:t,...n}=e;return(0,p.jsx)(r.default,{component:`menu.separator`,...n,props:{role:`separator`,...t}})}w.displayName=`Menu.Item`,T.displayName=`Menu.CheckboxItem`,E.displayName=`Menu.RadioGroup`,D.displayName=`Menu.RadioItem`,O.displayName=`Menu.Group`,k.displayName=`Menu.Separator`;var A=Object.assign(e.f(b,`Menu`),{Item:w,CheckboxItem:T,RadioGroup:E,RadioItem:D,Group:O,Separator:k,Sub:e.f(S,`Menu.Sub`)});exports.default=A;
|