@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,9 +1,10 @@
1
1
  "use client";
2
2
  import e from "../box.mjs";
3
- import { useCallback as t, useRef as n } from "react";
4
- import { jsx as r } from "react/jsx-runtime";
3
+ import { i as t } from "../reporting.mjs";
4
+ import { useCallback as n, useRef as r } from "react";
5
+ import { jsx as i } from "react/jsx-runtime";
5
6
  //#region src/utils/form/formUtils.ts
6
- var i;
7
+ var a;
7
8
  (function(e) {
8
9
  function t(e) {
9
10
  let t = Array.from(e.elements).reduce((e, t) => {
@@ -33,26 +34,29 @@ var i;
33
34
  });
34
35
  } else e[t] = n;
35
36
  }
36
- })(i ||= {});
37
- var a = i;
37
+ })(a ||= {});
38
+ var o = a;
38
39
  //#endregion
39
40
  //#region src/components/form.tsx
40
- function o(i) {
41
- let { onSubmit: o, props: s, ...c } = i, l = n(null), u = t((e) => {
41
+ function s(a) {
42
+ let { onSubmit: s, props: c, ...l } = a, u = r(null), d = t("form"), f = n((e) => {
42
43
  e.preventDefault();
43
- let t = a.getFormEntries(l.current);
44
- o(t, e);
45
- }, [o]), d = {
46
- ...s,
47
- onSubmit: u,
48
- ref: l
44
+ let t = o.getFormEntries(u.current);
45
+ s(t, e), d("submit", Object.keys(t), {
46
+ reason: "submit",
47
+ event: e
48
+ });
49
+ }, [s, d]), p = {
50
+ ...c,
51
+ onSubmit: f,
52
+ ref: u
49
53
  };
50
- return /* @__PURE__ */ r(e, {
54
+ return /* @__PURE__ */ i(e, {
51
55
  tag: "form",
52
- ...c,
53
- props: d
56
+ ...l,
57
+ props: p
54
58
  });
55
59
  }
56
- o.displayName = "Form";
60
+ s.displayName = "Form";
57
61
  //#endregion
58
- export { o as default };
62
+ export { s as default };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../keyboard.cjs"),o=require("../placement.cjs"),s=require("../layer.cjs"),c=require("./overlay.cjs");let l=require("react"),u=require("react/jsx-runtime");var d;(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 o(e){return e.getAttribute(`aria-haspopup`)===`menu`}e.isSubTrigger=o;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=a.t.target(t,n,e.length,t=>e[t].textContent??``);return r<0?void 0:e[r]}e.typeaheadTarget=c})(d||={});var f=d,p=(0,l.createContext)(null);function m(e){let t=(0,l.useContext)(p);if(!t)throw Error(`<${e}> must be rendered inside a <Menu>.`);return t}function h(e){let[t,n]=(0,l.useState)([]);return{panels:t,registerLayer:(0,l.useCallback)(t=>{n(e=>[...e,t]);let r=e?.(t);return()=>{n(e=>e.filter(e=>e!==t)),r?.()}},[e])}}var g=(0,l.createContext)(null);function _(e){let{trigger:t,children:n,open:i,defaultOpen:a=!1,onOpenChange:o,label:c,labelledBy:d,side:m=`bottom`,align:g=`start`,offset:_=1,flip:y=!0,matchWidth:b=!1,props:x,...S}=e,C=(0,l.useRef)(`first`),w=r.a(e=>{let t=f.items(e),n=C.current===`last`?t[t.length-1]:t[0];C.current=`first`,(n??e).focus()}),{panels:T,registerLayer:E}=h(),D=s.t({haspopup:`menu`,idPrefix:`menu`,id:S.id,open:i,defaultOpen:a,onOpenChange:o,onOpened:w,inside:T}),O=r.a(e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),C.current=e.key===`ArrowUp`?`last`:`first`,D.isOpen&&D.panelElement?w(D.panelElement):D.setOpen(!0,{reason:`trigger`,event:e}))}),k=(0,l.useMemo)(()=>({ref:D.trigger.ref,props:{...D.trigger.props,onKeyDown:O}}),[O,D.trigger]),A=r.a(e=>D.setOpen(!1,e)),j=(0,l.useMemo)(()=>({open:D.isOpen,closeAll:A,registerLayer:E}),[A,D.isOpen,E]);return(0,u.jsxs)(u.Fragment,{children:[t(k),(0,u.jsx)(p.Provider,{value:j,children:(0,u.jsx)(v,{layer:D,side:m,align:g,offset:_,flip:y,matchWidth:b,label:c,labelledBy:d??(c?void 0:D.triggerId),contentProps:x,...S,children:n})})]})}function v(t){let{layer:i,side:s,align:d,offset:p,flip:h,matchWidth:g,label:_,labelledBy:v,contentProps:y,closeSelf:b,children:x,...S}=t,{platform:C,isOpen:w,id:T,triggerElement:E,setPanel:D}=i,O=m(`Menu`),k=(0,l.useRef)({query:``,at:0}),A=o.t({side:s,align:d,offset:p,flip:h,matchWidth:g,anchor:E}),j={role:`menu`,"aria-label":_,"aria-labelledby":v,tabIndex:-1,onKeyDown:r.a(t=>{let n=t.currentTarget;if(!f.owns(n,t.target))return;let r=f.items(n),i=r.indexOf(document.activeElement),o=e=>{e&&(t.preventDefault(),e.focus())},s=e.d(n)?`ArrowRight`:`ArrowLeft`;switch(t.key){case`ArrowDown`:return o(f.step(r,i,1));case`ArrowUp`:return o(f.step(r,i,-1));case`Home`:return o(r[0]);case`End`:return o(r[r.length-1]);case`Tab`:return O.closeAll({reason:`tab`,event:t});case s:return b?(t.preventDefault(),b({reason:`trigger`,event:t})):void 0}if(a.t.isPrintable(t)){let e=a.t.push(k.current,t.key,t.timeStamp);o(f.typeaheadTarget(r,e,i))}}),onPointerOver:r.a(e=>{let t=e.currentTarget,n=e.target?.closest(f.ITEM_SELECTOR);!n||!f.owns(t,n)||n===document.activeElement||n.focus()}),...y};return C?(0,u.jsx)(n.default,{ref:D,component:`menu`,...S,variant:[S.variant,{topLayer:!0}],...A.layerProps,id:T,props:{popover:`auto`,...j},children:x}):w?(0,u.jsx)(c.default,{contentRef:D,anchor:E,side:s,align:d,offset:p,flip:h,matchWidth:g,component:`menu`,...S,id:T,props:j,children:x}):null}function y(a){let{label:o,children:c,disabled:d,side:g=`end`,align:_=`start`,offset:y=0,flip:b=!0,itemProps:x,props:S,...C}=a,w=m(`Menu.Sub`),T=i.t(`menu-sub`),E=r.a(e=>{(f.items(e)[0]??e).focus()}),D=r.a((e,t)=>{e&&t?.focus()}),{panels:O,registerLayer:k}=h(w.registerLayer),A=s.t({haspopup:`menu`,idPrefix:`menu-sub`,id:C.id,onOpened:E,onClosing:D,inside:O});t.n(()=>{if(!(!A.isOpen||!A.panelElement))return w.registerLayer(A.panelElement)},[A.isOpen,A.panelElement,w.registerLayer]),t.n(()=>{w.open||A.setOpen(!1,{reason:`imperative`})},[w.open,A.setOpen]),t.n(()=>{if(!A.isOpen)return;let t=new AbortController;return document.addEventListener(`focusin`,t=>{e.u(t,[A.panelElement,A.triggerElement])||A.setOpen(!1,{reason:`imperative`,event:t})},{signal:t.signal}),()=>t.abort()},[A.isOpen,A.panelElement,A.triggerElement,A.setOpen]);let j=r.a(t=>{let n=e.d(t.currentTarget)?`ArrowLeft`:`ArrowRight`;d||t.key!==n||(t.preventDefault(),A.setOpen(!0,{reason:`trigger`,event:t}))}),M=r.a(e=>{d||A.setOpen(!0,{reason:`trigger`,event:e})}),N=(0,l.useMemo)(()=>({open:A.isOpen,closeAll:w.closeAll,registerLayer:k}),[A.isOpen,w.closeAll,k]);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(n.default,{tag:`button`,ref:d?void 0:A.trigger.ref,component:`menu.item`,variant:{sub:!0},id:T,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":d||void 0,...A.trigger.props,...x,onKeyDown:j,onPointerEnter:M},children:[o,(0,u.jsx)(n.default,{component:`menu.arrow`})]}),!d&&(0,u.jsx)(p.Provider,{value:N,children:(0,u.jsx)(v,{layer:A,side:g,align:_,offset:y,flip:b,matchWidth:!1,labelledBy:T,contentProps:S,closeSelf:e=>A.setOpen(!1,e),...C,children:c})})]})}function b(e){let{onSelect:t,disabled:i,closeOnSelect:a=!0,props:o,children:s,...c}=e,l=m(`Menu.Item`),d=r.a(e=>{i||(t?.(e),a&&l.closeAll({reason:`select`,event:e}))});return(0,u.jsx)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":i||void 0,...o,onClick:d},children:s})}function x(e){let{checked:t,defaultChecked:i=!1,onCheckedChange:a,disabled:o,closeOnSelect:s=!1,props:c,children:l,...d}=e,f=m(`Menu.CheckboxItem`),[p,h]=r.i({value:t,defaultValue:i,onChange:a}),g=r.a(e=>{o||(h(!p,{reason:`select`,event:e}),s&&f.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...d,props:{type:`button`,role:`menuitemcheckbox`,tabIndex:-1,"aria-checked":p,"aria-disabled":o||void 0,...c,onClick:g},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.check`})}),l]})}function S(e){let{label:t,value:n,defaultValue:i=``,onValueChange:a,children:o,...s}=e,[c,d]=r.i({value:n,defaultValue:i,onChange:a}),f=r.a((e,t)=>d(e,{reason:`select`,event:t})),p=(0,l.useMemo)(()=>({value:c,select:f}),[c,f]);return(0,u.jsx)(g.Provider,{value:p,children:(0,u.jsx)(w,{label:t,...s,children:o})})}function C(e){let{value:t,disabled:i,closeOnSelect:a=!1,props:o,children:s,...c}=e,d=m(`Menu.RadioItem`),f=(0,l.useContext)(g);if(!f)throw Error(`<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.`);let p=f.value===t,h=r.a(e=>{i||(f.select(t,e),a&&d.closeAll({reason:`select`,event:e}))});return(0,u.jsxs)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitemradio`,tabIndex:-1,"aria-checked":p,"aria-disabled":i||void 0,...o,onClick:h},children:[(0,u.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,u.jsx)(n.default,{component:`menu.dot`})}),s]})}function w(e){let{label:t,props:r,children:a,...o}=e,s=i.t(`menu-group`);return(0,u.jsxs)(n.default,{component:`menu.group`,...o,props:{role:`group`,"aria-labelledby":t?s:void 0,...r},children:[t&&(0,u.jsx)(n.default,{component:`menu.label`,id:s,props:{role:`presentation`},children:t}),a]})}function T(e){let{props:t,...r}=e;return(0,u.jsx)(n.default,{component:`menu.separator`,...r,props:{role:`separator`,...t}})}b.displayName=`Menu.Item`,x.displayName=`Menu.CheckboxItem`,S.displayName=`Menu.RadioGroup`,C.displayName=`Menu.RadioItem`,w.displayName=`Menu.Group`,T.displayName=`Menu.Separator`,y.displayName=`Menu.Sub`;var E=Object.assign(_,{Item:b,CheckboxItem:x,RadioGroup:S,RadioItem:C,Group:w,Separator:T,Sub:y});_.displayName=`Menu`,exports.default=E;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../platform.cjs"),t=require("../effects.cjs"),n=require("../box.cjs"),r=require("../behavior.cjs"),i=require("../identity.cjs"),a=require("../keyboard.cjs"),o=require("../placement.cjs"),s=require("../reporting.cjs"),c=require("../layer.cjs"),l=require("./overlay.cjs");let u=require("react"),d=require("react/jsx-runtime");var f;(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 o(e){return e.getAttribute(`aria-haspopup`)===`menu`}e.isSubTrigger=o;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=a.t.target(t,n,e.length,t=>e[t].textContent??``);return r<0?void 0:e[r]}e.typeaheadTarget=c})(f||={});var p=f,m=(0,u.createContext)(null);function h(e){let t=(0,u.useContext)(m);if(!t)throw Error(`<${e}> must be rendered inside a <Menu>.`);return t}function g(e){let[t,n]=(0,u.useState)([]);return{panels:t,registerLayer:(0,u.useCallback)(t=>{n(e=>[...e,t]);let r=e?.(t);return()=>{n(e=>e.filter(e=>e!==t)),r?.()}},[e])}}var _=(0,u.createContext)(null);function v(e){let{trigger:t,children:n,open:i,defaultOpen:a=!1,onOpenChange:o,label:s,labelledBy:l,side:f=`bottom`,align:h=`start`,offset:_=1,flip:v=!0,matchWidth:b=!1,props:x,...S}=e,C=(0,u.useRef)(`first`),w=r.a(e=>{let t=p.items(e),n=C.current===`last`?t[t.length-1]:t[0];C.current=`first`,(n??e).focus()}),{panels:T,registerLayer:E}=g(),D=c.t({haspopup:`menu`,idPrefix:`menu`,id:S.id,open:i,defaultOpen:a,onOpenChange:o,interaction:{component:`menu`,type:`openChange`},onOpened:w,inside:T}),O=r.a(e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),C.current=e.key===`ArrowUp`?`last`:`first`,D.isOpen&&D.panelElement?w(D.panelElement):D.setOpen(!0,{reason:`trigger`,event:e}))}),k=(0,u.useMemo)(()=>({ref:D.trigger.ref,props:{...D.trigger.props,onKeyDown:O}}),[O,D.trigger]),A=r.a(e=>D.setOpen(!1,e)),j=(0,u.useMemo)(()=>({open:D.isOpen,closeAll:A,registerLayer:E}),[A,D.isOpen,E]);return(0,d.jsxs)(d.Fragment,{children:[t(k),(0,d.jsx)(m.Provider,{value:j,children:(0,d.jsx)(y,{layer:D,side:f,align:h,offset:_,flip:v,matchWidth:b,label:s,labelledBy:l??(s?void 0:D.triggerId),contentProps:x,...S,children:n})})]})}function y(t){let{layer:i,side:s,align:c,offset:f,flip:m,matchWidth:g,label:_,labelledBy:v,contentProps:y,closeSelf:b,children:x,...S}=t,{platform:C,isOpen:w,id:T,triggerElement:E,setPanel:D}=i,O=h(`Menu`),k=(0,u.useRef)({query:``,at:0}),A=o.t({side:s,align:c,offset:f,flip:m,matchWidth:g,anchor:E}),j={role:`menu`,"aria-label":_,"aria-labelledby":v,tabIndex:-1,onKeyDown:r.a(t=>{let n=t.currentTarget;if(!p.owns(n,t.target))return;let r=p.items(n),i=r.indexOf(document.activeElement),o=e=>{e&&(t.preventDefault(),e.focus())},s=e.p(n)?`ArrowRight`:`ArrowLeft`;switch(t.key){case`ArrowDown`:return o(p.step(r,i,1));case`ArrowUp`:return o(p.step(r,i,-1));case`Home`:return o(r[0]);case`End`:return o(r[r.length-1]);case`Tab`:return O.closeAll({reason:`tab`,event:t});case s:return b?(t.preventDefault(),b({reason:`trigger`,event:t})):void 0}if(a.t.isPrintable(t)){let e=a.t.push(k.current,t.key,t.timeStamp);o(p.typeaheadTarget(r,e,i))}}),onPointerOver:r.a(e=>{let t=e.currentTarget,n=e.target?.closest(p.ITEM_SELECTOR);!n||!p.owns(t,n)||n===document.activeElement||n.focus()}),...y};return C?(0,d.jsx)(n.default,{ref:D,component:`menu`,...S,variant:[S.variant,{topLayer:!0}],...A.layerProps,id:T,props:{popover:`auto`,...j},children:x}):w?(0,d.jsx)(l.default,{contentRef:D,anchor:E,side:s,align:c,offset:f,flip:m,matchWidth:g,component:`menu`,...S,id:T,props:j,children:x}):null}function b(a){let{label:o,children:l,disabled:f,side:_=`end`,align:v=`start`,offset:b=0,flip:S=!0,itemProps:C,props:w,...T}=a,E=h(`Menu.Sub`),D=i.t(`menu-sub`),O=r.a(e=>{(p.items(e)[0]??e).focus()}),k=r.a((e,t)=>{e&&t?.focus()}),{panels:A,registerLayer:j}=g(E.registerLayer),M=s.i(`menu.sub`),N=c.t({haspopup:`menu`,idPrefix:`menu-sub`,id:T.id,onOpened:O,onClosing:k,inside:A});t.n(()=>{if(!(!N.isOpen||!N.panelElement))return E.registerLayer(N.panelElement)},[N.isOpen,N.panelElement,E.registerLayer]),t.n(()=>{E.open||N.setOpen(!1,{reason:`imperative`})},[E.open,N.setOpen]),t.n(()=>{if(!N.isOpen)return;let t=new AbortController;return document.addEventListener(`focusin`,t=>{e.f(t,[N.panelElement,N.triggerElement])||N.setOpen(!1,{reason:`imperative`,event:t})},{signal:t.signal}),()=>t.abort()},[N.isOpen,N.panelElement,N.triggerElement,N.setOpen]);let P=r.a(t=>{let n=e.p(t.currentTarget)?`ArrowLeft`:`ArrowRight`;f||t.key!==n||(t.preventDefault(),N.setOpen(!0,{reason:`trigger`,event:t}),M(`openChange`,!0,{reason:`keyboard`,event:t,item:x(o)}))}),F=r.a(e=>{f||N.setOpen(!0,{reason:`trigger`,event:e})}),I=(0,u.useMemo)(()=>({open:N.isOpen,closeAll:E.closeAll,registerLayer:j}),[N.isOpen,E.closeAll,j]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(n.default,{tag:`button`,ref:f?void 0:N.trigger.ref,component:`menu.item`,variant:{sub:!0},id:D,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":f||void 0,...N.trigger.props,...C,onKeyDown:P,onPointerEnter:F},children:[o,(0,d.jsx)(n.default,{component:`menu.arrow`})]}),!f&&(0,d.jsx)(m.Provider,{value:I,children:(0,d.jsx)(y,{layer:N,side:_,align:v,offset:b,flip:S,matchWidth:!1,labelledBy:D,contentProps:w,closeSelf:e=>N.setOpen(!1,e),...T,children:l})})]})}var x=(e,t)=>t??(typeof e==`string`?e:void 0);function S(e){let{onSelect:t,disabled:i,closeOnSelect:a=!0,value:o,props:c,children:l,...u}=e,f=h(`Menu.Item`),p=s.i(`menu.item`),m=r.a(e=>{i||(t?.(e),p(`select`,x(l,o),{reason:`select`,event:e}),a&&f.closeAll({reason:`select`,event:e}))});return(0,d.jsx)(n.default,{tag:`button`,component:`menu.item`,...u,props:{type:`button`,role:`menuitem`,tabIndex:-1,"aria-disabled":i||void 0,...c,onClick:m},children:l})}function C(e){let{checked:t,defaultChecked:i=!1,onCheckedChange:a,disabled:o,closeOnSelect:c=!1,value:l,props:u,children:f,...p}=e,m=h(`Menu.CheckboxItem`),[g,_]=r.i({value:t,defaultValue:i,onChange:a}),v=s.i(`menu.checkboxItem`),y=r.a(e=>{o||(_(!g,{reason:`select`,event:e}),v(`checkedChange`,!g,{reason:`select`,event:e,item:x(f,l)}),c&&m.closeAll({reason:`select`,event:e}))});return(0,d.jsxs)(n.default,{tag:`button`,component:`menu.item`,...p,props:{type:`button`,role:`menuitemcheckbox`,tabIndex:-1,"aria-checked":g,"aria-disabled":o||void 0,...u,onClick:y},children:[(0,d.jsx)(n.default,{component:`menu.indicator`,children:g&&(0,d.jsx)(n.default,{component:`menu.check`})}),f]})}function w(e){let{label:t,value:n,defaultValue:i=``,onValueChange:a,children:o,...c}=e,[l,f]=s.a({value:n,defaultValue:i,onChange:a,interaction:{component:`menu.radioGroup`,type:`valueChange`}}),p=r.a((e,t)=>f(e,{reason:`select`,event:t})),m=(0,u.useMemo)(()=>({value:l,select:p}),[l,p]);return(0,d.jsx)(_.Provider,{value:m,children:(0,d.jsx)(E,{label:t,...c,children:o})})}function T(e){let{value:t,disabled:i,closeOnSelect:a=!1,props:o,children:s,...c}=e,l=h(`Menu.RadioItem`),f=(0,u.useContext)(_);if(!f)throw Error(`<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.`);let p=f.value===t,m=r.a(e=>{i||(f.select(t,e),a&&l.closeAll({reason:`select`,event:e}))});return(0,d.jsxs)(n.default,{tag:`button`,component:`menu.item`,...c,props:{type:`button`,role:`menuitemradio`,tabIndex:-1,"aria-checked":p,"aria-disabled":i||void 0,...o,onClick:m},children:[(0,d.jsx)(n.default,{component:`menu.indicator`,children:p&&(0,d.jsx)(n.default,{component:`menu.dot`})}),s]})}function E(e){let{label:t,props:r,children:a,...o}=e,s=i.t(`menu-group`);return(0,d.jsxs)(n.default,{component:`menu.group`,...o,props:{role:`group`,"aria-labelledby":t?s:void 0,...r},children:[t&&(0,d.jsx)(n.default,{component:`menu.label`,id:s,props:{role:`presentation`},children:t}),a]})}function D(e){let{props:t,...r}=e;return(0,d.jsx)(n.default,{component:`menu.separator`,...r,props:{role:`separator`,...t}})}S.displayName=`Menu.Item`,C.displayName=`Menu.CheckboxItem`,w.displayName=`Menu.RadioGroup`,T.displayName=`Menu.RadioItem`,E.displayName=`Menu.Group`,D.displayName=`Menu.Separator`,b.displayName=`Menu.Sub`;var O=Object.assign(v,{Item:S,CheckboxItem:C,RadioGroup:w,RadioItem:T,Group:E,Separator:D,Sub:b});v.displayName=`Menu`,exports.default=O;
@@ -74,6 +74,8 @@ export interface MenuItemProps<TKey extends keyof ComponentsAndVariants = 'menu.
74
74
  disabled?: boolean;
75
75
  /** Whether choosing it closes the whole menu. Default `true`. */
76
76
  closeOnSelect?: boolean;
77
+ /** What `Box.onInteraction` calls the item when it is chosen. Default: its text, when that is all it holds. */
78
+ value?: string;
77
79
  }
78
80
  /** Every Box prop, on the `<button>` that is one checkbox item. */
79
81
  export interface MenuCheckboxItemProps<TKey extends keyof ComponentsAndVariants = 'menu.item'> extends Omit<MenuItemProps<TKey>, 'onSelect' | 'checked'> {