@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.
- package/BOX_AI_CONTEXT.md +76 -0
- package/BOX_KITE_AI_CONTEXT.md +76 -0
- package/analytics.cjs +1 -0
- package/analytics.d.ts +10 -0
- package/analytics.mjs +121 -0
- package/behavior.cjs +1 -1
- package/behavior.mjs +42 -38
- package/box.cjs +1 -1
- package/box.d.ts +9 -0
- package/box.mjs +17 -16
- package/catalog.cjs +1 -1
- package/catalog.mjs +8 -0
- package/client.cjs +1 -1
- package/client.mjs +120 -120
- package/components/accordion.cjs +1 -1
- package/components/accordion.mjs +19 -10
- package/components/agent.cjs +1 -1
- package/components/agent.mjs +21 -8
- package/components/calendar.cjs +1 -1
- package/components/calendar.d.ts +3 -1
- package/components/calendar.mjs +154 -142
- package/components/combobox.cjs +1 -1
- package/components/combobox.mjs +184 -174
- package/components/dashboard.cjs +1 -1
- package/components/dashboard.mjs +183 -170
- package/components/dataGrid/models/columnModel.d.ts +1 -0
- package/components/dataGrid/models/gridModel.d.ts +18 -0
- package/components/dataGrid/models/rangeModel.d.ts +3 -0
- package/components/dataGrid.cjs +3 -3
- package/components/dataGrid.mjs +987 -896
- package/components/dateField.cjs +1 -1
- package/components/dateField.mjs +160 -149
- package/components/datePicker.cjs +1 -1
- package/components/datePicker.mjs +226 -206
- package/components/dialog.cjs +1 -1
- package/components/dialog.mjs +38 -33
- package/components/dropdown.cjs +1 -1
- package/components/dropdown.mjs +107 -93
- package/components/form.cjs +1 -1
- package/components/form.mjs +22 -18
- package/components/menu.cjs +1 -1
- package/components/menu.d.ts +2 -0
- package/components/menu.mjs +196 -175
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +7 -7
- package/components/popover.cjs +1 -1
- package/components/popover.mjs +4 -0
- package/components/radioGroup.cjs +1 -1
- package/components/radioGroup.mjs +10 -5
- package/components/slider.cjs +1 -1
- package/components/slider.mjs +84 -83
- package/components/sortableList.cjs +1 -1
- package/components/sortableList.mjs +158 -150
- package/components/swipeItem.cjs +1 -1
- package/components/swipeItem.mjs +92 -84
- package/components/tabs.cjs +1 -1
- package/components/tabs.mjs +10 -5
- package/components/timeZoneSelect.cjs +1 -1
- package/components/timeZoneSelect.mjs +40 -35
- package/components/toaster.cjs +1 -1
- package/components/toaster.mjs +151 -113
- package/dataGridDateParts.cjs +1 -1
- package/dataGridDateParts.mjs +56 -55
- package/dataGridList.cjs +1 -1
- package/dataGridList.mjs +430 -429
- package/effects.cjs +1 -1
- package/effects.mjs +1 -1
- package/interactionListening.cjs +1 -0
- package/interactionListening.mjs +117 -0
- package/interactions.cjs +1 -0
- package/interactions.mjs +25 -0
- package/layer.cjs +1 -1
- package/layer.mjs +68 -66
- package/package.json +132 -68
- package/placement.cjs +1 -1
- package/placement.mjs +10 -10
- package/platform.cjs +1 -1
- package/platform.mjs +44 -25
- package/react/interactions/interactions.d.ts +30 -0
- package/react/popover/usePopoverLayer.d.ts +3 -0
- package/react/useStyles.d.ts +8 -1
- package/react-shared.cjs +1 -1
- package/react-shared.mjs +49 -48
- package/reporting.cjs +1 -0
- package/reporting.mjs +51 -0
- package/scrolling.cjs +1 -1
- package/scrolling.mjs +1 -1
- package/supabase/functions/collect/index.d.ts +30 -0
- package/supabase/functions/collect/index.test.d.ts +1 -0
- package/utils/analytics/analytics.d.ts +72 -0
- package/utils/analytics/analyticsIdentity.d.ts +13 -0
- package/utils/interactions/componentAttribute.d.ts +6 -0
- package/utils/interactions/interactionChannel.d.ts +35 -0
- package/utils/interactions/interactionJson.d.ts +6 -0
- package/utils/interactions/interactionListening.d.ts +6 -0
- package/utils/interactions/interactionTypes.d.ts +224 -0
package/components/form.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import e from "../box.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|
|
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
|
-
})(
|
|
37
|
-
var
|
|
37
|
+
})(a ||= {});
|
|
38
|
+
var o = a;
|
|
38
39
|
//#endregion
|
|
39
40
|
//#region src/components/form.tsx
|
|
40
|
-
function
|
|
41
|
-
let { onSubmit:
|
|
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 =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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__ */
|
|
54
|
+
return /* @__PURE__ */ i(e, {
|
|
51
55
|
tag: "form",
|
|
52
|
-
...
|
|
53
|
-
props:
|
|
56
|
+
...l,
|
|
57
|
+
props: p
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
|
-
|
|
60
|
+
s.displayName = "Form";
|
|
57
61
|
//#endregion
|
|
58
|
-
export {
|
|
62
|
+
export { s as default };
|
package/components/menu.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../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("../
|
|
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;
|
package/components/menu.d.ts
CHANGED
|
@@ -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'> {
|