@box-kite/react 2.2.7 → 2.2.9

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 +160 -149
  33. package/components/datePicker.cjs +1 -1
  34. package/components/datePicker.mjs +226 -206
  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
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../client.cjs"),t=require("../platform.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../identity.cjs"),o=require("./semantics.cjs");let s=require("react"),c=require("react/jsx-runtime");var l=0;function u(r){let{classNames:i,styleElements:a}=e.i({overflow:`hidden`},!1),o=i.slice(1).join(` `);return n.n(()=>{let e=t.n();if(!(!r||!e||!o))return l+=1,e.classList.add(o),()=>{--l,l===0&&e.classList.remove(o)}},[r,o]),a}var d=(0,s.createContext)(null);function f(e){let t=(0,s.useContext)(d);if(!t)throw Error(`<${e}> must be rendered inside a <Dialog>.`);return t}function p(e){return(0,c.jsx)(h,{role:`dialog`,...e})}function m(e){return(0,c.jsx)(h,{role:`alertdialog`,...e,modal:!0,dismissible:!1})}function h(e){let{role:o,trigger:l,children:f,open:p,defaultOpen:m=!1,onOpenChange:h,label:_,labelledBy:v,describedBy:y,modal:b=!0,dismissible:x=!0,lockScroll:S=b,initialFocus:C,props:w,...T}=e,E=a.t(`dialog`),D=T.id??E,[O,k]=i.i({value:p,defaultValue:m,onChange:h}),[A,j]=(0,s.useState)(null),[M,N]=(0,s.useState)(null),[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)({title:0,description:0}),R=u(O&&S);i.n({enabled:O,returnTo:M});let z=(0,s.useCallback)(e=>(L(t=>({...t,[e]:t[e]+1})),()=>L(t=>({...t,[e]:t[e]-1}))),[]),B=(0,s.useMemo)(()=>({titleId:`${D}-title`,descriptionId:`${D}-description`,register:z}),[D,z]);g({dialog:A,isOpen:O,domOpen:P,setDomOpen:F,setOpen:k,modal:b,dismissible:x,triggerElement:M}),n.n(()=>{let e=t.l(C);!O||!e||e.focus()},[O,C]);let V=i.a(e=>{k(e=>!e,{reason:`trigger`,event:e})}),H=(0,s.useMemo)(()=>({ref:N,props:{"aria-expanded":O,"aria-haspopup":`dialog`,"aria-controls":O?D:void 0,onClick:V}}),[D,V,O]),U=T;return(0,c.jsxs)(c.Fragment,{children:[R,l?.(H),(0,c.jsx)(d.Provider,{value:B,children:(0,c.jsx)(r.default,{ref:j,tag:`dialog`,component:`dialog`,...U,id:D,props:{role:o,"aria-label":I.title||v?void 0:_,"aria-labelledby":v??(I.title?B.titleId:void 0),"aria-describedby":y??(I.description?B.descriptionId:void 0),...w},children:f})})]})}function g(e){let{dialog:r,isOpen:a,domOpen:o,setDomOpen:c,setOpen:l,modal:u,dismissible:d,triggerElement:f}=e,p=(0,s.useRef)(`imperative`),m=t.a(),h=d?`any`:`closerequest`;n.n(()=>{!r||a===o||(c(a),a?u?r.showModal():r.show():r.close())},[r,a,o,u,c]),n.n(()=>{if(!r)return;let e=new AbortController;return r.addEventListener(`close`,e=>{c(!1),l(!1,{reason:p.current,event:e}),p.current=`imperative`},{signal:e.signal}),()=>e.abort()},[r,c,l]),n.n(()=>{if(!(!r||!m))return r.setAttribute(`closedby`,h),()=>r.removeAttribute(`closedby`)},[r,m,h]),n.n(()=>{if(!a||!r)return;let e=new AbortController,n=(t,n)=>document.addEventListener(t,n,{signal:e.signal,capture:!0});return n(`keydown`,e=>{e.key===`Escape`&&(p.current=`escape`)}),n(`pointerdown`,e=>{t.u(e,[f])?p.current=`trigger`:!t.u(e,[r])||_(r,e)?p.current=`outside-pointer`:p.current=`imperative`}),()=>e.abort()},[a,r,f]),i.r({enabled:a&&!u&&!m,inside:[r],escapeKey:!0,outsidePointer:!1,onDismiss:(e,t)=>l(!1,{reason:`escape`,event:t})}),n.n(()=>{if(!r||!a||!d||m)return;let e=new AbortController;return document.addEventListener(`pointerdown`,e=>{t.u(e,[f])||t.u(e,[r])&&!_(r,e)||l(!1,{reason:`outside-pointer`,event:e})},{signal:e.signal,capture:!0}),()=>e.abort()},[r,a,d,m,f,l])}function _(e,t){let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function v(e){let t=f(`Dialog.Title`);return n.n(()=>t.register(`title`),[t]),(0,c.jsx)(o.H2,{id:t.titleId,component:`dialog.title`,...e})}function y(e){let t=f(`Dialog.Description`);return n.n(()=>t.register(`description`),[t]),(0,c.jsx)(o.P,{id:t.descriptionId,component:`dialog.description`,...e})}v.displayName=`Dialog.Title`,y.displayName=`Dialog.Description`;var b={Title:v,Description:y},x=Object.assign(p,b),S=Object.assign(m,b);p.displayName=`Dialog`,m.displayName=`AlertDialog`,exports.AlertDialog=S,exports.default=x;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../client.cjs"),n=require("../effects.cjs"),r=require("../box.cjs"),i=require("../behavior.cjs"),a=require("../identity.cjs"),o=require("../reporting.cjs"),s=require("./semantics.cjs");let c=require("react"),l=require("react/jsx-runtime");var u=0;function d(r){let{classNames:i,styleElements:a}=t.i({overflow:`hidden`},!1),o=i.slice(1).join(` `);return n.n(()=>{let t=e.n();if(!(!r||!t||!o))return u+=1,t.classList.add(o),()=>{--u,u===0&&t.classList.remove(o)}},[r,o]),a}var f=(0,c.createContext)(null);function p(e){let t=(0,c.useContext)(f);if(!t)throw Error(`<${e}> must be rendered inside a <Dialog>.`);return t}function m(e){return(0,l.jsx)(g,{role:`dialog`,...e})}function h(e){return(0,l.jsx)(g,{role:`alertdialog`,...e,modal:!0,dismissible:!1})}function g(t){let{role:s,trigger:u,children:p,open:m,defaultOpen:h=!1,onOpenChange:g,label:v,labelledBy:y,describedBy:b,modal:x=!0,dismissible:S=!0,lockScroll:C=x,initialFocus:w,props:T,...E}=t,D=a.t(`dialog`),O=E.id??D,[k,A]=o.a({value:m,defaultValue:h,onChange:g,interaction:{component:s===`alertdialog`?`alertDialog`:`dialog`,type:`openChange`}}),[j,M]=(0,c.useState)(null),[N,P]=(0,c.useState)(null),[F,I]=(0,c.useState)(!1),[L,R]=(0,c.useState)({title:0,description:0}),z=d(k&&C);i.n({enabled:k,returnTo:N});let B=(0,c.useCallback)(e=>(R(t=>({...t,[e]:t[e]+1})),()=>R(t=>({...t,[e]:t[e]-1}))),[]),V=(0,c.useMemo)(()=>({titleId:`${O}-title`,descriptionId:`${O}-description`,register:B}),[O,B]);_({dialog:j,isOpen:k,domOpen:F,setDomOpen:I,setOpen:A,modal:x,dismissible:S,triggerElement:N}),n.n(()=>{let t=e.d(w);!k||!t||t.focus()},[k,w]);let H=i.a(e=>{A(e=>!e,{reason:`trigger`,event:e})}),U=(0,c.useMemo)(()=>({ref:P,props:{"aria-expanded":k,"aria-haspopup":`dialog`,"aria-controls":k?O:void 0,onClick:H}}),[O,H,k]),W=E;return(0,l.jsxs)(l.Fragment,{children:[z,u?.(U),(0,l.jsx)(f.Provider,{value:V,children:(0,l.jsx)(r.default,{ref:M,tag:`dialog`,component:`dialog`,...W,id:O,props:{role:s,"aria-label":L.title||y?void 0:v,"aria-labelledby":y??(L.title?V.titleId:void 0),"aria-describedby":b??(L.description?V.descriptionId:void 0),...T},children:p})})]})}function _(t){let{dialog:r,isOpen:a,domOpen:o,setDomOpen:s,setOpen:l,modal:u,dismissible:d,triggerElement:f}=t,p=(0,c.useRef)(`imperative`),m=e.s(),h=d?`any`:`closerequest`;n.n(()=>{!r||a===o||(s(a),a?u?r.showModal():r.show():r.close())},[r,a,o,u,s]),n.n(()=>{if(!r)return;let e=new AbortController;return r.addEventListener(`close`,e=>{s(!1),l(!1,{reason:p.current,event:e}),p.current=`imperative`},{signal:e.signal}),()=>e.abort()},[r,s,l]),n.n(()=>{if(!(!r||!m))return r.setAttribute(`closedby`,h),()=>r.removeAttribute(`closedby`)},[r,m,h]),n.n(()=>{if(!a||!r)return;let t=new AbortController,n=(e,n)=>document.addEventListener(e,n,{signal:t.signal,capture:!0});return n(`keydown`,e=>{e.key===`Escape`&&(p.current=`escape`)}),n(`pointerdown`,t=>{e.f(t,[f])?p.current=`trigger`:!e.f(t,[r])||v(r,t)?p.current=`outside-pointer`:p.current=`imperative`}),()=>t.abort()},[a,r,f]),i.r({enabled:a&&!u&&!m,inside:[r],escapeKey:!0,outsidePointer:!1,onDismiss:(e,t)=>l(!1,{reason:`escape`,event:t})}),n.n(()=>{if(!r||!a||!d||m)return;let t=new AbortController;return document.addEventListener(`pointerdown`,t=>{e.f(t,[f])||e.f(t,[r])&&!v(r,t)||l(!1,{reason:`outside-pointer`,event:t})},{signal:t.signal,capture:!0}),()=>t.abort()},[r,a,d,m,f,l])}function v(e,t){let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function y(e){let t=p(`Dialog.Title`);return n.n(()=>t.register(`title`),[t]),(0,l.jsx)(s.H2,{id:t.titleId,component:`dialog.title`,...e})}function b(e){let t=p(`Dialog.Description`);return n.n(()=>t.register(`description`),[t]),(0,l.jsx)(s.P,{id:t.descriptionId,component:`dialog.description`,...e})}y.displayName=`Dialog.Title`,b.displayName=`Dialog.Description`;var x={Title:y,Description:b},S=Object.assign(m,x),C=Object.assign(h,x);m.displayName=`Dialog`,h.displayName=`AlertDialog`,exports.AlertDialog=C,exports.default=S;
@@ -1,23 +1,24 @@
1
1
  "use client";
2
- import { i as e } from "../client.mjs";
3
- import { a as t, l as n, n as r, u as i } from "../platform.mjs";
2
+ import { d as e, f as t, n, s as r } from "../platform.mjs";
3
+ import { i } from "../client.mjs";
4
4
  import { n as a } from "../effects.mjs";
5
5
  import o from "../box.mjs";
6
- import { a as s, i as c, n as l, r as u } from "../behavior.mjs";
7
- import { t as d } from "../identity.mjs";
6
+ import { a as s, n as c, r as l } from "../behavior.mjs";
7
+ import { t as u } from "../identity.mjs";
8
+ import { a as d } from "../reporting.mjs";
8
9
  import { H2 as f, P as p } from "./semantics.mjs";
9
10
  import { createContext as m, useCallback as h, useContext as g, useMemo as _, useRef as v, useState as y } from "react";
10
11
  import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
11
12
  //#region src/react/dialog/useScrollLock.ts
12
13
  var C = 0;
13
- function w(t) {
14
- let { classNames: n, styleElements: i } = e({ overflow: "hidden" }, !1), o = n.slice(1).join(" ");
14
+ function w(e) {
15
+ let { classNames: t, styleElements: r } = i({ overflow: "hidden" }, !1), o = t.slice(1).join(" ");
15
16
  return a(() => {
16
- let e = r();
17
- if (!(!t || !e || !o)) return C += 1, e.classList.add(o), () => {
18
- --C, C === 0 && e.classList.remove(o);
17
+ let t = n();
18
+ if (!(!e || !t || !o)) return C += 1, t.classList.add(o), () => {
19
+ --C, C === 0 && t.classList.remove(o);
19
20
  };
20
- }, [t, o]), i;
21
+ }, [e, o]), r;
21
22
  }
22
23
  //#endregion
23
24
  //#region src/components/dialog.tsx
@@ -41,16 +42,20 @@ function O(e) {
41
42
  dismissible: !1
42
43
  });
