@box-kite/react 2.2.7 → 2.2.8

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 (96) hide show
  1. package/BOX_AI_CONTEXT.md +76 -0
  2. package/BOX_KITE_AI_CONTEXT.md +76 -0
  3. package/analytics.cjs +1 -0
  4. package/analytics.d.ts +10 -0
  5. package/analytics.mjs +121 -0
  6. package/behavior.cjs +1 -1
  7. package/behavior.mjs +42 -38
  8. package/box.cjs +1 -1
  9. package/box.d.ts +9 -0
  10. package/box.mjs +17 -16
  11. package/catalog.cjs +1 -1
  12. package/catalog.mjs +8 -0
  13. package/client.cjs +1 -1
  14. package/client.mjs +120 -120
  15. package/components/accordion.cjs +1 -1
  16. package/components/accordion.mjs +19 -10
  17. package/components/agent.cjs +1 -1
  18. package/components/agent.mjs +21 -8
  19. package/components/calendar.cjs +1 -1
  20. package/components/calendar.d.ts +3 -1
  21. package/components/calendar.mjs +154 -142
  22. package/components/combobox.cjs +1 -1
  23. package/components/combobox.mjs +184 -174
  24. package/components/dashboard.cjs +1 -1
  25. package/components/dashboard.mjs +183 -170
  26. package/components/dataGrid/models/columnModel.d.ts +1 -0
  27. package/components/dataGrid/models/gridModel.d.ts +18 -0
  28. package/components/dataGrid/models/rangeModel.d.ts +3 -0
  29. package/components/dataGrid.cjs +3 -3
  30. package/components/dataGrid.mjs +987 -896
  31. package/components/dateField.cjs +1 -1
  32. package/components/dateField.mjs +165 -159
  33. package/components/datePicker.cjs +1 -1
  34. package/components/datePicker.mjs +198 -183
  35. package/components/dialog.cjs +1 -1
  36. package/components/dialog.mjs +38 -33
  37. package/components/dropdown.cjs +1 -1
  38. package/components/dropdown.mjs +107 -93
  39. package/components/form.cjs +1 -1
  40. package/components/form.mjs +22 -18
  41. package/components/menu.cjs +1 -1
  42. package/components/menu.d.ts +2 -0
  43. package/components/menu.mjs +196 -175
  44. package/components/overlay.cjs +1 -1
  45. package/components/overlay.mjs +7 -7
  46. package/components/popover.cjs +1 -1
  47. package/components/popover.mjs +4 -0
  48. package/components/radioGroup.cjs +1 -1
  49. package/components/radioGroup.mjs +10 -5
  50. package/components/slider.cjs +1 -1
  51. package/components/slider.mjs +84 -83
  52. package/components/sortableList.cjs +1 -1
  53. package/components/sortableList.mjs +158 -150
  54. package/components/swipeItem.cjs +1 -1
  55. package/components/swipeItem.mjs +92 -84
  56. package/components/tabs.cjs +1 -1
  57. package/components/tabs.mjs +10 -5
  58. package/components/timeZoneSelect.cjs +1 -1
  59. package/components/timeZoneSelect.mjs +40 -35
  60. package/components/toaster.cjs +1 -1
  61. package/components/toaster.mjs +151 -113
  62. package/dataGridDateParts.cjs +1 -1
  63. package/dataGridDateParts.mjs +56 -55
  64. package/dataGridList.cjs +1 -1
  65. package/dataGridList.mjs +430 -429
  66. package/effects.cjs +1 -1
  67. package/effects.mjs +1 -1
  68. package/interactionListening.cjs +1 -0
  69. package/interactionListening.mjs +117 -0
  70. package/interactions.cjs +1 -0
  71. package/interactions.mjs +25 -0
  72. package/layer.cjs +1 -1
  73. package/layer.mjs +68 -66
  74. package/package.json +132 -68
  75. package/placement.cjs +1 -1
  76. package/placement.mjs +10 -10
  77. package/platform.cjs +1 -1
  78. package/platform.mjs +44 -25
  79. package/react/interactions/interactions.d.ts +30 -0
  80. package/react/popover/usePopoverLayer.d.ts +3 -0
  81. package/react/useStyles.d.ts +8 -1
  82. package/react-shared.cjs +1 -1
  83. package/react-shared.mjs +49 -48
  84. package/reporting.cjs +1 -0
  85. package/reporting.mjs +51 -0
  86. package/scrolling.cjs +1 -1
  87. package/scrolling.mjs +1 -1
  88. package/supabase/functions/collect/index.d.ts +30 -0
  89. package/supabase/functions/collect/index.test.d.ts +1 -0
  90. package/utils/analytics/analytics.d.ts +72 -0
  91. package/utils/analytics/analyticsIdentity.d.ts +13 -0
  92. package/utils/interactions/componentAttribute.d.ts +6 -0
  93. package/utils/interactions/interactionChannel.d.ts +35 -0
  94. package/utils/interactions/interactionJson.d.ts +6 -0
  95. package/utils/interactions/interactionListening.d.ts +6 -0
  96. package/utils/interactions/interactionTypes.d.ts +224 -0
package/effects.cjs CHANGED
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime.cjs"),t=require("./platform.cjs");let n=require("react");n=e.t(n,1);var r=t.r(),i=r?n.useLayoutEffect:n.useEffect,a=r?n.default.useInsertionEffect??n.useLayoutEffect:n.useEffect;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
1
+ const e=require("./rolldown-runtime.cjs"),t=require("./platform.cjs");let n=require("react");n=e.t(n,1);var r=t.i(),i=r?n.useLayoutEffect:n.useEffect,a=r?n.default.useInsertionEffect??n.useLayoutEffect:n.useEffect;Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
package/effects.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { r as e } from "./platform.mjs";
1
+ import { i as e } from "./platform.mjs";
2
2
  import t, { useEffect as n, useLayoutEffect as r } from "react";
3
3
  //#region src/react/effects.ts
4
4
  var i = e(), a = i ? r : n, o = i ? t.useInsertionEffect ?? r : n;
@@ -0,0 +1 @@
1
+ const e=require("./platform.cjs");function t(e){let t=new WeakSet,n=JSON.stringify(e,(e,n)=>{if(typeof n==`bigint`)return n.toString();if(typeof n!=`object`||!n)return n;if(n instanceof Set)return Array.from(n);if(n instanceof Map)return Object.fromEntries(n);if(t.has(n))return;let r=Object.getPrototypeOf(n);if(!(!Array.isArray(n)&&(r!==Object.prototype&&r!==null||`$$typeof`in n)))return t.add(n),n});return n===void 0?void 0:JSON.parse(n)}var n=[`click`,`dblclick`,`keydown`,`pointerdown`,`pointerup`,`change`,`submit`,`copy`,`paste`,`focusout`],r=[`imperative`,`programmatic`,`timeout`],i=`a[href],button,input,select,textarea,summary,label,[tabindex],[role=option],[role=button]`;function a(e){let t=globalThis.scheduler;t?.postTask?t.postTask(e,{priority:`background`}):setTimeout(e,0)}function o(e){typeof reportError==`function`?reportError(e):setTimeout(()=>{throw e})}var s=e=>typeof Element<`u`&&e instanceof Element?e:void 0,c=e=>e?.closest(i)??void 0;function l({kind:e,input:n,event:i,handler:a,timeStamp:o,time:l,url:u},d){let f=d?[]:n.content??[],p=t(n.details&&Object.fromEntries(Object.entries(n.details).filter(([e])=>!f.includes(e)))),m=n.source??(n.reason&&r.includes(n.reason)?`app`:`user`);return{kind:e,component:n.component,type:n.type,reason:n.reason,value:f.includes(`value`)?void 0:t(n.value),details:p&&Object.keys(p).length>0?p:void 0,source:m,event:i,target:s(a)??c(s(i?.target))??n.target??s(i?.target),timeStamp:o,time:l,url:d?u:u.split(/[?#]/)[0]}}function u(t){let r=!1,i=()=>{r=!1;let e=t.queue.splice(0);if(t.listeners.size!==0)for(let n of e){if(n.kind===`dom`&&e.some(e=>e.kind!==`dom`&&e.event===n.event))continue;let r,i;t.listeners.forEach((e,t)=>{let a=e.content?r??=l(n,!0):i??=l(n,!1);try{t(a)}catch(e){o(e)}})}},u=()=>{r||(r=!0,a(i))};if(t.flush=i,t.schedule=u,t.queue.length>0&&u(),typeof addEventListener!=`function`)return;let d=n=>{let r=s(n.target);if(!r||t.listeners.size===0)return;if(!e.m()){e.a()&&e._()&&!t.warned&&(t.warned=!0,console.warn(`[box-kite] Box.onInteraction hears no clicks without data-bk: write Box.configure({ componentAttribute: true }).`));return}let i=c(r),a=(i??r).closest(`[data-bk]`);if(!a)return;let o=r instanceof HTMLInputElement&&(r.type===`checkbox`||r.type===`radio`);t.queue.push({kind:`dom`,input:{component:a.getAttribute(`data-bk`)??``,type:n.type,value:n.type===`change`&&o?r.checked:void 0,details:{interactive:i!==void 0},target:i??a,source:n.isTrusted?`user`:`app`},event:n,timeStamp:performance.now(),time:Date.now(),url:location.href}),u()},f=!1,p=e=>{t.dispatching=e,f||(f=!0,setTimeout(()=>{f=!1,t.dispatching=void 0},0)),(e.type===`click`||e.type===`change`)&&d(e)};n.forEach(e=>{document.addEventListener(e,p,!0),addEventListener(e,e=>{t.dispatching===e&&(t.dispatching=void 0)})}),addEventListener(`pagehide`,i)}exports.default=u;
@@ -0,0 +1,117 @@
1
+ import { _ as e, a as t, m as n } from "./platform.mjs";
2
+ //#region src/utils/interactions/interactionJson.ts
3
+ function r(e) {
4
+ let t = /* @__PURE__ */ new WeakSet(), n = JSON.stringify(e, (e, n) => {
5
+ if (typeof n == "bigint") return n.toString();
6
+ if (typeof n != "object" || !n) return n;
7
+ if (n instanceof Set) return Array.from(n);
8
+ if (n instanceof Map) return Object.fromEntries(n);
9
+ if (t.has(n)) return;
10
+ let r = Object.getPrototypeOf(n);
11
+ if (!(!Array.isArray(n) && (r !== Object.prototype && r !== null || "$$typeof" in n))) return t.add(n), n;
12
+ });
13
+ return n === void 0 ? void 0 : JSON.parse(n);
14
+ }
15
+ //#endregion
16
+ //#region src/utils/interactions/interactionListening.ts
17
+ var i = [
18
+ "click",
19
+ "dblclick",
20
+ "keydown",
21
+ "pointerdown",
22
+ "pointerup",
23
+ "change",
24
+ "submit",
25
+ "copy",
26
+ "paste",
27
+ "focusout"
28
+ ], a = [
29
+ "imperative",
30
+ "programmatic",
31
+ "timeout"
32
+ ], o = "a[href],button,input,select,textarea,summary,label,[tabindex],[role=option],[role=button]";
33
+ function s(e) {
34
+ let t = globalThis.scheduler;
35
+ t?.postTask ? t.postTask(e, { priority: "background" }) : setTimeout(e, 0);
36
+ }
37
+ function c(e) {
38
+ typeof reportError == "function" ? reportError(e) : setTimeout(() => {
39
+ throw e;
40
+ });
41
+ }
42
+ var l = (e) => typeof Element < "u" && e instanceof Element ? e : void 0, u = (e) => e?.closest(o) ?? void 0;
43
+ function d({ kind: e, input: t, event: n, handler: i, timeStamp: o, time: s, url: c }, d) {
44
+ let f = d ? [] : t.content ?? [], p = r(t.details && Object.fromEntries(Object.entries(t.details).filter(([e]) => !f.includes(e)))), m = t.source ?? (t.reason && a.includes(t.reason) ? "app" : "user");
45
+ return {
46
+ kind: e,
47
+ component: t.component,
48
+ type: t.type,
49
+ reason: t.reason,
50
+ value: f.includes("value") ? void 0 : r(t.value),
51
+ details: p && Object.keys(p).length > 0 ? p : void 0,
52
+ source: m,
53
+ event: n,
54
+ target: l(i) ?? u(l(n?.target)) ?? t.target ?? l(n?.target),
55
+ timeStamp: o,
56
+ time: s,
57
+ url: d ? c : c.split(/[?#]/)[0]
58
+ };
59
+ }
60
+ function f(r) {
61
+ let a = !1, o = () => {
62
+ a = !1;
63
+ let e = r.queue.splice(0);
64
+ if (r.listeners.size !== 0) for (let t of e) {
65
+ if (t.kind === "dom" && e.some((e) => e.kind !== "dom" && e.event === t.event)) continue;
66
+ let n, i;
67
+ r.listeners.forEach((e, r) => {
68
+ let a = e.content ? n ??= d(t, !0) : i ??= d(t, !1);
69
+ try {
70
+ r(a);
71
+ } catch (e) {
72
+ c(e);
73
+ }
74
+ });
75
+ }
76
+ }, f = () => {
77
+ a || (a = !0, s(o));
78
+ };
79
+ if (r.flush = o, r.schedule = f, r.queue.length > 0 && f(), typeof addEventListener != "function") return;
80
+ let p = (i) => {
81
+ let a = l(i.target);
82
+ if (!a || r.listeners.size === 0) return;
83
+ if (!n()) {
84
+ t() && e() && !r.warned && (r.warned = !0, console.warn("[box-kite] Box.onInteraction hears no clicks without data-bk: write Box.configure({ componentAttribute: true })."));
85
+ return;
86
+ }
87
+ let o = u(a), s = (o ?? a).closest("[data-bk]");
88
+ if (!s) return;
89
+ let c = a instanceof HTMLInputElement && (a.type === "checkbox" || a.type === "radio");
90
+ r.queue.push({
91
+ kind: "dom",
92
+ input: {
93
+ component: s.getAttribute("data-bk") ?? "",
94
+ type: i.type,
95
+ value: i.type === "change" && c ? a.checked : void 0,
96
+ details: { interactive: o !== void 0 },
97
+ target: o ?? s,
98
+ source: i.isTrusted ? "user" : "app"
99
+ },
100
+ event: i,
101
+ timeStamp: performance.now(),
102
+ time: Date.now(),
103
+ url: location.href
104
+ }), f();
105
+ }, m = !1, h = (e) => {
106
+ r.dispatching = e, m || (m = !0, setTimeout(() => {
107
+ m = !1, r.dispatching = void 0;
108
+ }, 0)), (e.type === "click" || e.type === "change") && p(e);
109
+ };
110
+ i.forEach((e) => {
111
+ document.addEventListener(e, h, !0), addEventListener(e, (e) => {
112
+ r.dispatching === e && (r.dispatching = void 0);
113
+ });
114
+ }), addEventListener("pagehide", o);
115
+ }
116
+ //#endregion
117
+ export { f as default };
@@ -0,0 +1 @@
1
+ const e=require("./platform.cjs");var t=globalThis[Symbol.for(`box-kite.interactions@2`)]??={listeners:new Map,queue:[]};function n(e,n){if(t.listeners.size===0)return;let r=n.event;t.queue.push({kind:e,input:n,event:r?.nativeEvent??r??t.dispatching,handler:r?.nativeEvent&&r.currentTarget,timeStamp:performance.now(),time:Date.now(),url:location.href}),t.schedule?.()}function r(n,r={}){return e.r()?(t.listeners.set(n,r),t.loading||(t.loading=!0,Promise.resolve().then(()=>require("./interactionListening.cjs")).then(({default:e})=>e(t))),()=>void t.listeners.delete(n)):()=>{}}var i=()=>t.flush?.(),a=e=>n(`change`,e),o=e=>n(`custom`,e);Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
@@ -0,0 +1,25 @@
1
+ import { r as e } from "./platform.mjs";
2
+ //#region src/utils/interactions/interactionChannel.ts
3
+ var t = globalThis[Symbol.for("box-kite.interactions@2")] ??= {
4
+ listeners: /* @__PURE__ */ new Map(),
5
+ queue: []
6
+ };
7
+ function n(e, n) {
8
+ if (t.listeners.size === 0) return;
9
+ let r = n.event;
10
+ t.queue.push({
11
+ kind: e,
12
+ input: n,
13
+ event: r?.nativeEvent ?? r ?? t.dispatching,
14
+ handler: r?.nativeEvent && r.currentTarget,
15
+ timeStamp: performance.now(),
16
+ time: Date.now(),
17
+ url: location.href
18
+ }), t.schedule?.();
19
+ }
20
+ function r(n, r = {}) {
21
+ return e() ? (t.listeners.set(n, r), t.loading || (t.loading = !0, import("./interactionListening.mjs").then(({ default: e }) => e(t))), () => void t.listeners.delete(n)) : () => {};
22
+ }
23
+ var i = () => t.flush?.(), a = (e) => n("change", e), o = (e) => n("custom", e);
24
+ //#endregion
25
+ export { r as i, i as n, o as r, a as t };
package/layer.cjs CHANGED
@@ -1 +1 @@
1
- const e=require("./platform.cjs"),t=require("./effects.cjs"),n=require("./behavior.cjs"),r=require("./identity.cjs");let i=require("react");var a=()=>()=>{},o=()=>!0;function s(){return(0,i.useSyncExternalStore)(a,e.o,o)}function c(a){let{haspopup:o,id:c,idPrefix:l,open:u,defaultOpen:d=!1,onOpenChange:f,onOpened:p,onClosing:m,inside:h}=a,g=r.t(l),_=c??g,[v,y]=n.i({value:u,defaultValue:d,onChange:f}),[b,x]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),w=s(),[T,E]=(0,i.useState)(!1),[D,O]=(0,i.useState)(),k=(0,i.useRef)(`imperative`),A=(0,i.useRef)(!1),j=n.a(p),M=n.a(m),N=n.a(e=>{let t=e.newState===`open`,n=e.currentTarget;if(t&&u===!1){e.preventDefault(),setTimeout(()=>y(!0,{reason:`trigger`,event:e}));return}t||(A.current=n.contains(document.activeElement),M(A.current,b)),E(t);let r=t?`trigger`:k.current;k.current=`imperative`,y(t,{reason:r,event:e})}),P=n.a(e=>{let t=e.currentTarget;e.newState===`open`&&j(t)});t.n(()=>{if(!w||!S)return;let e=new AbortController;return S.addEventListener(`beforetoggle`,N,{signal:e.signal}),S.addEventListener(`toggle`,P,{signal:e.signal}),()=>e.abort()},[w,S,N,P]),t.n(()=>{!w||!e.o()||!S||v===T||(v?S.showPopover():S.hidePopover())},[v,T,S,w]),t.n(()=>{if(!w||!v)return;let t=new AbortController,n=(e,n)=>document.addEventListener(e,n,{signal:t.signal,capture:!0});return n(`keydown`,e=>{e.key===`Escape`&&(k.current=`escape`)}),n(`pointerdown`,t=>{let n=!!b&&e.u(t,[b]);k.current=n?`trigger`:`outside-pointer`}),()=>t.abort()},[w,v,b]),t.n(()=>{b&&(b.id||b.setAttribute(`id`,`${_}-trigger`),O(b.id))},[b,_]),t.n(()=>{if(!(!w||!b))return b.setAttribute(`popovertarget`,_),()=>b.removeAttribute(`popovertarget`)},[w,b,_]),t.n(()=>{w||!v||!S||j(S)},[w,v,S,j]),n.r({enabled:!w&&v,inside:[S,b,...h??[]],onDismiss:(e,t)=>y(!1,{reason:e,event:t})}),n.n({enabled:!w&&v,returnTo:b});let F=n.a(e=>{y(e=>!e,{reason:`trigger`,event:e})});return{platform:w,isOpen:v,setOpen:y,id:_,trigger:(0,i.useMemo)(()=>({ref:x,props:{"aria-expanded":v,"aria-haspopup":o,"aria-controls":v?_:void 0,...w?{}:{onClick:F}}}),[F,o,v,_,w]),triggerElement:b,triggerId:D,setPanel:C,panelElement:S}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return c}});
1
+ const e=require("./platform.cjs"),t=require("./effects.cjs"),n=require("./behavior.cjs"),r=require("./identity.cjs"),i=require("./reporting.cjs");let a=require("react");var o=()=>()=>{},s=()=>!0;function c(){return(0,a.useSyncExternalStore)(o,e.c,s)}function l(o){let{haspopup:s,id:l,idPrefix:u,open:d,defaultOpen:f=!1,onOpenChange:p,onOpened:m,onClosing:h,inside:g,interaction:_}=o,v=r.t(u),y=l??v,[b,x]=i.a({value:d,defaultValue:f,onChange:p,interaction:_}),[S,C]=(0,a.useState)(null),[w,T]=(0,a.useState)(null),E=c(),[D,O]=(0,a.useState)(!1),[k,A]=(0,a.useState)(),j=(0,a.useRef)(`imperative`),M=(0,a.useRef)(!1),N=n.a(m),P=n.a(h),F=n.a(e=>{let t=e.newState===`open`,n=e.currentTarget;if(t&&d===!1){e.preventDefault(),setTimeout(()=>x(!0,{reason:`trigger`,event:e}));return}t||(M.current=n.contains(document.activeElement),P(M.current,S)),O(t);let r=t?`trigger`:j.current;j.current=`imperative`,x(t,{reason:r,event:e})}),I=n.a(e=>{let t=e.currentTarget;e.newState===`open`&&N(t)});t.n(()=>{if(!E||!w)return;let e=new AbortController;return w.addEventListener(`beforetoggle`,F,{signal:e.signal}),w.addEventListener(`toggle`,I,{signal:e.signal}),()=>e.abort()},[E,w,F,I]),t.n(()=>{!E||!e.c()||!w||b===D||(b?w.showPopover():w.hidePopover())},[b,D,w,E]),t.n(()=>{if(!E||!b)return;let t=new AbortController,n=(e,n)=>document.addEventListener(e,n,{signal:t.signal,capture:!0});return n(`keydown`,e=>{e.key===`Escape`&&(j.current=`escape`)}),n(`pointerdown`,t=>{let n=!!S&&e.f(t,[S]);j.current=n?`trigger`:`outside-pointer`}),()=>t.abort()},[E,b,S]),t.n(()=>{S&&(S.id||S.setAttribute(`id`,`${y}-trigger`),A(S.id))},[S,y]),t.n(()=>{if(!(!E||!S))return S.setAttribute(`popovertarget`,y),()=>S.removeAttribute(`popovertarget`)},[E,S,y]),t.n(()=>{E||!b||!w||N(w)},[E,b,w,N]),n.r({enabled:!E&&b,inside:[w,S,...g??[]],onDismiss:(e,t)=>x(!1,{reason:e,event:t})}),n.n({enabled:!E&&b,returnTo:S});let L=n.a(e=>{x(e=>!e,{reason:`trigger`,event:e})});return{platform:E,isOpen:b,setOpen:x,id:y,trigger:(0,a.useMemo)(()=>({ref:C,props:{"aria-expanded":b,"aria-haspopup":s,"aria-controls":b?y:void 0,...E?{}:{onClick:L}}}),[L,s,b,y,E]),triggerElement:S,triggerId:k,setPanel:T,panelElement:w}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
package/layer.mjs CHANGED
@@ -1,7 +1,8 @@
1
- import { o as e, u as t } from "./platform.mjs";
1
+ import { c as e, f as t } from "./platform.mjs";
2
2
  import { n } from "./effects.mjs";
3
- import { a as r, i, n as a, r as o } from "./behavior.mjs";
4
- import { t as s } from "./identity.mjs";
3
+ import { a as r, n as i, r as a } from "./behavior.mjs";
4
+ import { t as o } from "./identity.mjs";
5
+ import { a as s } from "./reporting.mjs";
5
6
  import { useMemo as c, useRef as l, useState as u, useSyncExternalStore as d } from "react";
6
7
  //#region src/react/popover/useTopLayer.ts
7
8
  var f = () => () => {}, p = () => !0;
@@ -11,121 +12,122 @@ function m() {
11
12
  //#endregion
12
13
  //#region src/react/popover/usePopoverLayer.ts
13
14
  function h(d) {
14
- let { haspopup: f, id: p, idPrefix: h, open: g, defaultOpen: _ = !1, onOpenChange: v, onOpened: y, onClosing: b, inside: x } = d, S = s(h), C = p ?? S, [w, T] = i({
15
+ let { haspopup: f, id: p, idPrefix: h, open: g, defaultOpen: _ = !1, onOpenChange: v, onOpened: y, onClosing: b, inside: x, interaction: S } = d, C = o(h), w = p ?? C, [T, E] = s({
15
16
  value: g,
16
17
  defaultValue: _,
17
- onChange: v
18
- }), [E, D] = u(null), [O, k] = u(null), A = m(), [j, M] = u(!1), [N, P] = u(), F = l("imperative"), I = l(!1), L = r(y), R = r(b), z = r((e) => {
18
+ onChange: v,
19
+ interaction: S
20
+ }), [D, O] = u(null), [k, A] = u(null), j = m(), [M, N] = u(!1), [P, F] = u(), I = l("imperative"), L = l(!1), R = r(y), z = r(b), B = r((e) => {
19
21
  let t = e.newState === "open", n = e.currentTarget;
20
22
  if (t && g === !1) {
21
- e.preventDefault(), setTimeout(() => T(!0, {
23
+ e.preventDefault(), setTimeout(() => E(!0, {
22
24
  reason: "trigger",
23
25
  event: e
24
26
  }));
25
27
  return;
26
28
  }
27
- t || (I.current = n.contains(document.activeElement), R(I.current, E)), M(t);
28
- let r = t ? "trigger" : F.current;
29
- F.current = "imperative", T(t, {
29
+ t || (L.current = n.contains(document.activeElement), z(L.current, D)), N(t);
30
+ let r = t ? "trigger" : I.current;
31
+ I.current = "imperative", E(t, {
30
32
  reason: r,
31
33
  event: e
32
34
  });
33
- }), B = r((e) => {
35
+ }), V = r((e) => {
34
36
  let t = e.currentTarget;
35
- e.newState === "open" && L(t);
37
+ e.newState === "open" && R(t);
36
38
  });
37
39
  n(() => {
38
- if (!A || !O) return;
40
+ if (!j || !k) return;
39
41
  let e = new AbortController();
40
- return O.addEventListener("beforetoggle", z, { signal: e.signal }), O.addEventListener("toggle", B, { signal: e.signal }), () => e.abort();
42
+ return k.addEventListener("beforetoggle", B, { signal: e.signal }), k.addEventListener("toggle", V, { signal: e.signal }), () => e.abort();
41
43
  }, [
42
- A,
43
- O,
44
- z,
45
- B
44
+ j,
45
+ k,
46
+ B,
47
+ V
46
48
  ]), n(() => {
47
- !A || !e() || !O || w === j || (w ? O.showPopover() : O.hidePopover());
49
+ !j || !e() || !k || T === M || (T ? k.showPopover() : k.hidePopover());
48
50
  }, [
49
- w,
50
- j,
51
- O,
52
- A
51
+ T,
52
+ M,
53
+ k,
54
+ j
53
55
  ]), n(() => {
54
- if (!A || !w) return;
56
+ if (!j || !T) return;
55
57
  let e = new AbortController(), n = (t, n) => document.addEventListener(t, n, {
56
58
  signal: e.signal,
57
59
  capture: !0
58
60
  });
59
61
  return n("keydown", (e) => {
60
- e.key === "Escape" && (F.current = "escape");
62
+ e.key === "Escape" && (I.current = "escape");
61
63
  }), n("pointerdown", (e) => {
62
- let n = !!E && t(e, [E]);
63
- F.current = n ? "trigger" : "outside-pointer";
64
+ let n = !!D && t(e, [D]);
65
+ I.current = n ? "trigger" : "outside-pointer";
64
66
  }), () => e.abort();
65
67
  }, [
66
- A,
67
- w,
68
- E
68
+ j,
69
+ T,
70
+ D
69
71
  ]), n(() => {
70
- E && (E.id || E.setAttribute("id", `${C}-trigger`), P(E.id));
71
- }, [E, C]), n(() => {
72
- if (!(!A || !E)) return E.setAttribute("popovertarget", C), () => E.removeAttribute("popovertarget");
72
+ D && (D.id || D.setAttribute("id", `${w}-trigger`), F(D.id));
73
+ }, [D, w]), n(() => {
74
+ if (!(!j || !D)) return D.setAttribute("popovertarget", w), () => D.removeAttribute("popovertarget");
73
75
  }, [
74
- A,
75
- E,
76
- C
76
+ j,
77
+ D,
78
+ w
77
79
  ]), n(() => {
78
- A || !w || !O || L(O);
80
+ j || !T || !k || R(k);
79
81
  }, [
80
- A,
81
- w,
82
- O,
83
- L
84
- ]), o({
85
- enabled: !A && w,
82
+ j,
83
+ T,
84
+ k,
85
+ R
86
+ ]), a({
87
+ enabled: !j && T,
86
88
  inside: [
87
- O,
88
- E,
89
+ k,
90
+ D,
89
91
  ...x ?? []
90
92
  ],
91
- onDismiss: (e, t) => T(!1, {
93
+ onDismiss: (e, t) => E(!1, {
92
94
  reason: e,
93
95
  event: t
94
96
  })
95
- }), a({
96
- enabled: !A && w,
97
- returnTo: E
97
+ }), i({
98
+ enabled: !j && T,
99
+ returnTo: D
98
100
  });
99
- let V = r((e) => {
100
- T((e) => !e, {
101
+ let H = r((e) => {
102
+ E((e) => !e, {
101
103
  reason: "trigger",
102
104
  event: e
103
105
  });
104
106
  });
105
107
  return {
106
- platform: A,
107
- isOpen: w,
108
- setOpen: T,
109
- id: C,
108
+ platform: j,
109
+ isOpen: T,
110
+ setOpen: E,
111
+ id: w,
110
112
  trigger: c(() => ({
111
- ref: D,
113
+ ref: O,
112
114
  props: {
113
- "aria-expanded": w,
115
+ "aria-expanded": T,
114
116
  "aria-haspopup": f,
115
- "aria-controls": w ? C : void 0,
116
- ...A ? {} : { onClick: V }
117
+ "aria-controls": T ? w : void 0,
118
+ ...j ? {} : { onClick: H }
117
119
  }
118
120
  }), [
119
- V,
121
+ H,
120
122
  f,
123
+ T,
121
124
  w,
122
- C,
123
- A
125
+ j
124
126
  ]),
125
- triggerElement: E,
126
- triggerId: N,
127
- setPanel: k,
128
- panelElement: O
127
+ triggerElement: D,
128
+ triggerId: P,
129
+ setPanel: A,
130
+ panelElement: k
129
131
  };
130
132
  }
131
133
  //#endregion