43
44
  }
44
- function k(e) {
45
- let { role: t, trigger: r, children: i, open: u, defaultOpen: f = !1, onOpenChange: p, label: m, labelledBy: g, describedBy: v, modal: C = !0, dismissible: E = !0, lockScroll: D = C, initialFocus: O, props: k, ...j } = e, M = d("dialog"), N = j.id ?? M, [P, F] = c({
46
- value: u,
45
+ function k(t) {
46
+ let { role: n, trigger: r, children: i, open: l, defaultOpen: f = !1, onOpenChange: p, label: m, labelledBy: g, describedBy: v, modal: C = !0, dismissible: E = !0, lockScroll: D = C, initialFocus: O, props: k, ...j } = t, M = u("dialog"), N = j.id ?? M, [P, F] = d({
47
+ value: l,
47
48
  defaultValue: f,
48
- onChange: p
49
+ onChange: p,
50
+ interaction: {
51
+ component: n === "alertdialog" ? "alertDialog" : "dialog",
52
+ type: "openChange"
53
+ }
49
54
  }), [I, L] = y(null), [R, z] = y(null), [B, V] = y(!1), [H, U] = y({
50
55
  title: 0,
51
56
  description: 0
52
57
  }), W = w(P && D);
53
- l({
58
+ c({
54
59
  enabled: P,
55
60
  returnTo: R
56
61
  });
@@ -75,8 +80,8 @@ function k(e) {
75
80
  dismissible: E,
76
81
  triggerElement: R
77
82
  }), a(() => {
78
- let e = n(O);
79
- !P || !e || e.focus();
83
+ let t = e(O);
84
+ !P || !t || t.focus();
80
85
  }, [P, O]);
81
86
  let q = s((e) => {
82
87
  F((e) => !e, {
@@ -108,7 +113,7 @@ function k(e) {
108
113
  ...Y,
109
114
  id: N,
110
115
  props: {
111
- role: t,
116
+ role: n,
112
117
  "aria-label": H.title || g ? void 0 : m,
113
118
  "aria-labelledby": g ?? (H.title ? K.titleId : void 0),
114
119
  "aria-describedby": v ?? (H.description ? K.descriptionId : void 0),
@@ -120,14 +125,14 @@ function k(e) {
120
125
  ] });
121
126
  }
122
127
  function A(e) {
123
- let { dialog: n, isOpen: r, domOpen: o, setDomOpen: s, setOpen: c, modal: l, dismissible: d, triggerElement: f } = e, p = v("imperative"), m = t(), h = d ? "any" : "closerequest";
128
+ let { dialog: n, isOpen: i, domOpen: o, setDomOpen: s, setOpen: c, modal: u, dismissible: d, triggerElement: f } = e, p = v("imperative"), m = r(), h = d ? "any" : "closerequest";
124
129
  a(() => {
125
- !n || r === o || (s(r), r ? l ? n.showModal() : n.show() : n.close());
130
+ !n || i === o || (s(i), i ? u ? n.showModal() : n.show() : n.close());
126
131
  }, [
127
132
  n,
128
- r,
133
+ i,
129
134
  o,
130
- l,
135
+ u,
131
136
  s
132
137
  ]), a(() => {
133
138
  if (!n) return;
@@ -149,22 +154,22 @@ function A(e) {
149
154
  m,
150
155
  h
151
156
  ]), a(() => {
152
- if (!r || !n) return;
153
- let e = new AbortController(), t = (t, n) => document.addEventListener(t, n, {
157
+ if (!i || !n) return;
158
+ let e = new AbortController(), r = (t, n) => document.addEventListener(t, n, {
154
159
  signal: e.signal,
155
160
  capture: !0
156
161
  });
157
- return t("keydown", (e) => {
162
+ return r("keydown", (e) => {
158
163
  e.key === "Escape" && (p.current = "escape");
159
- }), t("pointerdown", (e) => {
160
- i(e, [f]) ? p.current = "trigger" : !i(e, [n]) || j(n, e) ? p.current = "outside-pointer" : p.current = "imperative";
164
+ }), r("pointerdown", (e) => {
165
+ t(e, [f]) ? p.current = "trigger" : !t(e, [n]) || j(n, e) ? p.current = "outside-pointer" : p.current = "imperative";
161
166
  }), () => e.abort();
162
167
  }, [
163
- r,
168
+ i,
164
169
  n,
165
170
  f
166
- ]), u({
167
- enabled: r && !l && !m,
171
+ ]), l({
172
+ enabled: i && !u && !m,
168
173
  inside: [n],
169
174
  escapeKey: !0,
170
175
  outsidePointer: !1,
@@ -173,10 +178,10 @@ function A(e) {
173
178
  event: t
174
179
  })
175
180
  }), a(() => {
176
- if (!n || !r || !d || m) return;
181
+ if (!n || !i || !d || m) return;
177
182
  let e = new AbortController();
178
183
  return document.addEventListener("pointerdown", (e) => {
179
- i(e, [f]) || i(e, [n]) && !j(n, e) || c(!1, {
184
+ t(e, [f]) || t(e, [n]) && !j(n, e) || c(!1, {
180
185
  reason: "outside-pointer",
181
186
  event: e
182
187
  });
@@ -186,7 +191,7 @@ function A(e) {
186
191
  }), () => e.abort();
187
192
  }, [
188
193
  n,
189
- r,
194
+ i,
190
195
  d,
191
196
  m,
192
197
  f,
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../effects.cjs"),t=require("../box.cjs"),n=require("../behavior.cjs"),r=require("../identity.cjs"),i=require("./baseSvg.cjs"),a=require("./button.cjs"),o=require("./flex.cjs"),s=require("./checkbox.cjs"),c=require("./overlay.cjs"),l=require("./presence.cjs"),u=require("./textbox.cjs");let d=require("react"),f=require("react/jsx-runtime");var p=(0,d.createContext)(null);function m(){let e=(0,d.useContext)(p);if(!e)throw Error(`Dropdown sub-components must be used within Dropdown`);return e}var h={item:`dropdown.item`,unselect:`dropdown.unselect`,selectAll:`dropdown.selectAll`};function g({row:e,index:n}){let{valueToUse:r,multiple:i,variant:a,showCheckbox:o,selectRow:c,optionId:l,activeIndex:u,rowRef:d,isRowDisabled:p}=m(),g=e.kind===`item`,_=p(n),v=g?r.includes(e.element.props.value):e.kind===`unselect`&&r.length===0,{value:ee,onClick:y,children:b,...x}=e.element.props,S=o&&i&&g;return(0,f.jsx)(t.default,{ref:d(n),component:h[e.kind],variant:[a,g?{multiple:i,highlighted:n===u}:{highlighted:n===u}],selected:v,...x,id:l(n),children:S?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s.default,{readOnly:!0,checked:v,me:2,props:{tabIndex:-1,"aria-hidden":!0}}),b]}):b,props:{role:`option`,..._?{"aria-disabled":!0}:{},...x.props,onClick:_?void 0:e=>{y?.(e),c(n,e)}}})}var _=(0,d.memo)(g,(e,t)=>e.row.element===t.row.element&&e.index===t.index);function v(e,t,n){return e?{role:`listbox`,"aria-labelledby":n,...t?{"aria-multiselectable":!0}:{}}:{role:`status`}}function ee(e){let{presence:n,rows:r,emptyItem:i,triggerRef:a,popupRef:o,listboxId:s,labelledBy:l,itemsProps:u}=e,{present:p,ref:h,props:g}=n,{multiple:ee,variant:b}=m(),[x,S]=(0,d.useState)(!1),te=(0,d.useCallback)(e=>S(e===`top`),[]);return(0,f.jsx)(c.default,{ref:o,anchor:a,side:`bottom`,align:`start`,offset:.5,onSideChange:te,children:(0,f.jsxs)(t.default,{ref:h,component:`dropdown.items`,...u,variant:[b,{closed:!p&&!x,closedUp:!p&&x}],id:s,props:{...v(r.length>0,ee,l),...g},children:[r.map((e,t)=>(0,f.jsx)(_,{row:e,index:t},y(e,t))),r.length===0&&i&&(0,f.jsx)(t.default,{component:`dropdown.emptyItem`,variant:b,...i.props})]})})}function y(e,t){return e.kind===`item`?e.element.props.value:`${e.kind}-${t}`}ee.displayName=`DropdownItems`;function b({id:e,value:t,onValueChange:n,placeholder:r,inputRef:i,comboboxProps:a,onOpen:s}){let c=(0,d.useCallback)(e=>n(e.target.value),[n]),l=(0,d.useCallback)(e=>{e.stopPropagation(),s(e)},[s]);return(0,f.jsx)(o.default,{ai:`center`,position:`absolute`,inset:0,p:3,children:(0,f.jsx)(u.default,{clean:!0,id:e,value:t,placeholder:r,onChange:c,ref:i,color:`currentColor`,width:`fit`,props:{role:`combobox`,"aria-autocomplete":`list`,autoComplete:`off`,spellCheck:!1,...a,onClick:l}})})}function x(e){if(e==null)return``;if(typeof e==`object`){let t=e.props?.children;return t==null?``:typeof t==`object`?(Array.isArray(t)?t:[t]).map(e=>x(e)).join(``):t.toString()}return e.toString()}function S(e){return e==null?[]:Array.isArray(e)?e:[e]}function te(e){let t=e?.props?.disabled;return(Array.isArray(t)?t[0]:t)===!0}function ne(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey}var re=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function ie(s,c){let{name:m,defaultValue:h,value:g,defaultOpen:_,multiple:v=!1,isSearchable:y,searchPlaceholder:ie,children:C,hideIcon:w,showCheckbox:ae=!1,label:oe,labelProps:se,itemsProps:ce,iconProps:le,onValueChange:ue,onChange:de,props:fe,...T}=s,E=(0,d.useRef)(void 0),pe=n.a((e,t)=>{ue?.(v?e:e[0],t),de?.(E.current,e)}),me=`value`in s,he=(0,d.useMemo)(()=>me?S(g):void 0,[me,g]),[D,O]=n.i({value:he,defaultValue:()=>S(h),onChange:pe}),[ge,_e]=(0,d.useState)(null),[k,A]=(0,d.useState)(!!_),j=(0,d.useRef)(null),ve=(0,d.useCallback)(e=>{j.current=e},[]),ye=(0,d.useRef)(null),M=(0,d.useRef)(null),N=r.t(`dropdown`),P=T.id??`${N}-trigger`,be=`${N}-listbox`,F=`${N}-label`,I=oe!=null&&oe!==!1,xe=(0,d.useCallback)(e=>`${N}-option-${e}`,[N]),L=n.a((e=!1)=>{A(!1),e||_e(null)}),R=(0,d.useMemo)(()=>(Array.isArray(C)?C:[C]).flatMap(e=>e).filter(Boolean),[C]),z=(0,d.useMemo)(()=>R.filter(e=>e.type?.displayName===`DropdownItem`),[R]),Se=(0,d.useMemo)(()=>{let e=new Map;for(let t of z)e.set(t,x(t));return e},[z]),B=(0,d.useCallback)(e=>Se.get(e)??x(e),[Se]),Ce=y?ge??``:``,V=(0,d.useMemo)(()=>Ce?z.filter(e=>B(e).toLowerCase().includes(Ce.toLowerCase())):z,[Ce,z,B]),H=(0,d.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownUnselect`),[R]),U=(0,d.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownSelectAll`),[R]),we=(0,d.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownEmptyItem`),[R]),W=(0,d.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownDisplay`),[R]),G=(0,d.useMemo)(()=>!y||W?``:z.filter(e=>D.includes(e.props.value)).map(e=>B(e)).join(`, `),[y,W,z,D,B]),Te=!!(U&&v&&V.length>D.length),Ee=!!(H&&V.length>0&&!Te),K=(0,d.useMemo)(()=>{let e=[];Ee&&H&&e.push({kind:`unselect`,element:H}),Te&&U&&e.push({kind:`selectAll`,element:U});for(let t of V)e.push({kind:`item`,element:t});return e},[Ee,H,Te,U,V]),q=(0,d.useCallback)(e=>te(K[e]?.element),[K]),De=(0,d.useCallback)(e=>{let t=K[e];return t?B(t.element):``},[K,B]),Oe=(0,d.useMemo)(()=>{if(y&&(k||G!==``))return null;if(W)return typeof W.props.children==`function`?W.props.children(D,k):W.props.children;let e=V.filter(e=>D.includes(e.props.value));if(v&&e.length>1)return e.map(e=>B(e)).join(`, `);let t=e.at(0);return t?.props.children??t?.props.value??(v?null:H?.props.children)},[v,V,D,H,k,y,G,W,B]),ke=(0,d.useCallback)((e,...t)=>{if(t.length===0)E.current=void 0,O([],{reason:`clear`,event:e});else if(v&&t.length>1)E.current=void 0,O(t.map(e=>e.props.value),{reason:`select-all`,event:e});else if(t.length===1){let n=t[0];if(E.current=n.props.value,v){let t=D.filter(e=>e!==n.props.value),r=t.length!==D.length;r||t.push(n.props.value),O(t,{reason:r?`deselect`:`select`,event:e})}else O([n.props.value],{reason:`select`,event:e})}e.stopPropagation(),v?y&&setTimeout(()=>M.current?.focus(),0):L()},[v,y,D,O,L]),J=n.a((e,t)=>{let n=K[e];!n||q(e)||(n.kind===`unselect`?ke(t):n.kind===`selectAll`?ke(t,...z):ke(t,n.element))}),Ae=e=>{let t=e===`first`?1:-1;for(let n=e===`first`?0:K.length-1;n>=0&&n<K.length;n+=t)if(!q(n))return n;return-1},Y=e=>{let t=K.findIndex(e=>e.kind===`item`&&D.includes(e.element.props.value));return t!==-1&&!q(t)?t:e===`none`?-1:Ae(e)},X=n.t({count:K.length,focusItems:!1,defaultActiveIndex:_?Y(`none`):-1,isDisabled:q,textOf:y?void 0:De,onSelect:J}),je=X.setActiveIndex,Me=(0,d.useCallback)(e=>je(-1,{reason:`programmatic`,event:e}),[je]);n.r({enabled:k,inside:[j,ye],onDismiss:e=>L(e===`escape`)}),n.n({enabled:k,returnTo:y?M:j}),(0,d.useEffect)(()=>{k&&M.current?.focus()},[k]);let Z=X.activeIndex,Ne=X.activeItem;e.n(()=>{!k||Z===-1||Ne()?.scrollIntoView?.({block:`nearest`})},[k,Z,Ne]);let Q=(e,t)=>{A(!0),X.setActiveIndex(e,{reason:`programmatic`,event:t})},Pe=n.a(e=>{k?L():Q(Y(`none`),e)}),Fe=n.a(e=>{k||Q(Y(`none`),e)}),Ie=n.a(e=>{_e(e),k||A(!0),Me()}),Le=e=>{let{key:t}=e;if(y){if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Q(Y(t===`ArrowUp`?`last`:e.altKey?`none`:`first`),e);return}t===`Escape`&&_e(``);return}if(t===`ArrowDown`||t===`Enter`||t===` `){e.preventDefault(),Q(Y(e.altKey?`none`:`first`),e);return}if(t===`ArrowUp`){e.preventDefault(),Q(Y(`last`),e);return}if(t===`Home`||t===`End`){e.preventDefault(),Q(Ae(t===`Home`?`first`:`last`),e);return}ne(e)&&(A(!0),X.onKeyDown(e))},Re=n.a(e=>{if(fe?.onKeyDown?.(e),!e.defaultPrevented){if(!k){Le(e);return}if(e.key===`Tab`){!v&&X.activeIndex!==-1&&J(X.activeIndex,e),L();return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),X.activeIndex!==-1&&J(X.activeIndex,e),L();return}if(y&&re.has(e.key)){Me(e);return}X.onKeyDown(e)}}),$=K.length>0||!!we,ze=k&&Z!==-1&&$?xe(Z):void 0,Be=X.itemProps,Ve=(0,d.useMemo)(()=>({valueToUse:D,multiple:v,variant:T.variant,showCheckbox:ae,selectRow:J,optionId:xe,activeIndex:Z,rowRef:e=>Be(e).ref,isRowDisabled:q}),[D,v,T.variant,ae,J,xe,Z,Be,q]),He={"aria-expanded":k,"aria-controls":k&&$?be:void 0,"aria-activedescendant":ze,"aria-labelledby":I?F:void 0,...fe,onKeyDown:Re},Ue=D.map(e=>{let t=JSON.stringify(e);return(0,f.jsx)(u.default,{ref:c,name:m,type:`hidden`,value:t??``},t)}),We=!w&&(0,f.jsx)(o.default,{component:`dropdown.icon`,...le,children:(0,f.jsx)(i.default,{viewBox:`0 0 10 6`,width:`0.6rem`,rotate:k?180:0,children:(0,f.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`m1 1 4 4 4-4`})})}),Ge=$&&(0,f.jsx)(l.default,{present:k,children:e=>(0,f.jsx)(ee,{presence:e,rows:K,emptyItem:we,triggerRef:j,popupRef:ye,listboxId:be,labelledBy:I?F:P,itemsProps:ce})}),Ke=y?(0,f.jsxs)(t.default,{ref:ve,component:`dropdown`,props:{onClick:Pe},position:`relative`,pe:w?void 0:6,minWidth:k?36:void 0,width:`fit-content`,...T,id:void 0,children:[Ue,(0,f.jsx)(b,{id:P,value:ge??G,onValueChange:Ie,placeholder:k?ie:void 0,inputRef:M,comboboxProps:He,onOpen:Fe}),Oe??(0,f.jsx)(t.default,{tag:`span`,visibility:`hidden`,children:G||`\xA0`}),We]}):(0,f.jsxs)(a.default,{ref:ve,onClick:Pe,component:`dropdown`,type:`button`,props:{tabIndex:0,role:`combobox`,...He},position:`relative`,pe:w?void 0:6,width:`fit-content`,...T,id:P,children:[Ue,Oe??`\xA0`,We]});return(0,f.jsx)(p.Provider,{value:Ve,children:I?(0,f.jsxs)(o.default,{d:`column`,gap:1,width:`fit-content`,...se,children:[(0,f.jsx)(t.default,{tag:`span`,id:F,children:oe}),Ke,Ge]}):(0,f.jsxs)(f.Fragment,{children:[Ke,Ge]})})}function C(e){let t=e=>null;return t.displayName=e,t}var w=(0,d.forwardRef)(ie);w.Item=C(`DropdownItem`),w.Unselect=C(`DropdownUnselect`),w.SelectAll=C(`DropdownSelectAll`),w.EmptyItem=C(`DropdownEmptyItem`),w.Display=C(`DropdownDisplay`),w.displayName=`Dropdown`,exports.default=w;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../effects.cjs"),t=require("../box.cjs"),n=require("../behavior.cjs"),r=require("../identity.cjs"),i=require("../reporting.cjs"),a=require("./baseSvg.cjs"),o=require("./button.cjs"),s=require("./flex.cjs"),c=require("./checkbox.cjs"),l=require("./overlay.cjs"),u=require("./presence.cjs"),d=require("./textbox.cjs");let f=require("react"),p=require("react/jsx-runtime");var m=(0,f.createContext)(null);function h(){let e=(0,f.useContext)(m);if(!e)throw Error(`Dropdown sub-components must be used within Dropdown`);return e}var ee={item:`dropdown.item`,unselect:`dropdown.unselect`,selectAll:`dropdown.selectAll`};function g({row:e,index:n}){let{valueToUse:r,multiple:i,variant:a,showCheckbox:o,selectRow:s,optionId:l,activeIndex:u,rowRef:d,isRowDisabled:f}=h(),m=e.kind===`item`,g=f(n),_=m?r.includes(e.element.props.value):e.kind===`unselect`&&r.length===0,{value:v,onClick:y,children:b,...x}=e.element.props,S=o&&i&&m;return(0,p.jsx)(t.default,{ref:d(n),component:ee[e.kind],variant:[a,m?{multiple:i,highlighted:n===u}:{highlighted:n===u}],selected:_,...x,id:l(n),children:S?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.default,{readOnly:!0,checked:_,me:2,props:{tabIndex:-1,"aria-hidden":!0}}),b]}):b,props:{role:`option`,...g?{"aria-disabled":!0}:{},...x.props,onClick:g?void 0:e=>{y?.(e),s(n,e)}}})}var _=(0,f.memo)(g,(e,t)=>e.row.element===t.row.element&&e.index===t.index);function v(e,t,n){return e?{role:`listbox`,"aria-labelledby":n,...t?{"aria-multiselectable":!0}:{}}:{role:`status`}}function y(e){let{presence:n,rows:r,emptyItem:i,triggerRef:a,popupRef:o,listboxId:s,labelledBy:c,itemsProps:u}=e,{present:d,ref:m,props:ee}=n,{multiple:g,variant:y}=h(),[x,S]=(0,f.useState)(!1),te=(0,f.useCallback)(e=>S(e===`top`),[]);return(0,p.jsx)(l.default,{ref:o,anchor:a,side:`bottom`,align:`start`,offset:.5,onSideChange:te,children:(0,p.jsxs)(t.default,{ref:m,component:`dropdown.items`,...u,variant:[y,{closed:!d&&!x,closedUp:!d&&x}],id:s,props:{...v(r.length>0,g,c),...ee},children:[r.map((e,t)=>(0,p.jsx)(_,{row:e,index:t},b(e,t))),r.length===0&&i&&(0,p.jsx)(t.default,{component:`dropdown.emptyItem`,variant:y,...i.props})]})})}function b(e,t){return e.kind===`item`?e.element.props.value:`${e.kind}-${t}`}y.displayName=`DropdownItems`;function x({id:e,value:t,onValueChange:n,placeholder:r,inputRef:i,comboboxProps:a,onOpen:o}){let c=(0,f.useCallback)(e=>n(e.target.value),[n]),l=(0,f.useCallback)(e=>{e.stopPropagation(),o(e)},[o]);return(0,p.jsx)(s.default,{ai:`center`,position:`absolute`,inset:0,p:3,children:(0,p.jsx)(d.default,{clean:!0,id:e,value:t,placeholder:r,onChange:c,ref:i,color:`currentColor`,width:`fit`,props:{role:`combobox`,"aria-autocomplete":`list`,autoComplete:`off`,spellCheck:!1,...a,onClick:l}})})}function S(e){if(e==null)return``;if(typeof e==`object`){let t=e.props?.children;return t==null?``:typeof t==`object`?(Array.isArray(t)?t:[t]).map(e=>S(e)).join(``):t.toString()}return e.toString()}function te(e){return e==null?[]:Array.isArray(e)?e:[e]}function ne(e){let t=e?.props?.disabled;return(Array.isArray(t)?t[0]:t)===!0}function re(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey}var ie=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function ae(c,l){let{name:h,defaultValue:ee,value:g,defaultOpen:_,multiple:v=!1,isSearchable:b,searchPlaceholder:ae,children:C,hideIcon:w,showCheckbox:oe=!1,label:T,labelProps:se,itemsProps:ce,iconProps:le,onValueChange:ue,onChange:de,props:fe,...E}=c,D=(0,f.useRef)(void 0),pe=n.a((e,t)=>{ue?.(v?e:e[0],t),de?.(D.current,e)}),me=`value`in c,he=(0,f.useMemo)(()=>me?te(g):void 0,[me,g]),[O,k]=i.a({value:he,defaultValue:()=>te(ee),onChange:pe,interaction:{component:`dropdown`,type:`valueChange`}}),[ge,_e]=(0,f.useState)(null),[A,ve]=i.a({defaultValue:!!_,interaction:{component:`dropdown`,type:`openChange`}}),j=(0,f.useRef)(null),ye=(0,f.useCallback)(e=>{j.current=e},[]),be=(0,f.useRef)(null),M=(0,f.useRef)(null),N=r.t(`dropdown`),P=E.id??`${N}-trigger`,xe=`${N}-listbox`,F=`${N}-label`,Se=T!=null&&T!==!1,Ce=(0,f.useCallback)(e=>`${N}-option-${e}`,[N]),I=n.a((e,t,n)=>ve(e,{reason:t,event:n})),L=n.a((e,t,n=!1)=>{I(!1,e,t),n||_e(null)}),R=(0,f.useMemo)(()=>(Array.isArray(C)?C:[C]).flatMap(e=>e).filter(Boolean),[C]),z=(0,f.useMemo)(()=>R.filter(e=>e.type?.displayName===`DropdownItem`),[R]),we=(0,f.useMemo)(()=>{let e=new Map;for(let t of z)e.set(t,S(t));return e},[z]),B=(0,f.useCallback)(e=>we.get(e)??S(e),[we]),Te=b?ge??``:``,V=(0,f.useMemo)(()=>Te?z.filter(e=>B(e).toLowerCase().includes(Te.toLowerCase())):z,[Te,z,B]),H=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownUnselect`),[R]),U=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownSelectAll`),[R]),Ee=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownEmptyItem`),[R]),W=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownDisplay`),[R]),G=(0,f.useMemo)(()=>!b||W?``:z.filter(e=>O.includes(e.props.value)).map(e=>B(e)).join(`, `),[b,W,z,O,B]),De=!!(U&&v&&V.length>O.length),Oe=!!(H&&V.length>0&&!De),K=(0,f.useMemo)(()=>{let e=[];Oe&&H&&e.push({kind:`unselect`,element:H}),De&&U&&e.push({kind:`selectAll`,element:U});for(let t of V)e.push({kind:`item`,element:t});return e},[Oe,H,De,U,V]),q=(0,f.useCallback)(e=>ne(K[e]?.element),[K]),ke=(0,f.useCallback)(e=>{let t=K[e];return t?B(t.element):``},[K,B]),Ae=(0,f.useMemo)(()=>{if(b&&(A||G!==``))return null;if(W)return typeof W.props.children==`function`?W.props.children(O,A):W.props.children;let e=V.filter(e=>O.includes(e.props.value));if(v&&e.length>1)return e.map(e=>B(e)).join(`, `);let t=e.at(0);return t?.props.children??t?.props.value??(v?null:H?.props.children)},[v,V,O,H,A,b,G,W,B]),je=(0,f.useCallback)((e,...t)=>{if(t.length===0)D.current=void 0,k([],{reason:`clear`,event:e});else if(v&&t.length>1)D.current=void 0,k(t.map(e=>e.props.value),{reason:`select-all`,event:e});else if(t.length===1){let n=t[0];if(D.current=n.props.value,v){let t=O.filter(e=>e!==n.props.value),r=t.length!==O.length;r||t.push(n.props.value),k(t,{reason:r?`deselect`:`select`,event:e})}else k([n.props.value],{reason:`select`,event:e})}e.stopPropagation(),v?b&&setTimeout(()=>M.current?.focus(),0):L(`select`,e)},[v,b,O,k,L]),J=n.a((e,t)=>{let n=K[e];!n||q(e)||(n.kind===`unselect`?je(t):n.kind===`selectAll`?je(t,...z):je(t,n.element))}),Me=e=>{let t=e===`first`?1:-1;for(let n=e===`first`?0:K.length-1;n>=0&&n<K.length;n+=t)if(!q(n))return n;return-1},Y=e=>{let t=K.findIndex(e=>e.kind===`item`&&O.includes(e.element.props.value));return t!==-1&&!q(t)?t:e===`none`?-1:Me(e)},X=n.t({count:K.length,focusItems:!1,defaultActiveIndex:_?Y(`none`):-1,isDisabled:q,textOf:b?void 0:ke,onSelect:J}),Ne=X.setActiveIndex,Pe=(0,f.useCallback)(e=>Ne(-1,{reason:`programmatic`,event:e}),[Ne]);n.r({enabled:A,inside:[j,be],onDismiss:(e,t)=>L(e,t,e===`escape`)}),n.n({enabled:A,returnTo:b?M:j}),(0,f.useEffect)(()=>{A&&M.current?.focus()},[A]);let Z=X.activeIndex,Fe=X.activeItem;e.n(()=>{!A||Z===-1||Fe()?.scrollIntoView?.({block:`nearest`})},[A,Z,Fe]);let Q=(e,t)=>{I(!0,t.type===`keydown`?`keyboard`:`trigger`,t),X.setActiveIndex(e,{reason:`programmatic`,event:t})},Ie=n.a(e=>{A?L(`trigger`,e):Q(Y(`none`),e)}),Le=n.a(e=>{A||Q(Y(`none`),e)}),Re=n.a(e=>{_e(e),A||I(!0,`input`),Pe()}),ze=e=>{let{key:t}=e;if(b){if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Q(Y(t===`ArrowUp`?`last`:e.altKey?`none`:`first`),e);return}t===`Escape`&&_e(``);return}if(t===`ArrowDown`||t===`Enter`||t===` `){e.preventDefault(),Q(Y(e.altKey?`none`:`first`),e);return}if(t===`ArrowUp`){e.preventDefault(),Q(Y(`last`),e);return}if(t===`Home`||t===`End`){e.preventDefault(),Q(Me(t===`Home`?`first`:`last`),e);return}re(e)&&(I(!0,`input`,e),X.onKeyDown(e))},Be=n.a(e=>{if(fe?.onKeyDown?.(e),!e.defaultPrevented){if(!A){ze(e);return}if(e.key===`Tab`){!v&&X.activeIndex!==-1&&J(X.activeIndex,e),L(`tab`,e);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),X.activeIndex!==-1&&J(X.activeIndex,e),L(`keyboard`,e);return}if(b&&ie.has(e.key)){Pe(e);return}X.onKeyDown(e)}}),$=K.length>0||!!Ee,Ve=A&&Z!==-1&&$?Ce(Z):void 0,He=X.itemProps,Ue=(0,f.useMemo)(()=>({valueToUse:O,multiple:v,variant:E.variant,showCheckbox:oe,selectRow:J,optionId:Ce,activeIndex:Z,rowRef:e=>He(e).ref,isRowDisabled:q}),[O,v,E.variant,oe,J,Ce,Z,He,q]),We={"aria-expanded":A,"aria-controls":A&&$?xe:void 0,"aria-activedescendant":Ve,"aria-labelledby":Se?F:void 0,...fe,onKeyDown:Be},Ge=O.map(e=>{let t=JSON.stringify(e);return(0,p.jsx)(d.default,{ref:l,name:h,type:`hidden`,value:t??``},t)}),Ke=!w&&(0,p.jsx)(s.default,{component:`dropdown.icon`,...le,children:(0,p.jsx)(a.default,{viewBox:`0 0 10 6`,width:`0.6rem`,rotate:A?180:0,children:(0,p.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`m1 1 4 4 4-4`})})}),qe=$&&(0,p.jsx)(u.default,{present:A,children:e=>(0,p.jsx)(y,{presence:e,rows:K,emptyItem:Ee,triggerRef:j,popupRef:be,listboxId:xe,labelledBy:Se?F:P,itemsProps:ce})}),Je=b?(0,p.jsxs)(t.default,{ref:ye,component:`dropdown`,props:{onClick:Ie},position:`relative`,pe:w?void 0:6,minWidth:A?36:void 0,width:`fit-content`,...E,id:void 0,children:[Ge,(0,p.jsx)(x,{id:P,value:ge??G,onValueChange:Re,placeholder:A?ae:void 0,inputRef:M,comboboxProps:We,onOpen:Le}),Ae??(0,p.jsx)(t.default,{tag:`span`,visibility:`hidden`,children:G||`\xA0`}),Ke]}):(0,p.jsxs)(o.default,{ref:ye,onClick:Ie,component:`dropdown`,type:`button`,props:{tabIndex:0,role:`combobox`,...We},position:`relative`,pe:w?void 0:6,width:`fit-content`,...E,id:P,children:[Ge,Ae??`\xA0`,Ke]});return(0,p.jsx)(m.Provider,{value:Ue,children:Se?(0,p.jsxs)(s.default,{d:`column`,gap:1,width:`fit-content`,...se,children:[(0,p.jsx)(t.default,{tag:`span`,id:F,children:T}),Je,qe]}):(0,p.jsxs)(p.Fragment,{children:[Je,qe]})})}function C(e){let t=e=>null;return t.displayName=e,t}var w=(0,f.forwardRef)(ae);w.Item=C(`DropdownItem`),w.Unselect=C(`DropdownUnselect`),w.SelectAll=C(`DropdownSelectAll`),w.EmptyItem=C(`DropdownEmptyItem`),w.Display=C(`DropdownDisplay`),w.displayName=`Dropdown`,exports.default=w;
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
  import { n as e } from "../effects.mjs";
3
3
  import t from "../box.mjs";
4
- import { a as n, i as r, n as i, r as a, t as o } from "../behavior.mjs";
5
- import { t as s } from "../identity.mjs";
4
+ import { a as n, n as r, r as i, t as a } from "../behavior.mjs";
5
+ import { t as o } from "../identity.mjs";
6
+ import { a as s } from "../reporting.mjs";
6
7
  import c from "./baseSvg.mjs";
7
8
  import ee from "./button.mjs";
8
9
  import l from "./flex.mjs";
@@ -167,34 +168,47 @@ var me = /* @__PURE__ */ new Set([
167
168
  function E(u, te) {
168
169
  let { name: p, defaultValue: m, value: h, defaultOpen: _, multiple: S = !1, isSearchable: C, searchPlaceholder: oe, children: w, hideIcon: T, showCheckbox: ce = !1, label: E, labelProps: D, itemsProps: O, iconProps: he, onValueChange: ge, onChange: _e, props: ve, ...k } = u, A = y(void 0), ye = n((e, t) => {
169
170
  ge?.(S ? e : e[0], t), _e?.(A.current, e);
170
- }), be = "value" in u, xe = v(() => be ? de(h) : void 0, [be, h]), [j, M] = r({
171
+ }), be = "value" in u, xe = v(() => be ? de(h) : void 0, [be, h]), [j, M] = s({
171
172
  value: xe,
172
173
  defaultValue: () => de(m),
173
- onChange: ye
174
- }), [Se, Ce] = re(null), [N, P] = re(!!_), F = y(null), we = g((e) => {
175
- F.current = e;
176
- }, []), Te = y(null), I = y(null), L = s("dropdown"), Ee = k.id ?? `${L}-trigger`, De = `${L}-listbox`, Oe = `${L}-label`, ke = E != null && E !== !1, Ae = g((e) => `${L}-option-${e}`, [L]), R = n((e = !1) => {
177
- P(!1), e || Ce(null);
178
- }), z = v(() => (Array.isArray(w) ? w : [w]).flatMap((e) => e).filter(Boolean), [w]), B = v(() => z.filter((e) => e.type?.displayName === "DropdownItem"), [z]), je = v(() => {
174
+ onChange: ye,
175
+ interaction: {
176
+ component: "dropdown",
177
+ type: "valueChange"
178
+ }
179
+ }), [Se, Ce] = re(null), [N, we] = s({
180
+ defaultValue: !!_,
181
+ interaction: {
182
+ component: "dropdown",
183
+ type: "openChange"
184
+ }
185
+ }), P = y(null), Te = g((e) => {
186
+ P.current = e;
187
+ }, []), Ee = y(null), F = y(null), I = o("dropdown"), De = k.id ?? `${I}-trigger`, Oe = `${I}-listbox`, ke = `${I}-label`, Ae = E != null && E !== !1, je = g((e) => `${I}-option-${e}`, [I]), L = n((e, t, n) => we(e, {
188
+ reason: t,
189
+ event: n
190
+ })), R = n((e, t, n = !1) => {
191
+ L(!1, e, t), n || Ce(null);
192
+ }), z = v(() => (Array.isArray(w) ? w : [w]).flatMap((e) => e).filter(Boolean), [w]), B = v(() => z.filter((e) => e.type?.displayName === "DropdownItem"), [z]), Me = v(() => {
179
193
  let e = /* @__PURE__ */ new Map();
180
194
  for (let t of B) e.set(t, ue(t));
181
195
  return e;
182
- }, [B]), V = g((e) => je.get(e) ?? ue(e), [je]), Me = C ? Se ?? "" : "", H = v(() => Me ? B.filter((e) => V(e).toLowerCase().includes(Me.toLowerCase())) : B, [
183
- Me,
196
+ }, [B]), V = g((e) => Me.get(e) ?? ue(e), [Me]), Ne = C ? Se ?? "" : "", H = v(() => Ne ? B.filter((e) => V(e).toLowerCase().includes(Ne.toLowerCase())) : B, [
197
+ Ne,
184
198
  B,
185
199
  V
186
- ]), U = v(() => z.find((e) => e.type?.displayName === "DropdownUnselect"), [z]), W = v(() => z.find((e) => e.type?.displayName === "DropdownSelectAll"), [z]), Ne = v(() => z.find((e) => e.type?.displayName === "DropdownEmptyItem"), [z]), G = v(() => z.find((e) => e.type?.displayName === "DropdownDisplay"), [z]), K = v(() => !C || G ? "" : B.filter((e) => j.includes(e.props.value)).map((e) => V(e)).join(", "), [
200
+ ]), U = v(() => z.find((e) => e.type?.displayName === "DropdownUnselect"), [z]), W = v(() => z.find((e) => e.type?.displayName === "DropdownSelectAll"), [z]), Pe = v(() => z.find((e) => e.type?.displayName === "DropdownEmptyItem"), [z]), G = v(() => z.find((e) => e.type?.displayName === "DropdownDisplay"), [z]), K = v(() => !C || G ? "" : B.filter((e) => j.includes(e.props.value)).map((e) => V(e)).join(", "), [
187
201
  C,
188
202
  G,
189
203
  B,
190
204
  j,
191
205
  V
192
- ]), Pe = !!(W && S && H.length > j.length), Fe = !!(U && H.length > 0 && !Pe), q = v(() => {
206
+ ]), Fe = !!(W && S && H.length > j.length), Ie = !!(U && H.length > 0 && !Fe), q = v(() => {
193
207
  let e = [];
194
- Fe && U && e.push({
208
+ Ie && U && e.push({
195
209
  kind: "unselect",
196
210
  element: U
197
- }), Pe && W && e.push({
211
+ }), Fe && W && e.push({
198
212
  kind: "selectAll",
199
213
  element: W
200
214
  });
@@ -204,15 +218,15 @@ function E(u, te) {
204
218
  });
205
219
  return e;
206
220
  }, [
207
- Fe,
221
+ Ie,
208
222
  U,
209
- Pe,
223
+ Fe,
210
224
  W,
211
225
  H
212
- ]), J = g((e) => fe(q[e]?.element), [q]), Ie = g((e) => {
226
+ ]), J = g((e) => fe(q[e]?.element), [q]), Le = g((e) => {
213
227
  let t = q[e];
214
228
  return t ? V(t.element) : "";
215
- }, [q, V]), Le = v(() => {
229
+ }, [q, V]), Re = v(() => {
216
230
  if (C && (N || K !== "")) return null;
217
231
  if (G) return typeof G.props.children == "function" ? G.props.children(j, N) : G.props.children;
218
232
  let e = H.filter((e) => j.includes(e.props.value));
@@ -229,7 +243,7 @@ function E(u, te) {
229
243
  K,
230
244
  G,
231
245
  V
232
- ]), Re = g((e, ...t) => {
246
+ ]), ze = g((e, ...t) => {
233
247
  if (t.length === 0) A.current = void 0, M([], {
234
248
  reason: "clear",
235
249
  event: e
@@ -251,7 +265,7 @@ function E(u, te) {
251
265
  event: e
252
266
  });
253
267
  }
254
- e.stopPropagation(), S ? C && setTimeout(() => I.current?.focus(), 0) : R();
268
+ e.stopPropagation(), S ? C && setTimeout(() => F.current?.focus(), 0) : R("select", e);
255
269
  }, [
256
270
  S,
257
271
  C,
@@ -260,55 +274,55 @@ function E(u, te) {
260
274
  R
261
275
  ]), Y = n((e, t) => {
262
276
  let n = q[e];
263
- !n || J(e) || (n.kind === "unselect" ? Re(t) : n.kind === "selectAll" ? Re(t, ...B) : Re(t, n.element));
264
- }), ze = (e) => {
277
+ !n || J(e) || (n.kind === "unselect" ? ze(t) : n.kind === "selectAll" ? ze(t, ...B) : ze(t, n.element));
278
+ }), Be = (e) => {
265
279
  let t = e === "first" ? 1 : -1;
266
280
  for (let n = e === "first" ? 0 : q.length - 1; n >= 0 && n < q.length; n += t) if (!J(n)) return n;
267
281
  return -1;
268
282
  }, X = (e) => {
269
283
  let t = q.findIndex((e) => e.kind === "item" && j.includes(e.element.props.value));
270
- return t !== -1 && !J(t) ? t : e === "none" ? -1 : ze(e);
271
- }, Z = o({
284
+ return t !== -1 && !J(t) ? t : e === "none" ? -1 : Be(e);
285
+ }, Z = a({
272
286
  count: q.length,
273
287
  focusItems: !1,
274
288
  defaultActiveIndex: _ ? X("none") : -1,
275
289
  isDisabled: J,
276
- textOf: C ? void 0 : Ie,
290
+ textOf: C ? void 0 : Le,
277
291
  onSelect: Y
278
- }), Be = Z.setActiveIndex, Ve = g((e) => Be(-1, {
292
+ }), Ve = Z.setActiveIndex, He = g((e) => Ve(-1, {
279
293
  reason: "programmatic",
280
294
  event: e
281
- }), [Be]);
282
- a({
295
+ }), [Ve]);
296
+ i({
283
297
  enabled: N,
284
- inside: [F, Te],
285
- onDismiss: (e) => R(e === "escape")
286
- }), i({
298
+ inside: [P, Ee],
299
+ onDismiss: (e, t) => R(e, t, e === "escape")
300
+ }), r({
287
301
  enabled: N,
288
- returnTo: C ? I : F
302
+ returnTo: C ? F : P
289
303
  }), ne(() => {
290
- N && I.current?.focus();
304
+ N && F.current?.focus();
291
305
  }, [N]);
292
- let Q = Z.activeIndex, He = Z.activeItem;
306
+ let Q = Z.activeIndex, Ue = Z.activeItem;
293
307
  e(() => {
294
- !N || Q === -1 || He()?.scrollIntoView?.({ block: "nearest" });
308
+ !N || Q === -1 || Ue()?.scrollIntoView?.({ block: "nearest" });
295
309
  }, [
296
310
  N,
297
311
  Q,
298
- He
312
+ Ue
299
313
  ]);
300
314
  let $ = (e, t) => {
301
- P(!0), Z.setActiveIndex(e, {
315
+ L(!0, t.type === "keydown" ? "keyboard" : "trigger", t), Z.setActiveIndex(e, {
302
316
  reason: "programmatic",
303
317
  event: t
304
318
  });
305
- }, Ue = n((e) => {
306
- N ? R() : $(X("none"), e);
307
- }), We = n((e) => {
308
- N || $(X("none"), e);
319
+ }, We = n((e) => {
320
+ N ? R("trigger", e) : $(X("none"), e);
309
321
  }), Ge = n((e) => {
310
- Ce(e), N || P(!0), Ve();
311
- }), Ke = (e) => {
322
+ N || $(X("none"), e);
323
+ }), Ke = n((e) => {
324
+ Ce(e), N || L(!0, "input"), He();
325
+ }), qe = (e) => {
312
326
  let { key: t } = e;
313
327
  if (C) {
314
328
  if (t === "ArrowDown" || t === "ArrowUp") {
@@ -327,39 +341,39 @@ function E(u, te) {
327
341
  return;
328
342
  }
329
343
  if (t === "Home" || t === "End") {
330
- e.preventDefault(), $(ze(t === "Home" ? "first" : "last"), e);
344
+ e.preventDefault(), $(Be(t === "Home" ? "first" : "last"), e);
331
345
  return;
332
346
  }
333
- pe(e) && (P(!0), Z.onKeyDown(e));
334
- }, qe = n((e) => {
347
+ pe(e) && (L(!0, "input", e), Z.onKeyDown(e));
348
+ }, Je = n((e) => {
335
349
  if (ve?.onKeyDown?.(e), !e.defaultPrevented) {
336
350
  if (!N) {
337
- Ke(e);
351
+ qe(e);
338
352
  return;
339
353
  }
340
354
  if (e.key === "Tab") {
341
- !S && Z.activeIndex !== -1 && Y(Z.activeIndex, e), R();
355
+ !S && Z.activeIndex !== -1 && Y(Z.activeIndex, e), R("tab", e);
342
356
  return;
343
357
  }
344
358
  if (e.altKey && e.key === "ArrowUp") {
345
- e.preventDefault(), Z.activeIndex !== -1 && Y(Z.activeIndex, e), R();
359
+ e.preventDefault(), Z.activeIndex !== -1 && Y(Z.activeIndex, e), R("keyboard", e);
346
360
  return;
347
361
  }
348
362
  if (C && me.has(e.key)) {
349
- Ve(e);
363
+ He(e);
350
364
  return;
351
365
  }
352
366
  Z.onKeyDown(e);
353
367
  }
354
- }), Je = q.length > 0 || !!Ne, Ye = N && Q !== -1 && Je ? Ae(Q) : void 0, Xe = Z.itemProps, Ze = v(() => ({
368
+ }), Ye = q.length > 0 || !!Pe, Xe = N && Q !== -1 && Ye ? je(Q) : void 0, Ze = Z.itemProps, Qe = v(() => ({
355
369
  valueToUse: j,
356
370
  multiple: S,
357
371
  variant: k.variant,
358
372
  showCheckbox: ce,
359
373
  selectRow: Y,
360
- optionId: Ae,
374
+ optionId: je,
361
375
  activeIndex: Q,
362
- rowRef: (e) => Xe(e).ref,
376
+ rowRef: (e) => Ze(e).ref,
363
377
  isRowDisabled: J
364
378
  }), [
365
379
  j,
@@ -367,18 +381,18 @@ function E(u, te) {
367
381
  k.variant,
368
382
  ce,
369
383
  Y,
370
- Ae,
384
+ je,
371
385
  Q,
372
- Xe,
386
+ Ze,
373
387
  J
374
- ]), Qe = {
388
+ ]), $e = {
375
389
  "aria-expanded": N,
376
- "aria-controls": N && Je ? De : void 0,
377
- "aria-activedescendant": Ye,
378
- "aria-labelledby": ke ? Oe : void 0,
390
+ "aria-controls": N && Ye ? Oe : void 0,
391
+ "aria-activedescendant": Xe,
392
+ "aria-labelledby": Ae ? ke : void 0,
379
393
  ...ve,
380
- onKeyDown: qe
381
- }, $e = j.map((e) => {
394
+ onKeyDown: Je
395
+ }, et = j.map((e) => {
382
396
  let t = JSON.stringify(e);
383
397
  return /* @__PURE__ */ b(f, {
384
398
  ref: te,
@@ -386,7 +400,7 @@ function E(u, te) {
386
400
  type: "hidden",
387
401
  value: t ?? ""
388
402
  }, t);
389
- }), et = !T && /* @__PURE__ */ b(l, {
403
+ }), tt = !T && /* @__PURE__ */ b(l, {
390
404
  component: "dropdown.icon",
391
405
  ...he,
392
406
  children: /* @__PURE__ */ b(c, {
@@ -401,22 +415,22 @@ function E(u, te) {
401
415
  d: "m1 1 4 4 4-4"
402
416
  })
403
417
  })
404
- }), tt = Je && /* @__PURE__ */ b(d, {
418
+ }), nt = Ye && /* @__PURE__ */ b(d, {
405
419
  present: N,
406
420
  children: (e) => /* @__PURE__ */ b(se, {
407
421
  presence: e,
408
422
  rows: q,
409
- emptyItem: Ne,
410
- triggerRef: F,
411
- popupRef: Te,
412
- listboxId: De,
413
- labelledBy: ke ? Oe : Ee,
423
+ emptyItem: Pe,
424
+ triggerRef: P,
425
+ popupRef: Ee,
426
+ listboxId: Oe,
427
+ labelledBy: Ae ? ke : De,
414
428
  itemsProps: O
415
429
  })
416
- }), nt = C ? /* @__PURE__ */ x(t, {
417
- ref: we,
430
+ }), rt = C ? /* @__PURE__ */ x(t, {
431
+ ref: Te,
418
432
  component: "dropdown",
419
- props: { onClick: Ue },
433
+ props: { onClick: We },
420
434
  position: "relative",
421
435
  pe: T ? void 0 : 6,
422
436
  minWidth: N ? 36 : void 0,
@@ -424,47 +438,47 @@ function E(u, te) {
424
438
  ...k,
425
439
  id: void 0,
426
440
  children: [
427
- $e,
441
+ et,
428
442
  /* @__PURE__ */ b(le, {
429
- id: Ee,
443
+ id: De,
430
444
  value: Se ?? K,
431
- onValueChange: Ge,
445
+ onValueChange: Ke,
432
446
  placeholder: N ? oe : void 0,
433
- inputRef: I,
434
- comboboxProps: Qe,
435
- onOpen: We
447
+ inputRef: F,
448
+ comboboxProps: $e,
449
+ onOpen: Ge
436
450
  }),
437
- Le ?? /* @__PURE__ */ b(t, {
451
+ Re ?? /* @__PURE__ */ b(t, {
438
452
  tag: "span",
439
453
  visibility: "hidden",
440
454
  children: K || "\xA0"
441
455
  }),
442
- et
456
+ tt
443
457
  ]
444
458
  }) : /* @__PURE__ */ x(ee, {
445
- ref: we,
446
- onClick: Ue,
459
+ ref: Te,
460
+ onClick: We,
447
461
  component: "dropdown",
448
462
  type: "button",
449
463
  props: {
450
464
  tabIndex: 0,
451
465
  role: "combobox",
452
- ...Qe
466
+ ...$e
453
467
  },
454
468
  position: "relative",
455
469
  pe: T ? void 0 : 6,
456
470
  width: "fit-content",
457
471
  ...k,
458
- id: Ee,
472
+ id: De,
459
473
  children: [
460
- $e,
461
- Le ?? "\xA0",
462
- et
474
+ et,
475
+ Re ?? "\xA0",
476
+ tt
463
477
  ]
464
478
  });
465
479
  return /* @__PURE__ */ b(ae.Provider, {
466
- value: Ze,
467
- children: ke ? /* @__PURE__ */ x(l, {
480
+ value: Qe,
481
+ children: Ae ? /* @__PURE__ */ x(l, {
468
482
  d: "column",
469
483
  gap: 1,
470
484
  width: "fit-content",
@@ -472,13 +486,13 @@ function E(u, te) {
472
486
  children: [
473
487
  /* @__PURE__ */ b(t, {
474
488
  tag: "span",
475
- id: Oe,
489
+ id: ke,
476
490
  children: E
477
491
  }),
478
- nt,
479
- tt
492
+ rt,
493
+ nt
480
494
  ]
481
- }) : /* @__PURE__ */ x(ie, { children: [nt, tt] })
495
+ }) : /* @__PURE__ */ x(ie, { children: [rt, nt] })
482
496
  });
483
497
  }
484
498
  function D(e) {
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs");let t=require("react"),n=require("react/jsx-runtime");var r;(function(e){function t(e){let t=Array.from(e.elements).reduce((e,t)=>{let n=t.name;return n?(e[n]||(e[n]=[]),e[n].push(t),e):e},{});return Object.entries(t).reduce((e,[t,r])=>{if(r.length===1){let i=r[0];n(e,t,i.type===`checkbox`||i.type===`radio`?i.checked:i.value)}else n(e,t,r.reduce((e,t)=>(t.type===`checkbox`||t.type===`radio`?t.checked&&e.push(t.value):e.push(t.value),e),[]));return e},{})}e.getFormEntries=t;function n(e,t,n){if(t.includes(`.`)){let r=t.split(`.`),i=e;r.forEach((e,t)=>{if(r.length>t+1){let t=e.match(/^(.+)\[(\d)\]$/);if(t){let[,e,n]=t;i[e]=i[e]||[],i[e][n]=i[e][n]||{},i=i[e][n]}else i[e]=i[e]||{},i=i[e]}else i[e]=n})}else e[t]=n}})(r||={});var i=r;function a(r){let{onSubmit:a,props:o,...s}=r,c=(0,t.useRef)(null),l=(0,t.useCallback)(e=>{e.preventDefault();let t=i.getFormEntries(c.current);a(t,e)},[a]),u={...o,onSubmit:l,ref:c};return(0,n.jsx)(e.default,{tag:`form`,...s,props:u})}a.displayName=`Form`,exports.default=a;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs"),t=require("../reporting.cjs");let n=require("react"),r=require("react/jsx-runtime");var i;(function(e){function t(e){let t=Array.from(e.elements).reduce((e,t)=>{let n=t.name;return n?(e[n]||(e[n]=[]),e[n].push(t),e):e},{});return Object.entries(t).reduce((e,[t,r])=>{if(r.length===1){let i=r[0];n(e,t,i.type===`checkbox`||i.type===`radio`?i.checked:i.value)}else n(e,t,r.reduce((e,t)=>(t.type===`checkbox`||t.type===`radio`?t.checked&&e.push(t.value):e.push(t.value),e),[]));return e},{})}e.getFormEntries=t;function n(e,t,n){if(t.includes(`.`)){let r=t.split(`.`),i=e;r.forEach((e,t)=>{if(r.length>t+1){let t=e.match(/^(.+)\[(\d)\]$/);if(t){let[,e,n]=t;i[e]=i[e]||[],i[e][n]=i[e][n]||{},i=i[e][n]}else i[e]=i[e]||{},i=i[e]}else i[e]=n})}else e[t]=n}})(i||={});var a=i;function o(i){let{onSubmit:o,props:s,...c}=i,l=(0,n.useRef)(null),u=t.i(`form`),d=(0,n.useCallback)(e=>{e.preventDefault();let t=a.getFormEntries(l.current);o(t,e),u(`submit`,Object.keys(t),{reason:`submit`,event:e})},[o,u]),f={...s,onSubmit:d,ref:l};return(0,r.jsx)(e.default,{tag:`form`,...c,props:f})}o.displayName=`Form`,exports.default=o;