@box-kite/react 2.2.6 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.claude/rules/box-kite-rules.md +2 -0
  2. package/.claude/skills/box-kite/SKILL.md +2 -0
  3. package/.claude/skills/box-kite/references/extending.md +10 -0
  4. package/.claude/skills/box-kite/references/styling.md +3 -2
  5. package/.cursor/rules/box-kite.mdc +2 -0
  6. package/AGENTS.md +2 -0
  7. package/BOX_AI_CONTEXT.md +128 -2
  8. package/BOX_KITE_AI_CONTEXT.md +128 -2
  9. package/analytics.cjs +1 -0
  10. package/analytics.d.ts +10 -0
  11. package/analytics.mjs +121 -0
  12. package/behavior.cjs +1 -1
  13. package/behavior.mjs +42 -38
  14. package/box.cjs +1 -1
  15. package/box.d.ts +14 -0
  16. package/box.mjs +17 -16
  17. package/catalog.cjs +1 -1
  18. package/catalog.mjs +8 -0
  19. package/client.cjs +1 -1
  20. package/client.mjs +144 -113
  21. package/components/accordion.cjs +1 -1
  22. package/components/accordion.mjs +19 -10
  23. package/components/agent.cjs +1 -1
  24. package/components/agent.mjs +21 -8
  25. package/components/calendar.cjs +1 -1
  26. package/components/calendar.d.ts +3 -1
  27. package/components/calendar.mjs +154 -142
  28. package/components/combobox.cjs +1 -1
  29. package/components/combobox.mjs +184 -174
  30. package/components/dashboard.cjs +1 -1
  31. package/components/dashboard.mjs +183 -170
  32. package/components/dataGrid/models/columnModel.d.ts +1 -0
  33. package/components/dataGrid/models/gridModel.d.ts +18 -0
  34. package/components/dataGrid/models/headerCellModel.d.ts +1 -0
  35. package/components/dataGrid/models/rangeModel.d.ts +3 -0
  36. package/components/dataGrid.cjs +3 -3
  37. package/components/dataGrid.mjs +1015 -923
  38. package/components/dateField.cjs +1 -1
  39. package/components/dateField.mjs +165 -159
  40. package/components/datePicker.cjs +1 -1
  41. package/components/datePicker.mjs +198 -183
  42. package/components/dialog.cjs +1 -1
  43. package/components/dialog.mjs +38 -33
  44. package/components/dropdown.cjs +1 -1
  45. package/components/dropdown.mjs +107 -93
  46. package/components/form.cjs +1 -1
  47. package/components/form.mjs +22 -18
  48. package/components/menu.cjs +1 -1
  49. package/components/menu.d.ts +2 -0
  50. package/components/menu.mjs +196 -175
  51. package/components/overlay.cjs +1 -1
  52. package/components/overlay.mjs +7 -7
  53. package/components/popover.cjs +1 -1
  54. package/components/popover.mjs +4 -0
  55. package/components/radioGroup.cjs +1 -1
  56. package/components/radioGroup.mjs +10 -5
  57. package/components/semantics.d.ts +29 -29
  58. package/components/slider.cjs +1 -1
  59. package/components/slider.mjs +84 -83
  60. package/components/sortableList.cjs +1 -1
  61. package/components/sortableList.mjs +158 -150
  62. package/components/swipeItem.cjs +1 -1
  63. package/components/swipeItem.mjs +92 -84
  64. package/components/tabs.cjs +1 -1
  65. package/components/tabs.mjs +10 -5
  66. package/components/timeZoneSelect.cjs +1 -1
  67. package/components/timeZoneSelect.mjs +40 -35
  68. package/components/toaster.cjs +1 -1
  69. package/components/toaster.mjs +151 -113
  70. package/create/src/index.d.ts +1 -0
  71. package/create/src/options.d.ts +27 -0
  72. package/create/src/options.test.d.ts +1 -0
  73. package/create/src/packageManager.d.ts +5 -0
  74. package/create/src/project.d.ts +25 -0
  75. package/create/src/project.test.d.ts +1 -0
  76. package/create/templates/ts/designs/azure.d.ts +5 -0
  77. package/create/templates/ts/designs/ember.d.ts +5 -0
  78. package/create/templates/ts/designs/mono.d.ts +5 -0
  79. package/create/templates/ts/src/App.d.ts +2 -0
  80. package/create/templates/ts/src/design.d.ts +5 -0
  81. package/create/templates/ts/src/main.d.ts +0 -0
  82. package/dataGridDateParts.cjs +1 -1
  83. package/dataGridDateParts.mjs +56 -55
  84. package/dataGridList.cjs +1 -1
  85. package/dataGridList.mjs +437 -436
  86. package/docs/props.md +19 -19
  87. package/effects.cjs +1 -1
  88. package/effects.mjs +1 -1
  89. package/interactionListening.cjs +1 -0
  90. package/interactionListening.mjs +117 -0
  91. package/interactions.cjs +1 -0
  92. package/interactions.mjs +25 -0
  93. package/layer.cjs +1 -1
  94. package/layer.mjs +68 -66
  95. package/package.json +139 -70
  96. package/placement.cjs +1 -1
  97. package/placement.mjs +10 -10
  98. package/platform.cjs +1 -1
  99. package/platform.mjs +44 -25
  100. package/react/interactions/interactions.d.ts +30 -0
  101. package/react/popover/usePopoverLayer.d.ts +3 -0
  102. package/react/theme/theme.d.ts +9 -0
  103. package/react/theme/themeContext.d.ts +2 -0
  104. package/react/useStyles.d.ts +8 -1
  105. package/react-shared.cjs +1 -1
  106. package/react-shared.mjs +49 -48
  107. package/reporting.cjs +1 -0
  108. package/reporting.mjs +51 -0
  109. package/rsc.cjs +1 -1
  110. package/rsc.d.ts +3 -0
  111. package/rsc.mjs +1 -1
  112. package/scrolling.cjs +1 -1
  113. package/scrolling.mjs +1 -1
  114. package/supabase/functions/collect/index.d.ts +30 -0
  115. package/supabase/functions/collect/index.test.d.ts +1 -0
  116. package/utils/analytics/analytics.d.ts +72 -0
  117. package/utils/analytics/analyticsIdentity.d.ts +13 -0
  118. package/utils/interactions/componentAttribute.d.ts +6 -0
  119. package/utils/interactions/interactionChannel.d.ts +35 -0
  120. package/utils/interactions/interactionJson.d.ts +6 -0
  121. package/utils/interactions/interactionListening.d.ts +6 -0
  122. package/utils/interactions/interactionTypes.d.ts +224 -0
@@ -1,17 +1,18 @@
1
1
  "use client";
2
- import { d as e, u as t } from "../platform.mjs";
2
+ import { f as e, p as t } from "../platform.mjs";
3
3
  import { n } from "../effects.mjs";
4
4
  import r from "../box.mjs";
5
5
  import { a as i, i as a } from "../behavior.mjs";
6
6
  import { t as o } from "../identity.mjs";
7
7
  import { t as s } from "../keyboard.mjs";
8
8
  import { t as c } from "../placement.mjs";
9
- import { t as l } from "../layer.mjs";
10
- import u from "./overlay.mjs";
11
- import { createContext as d, useCallback as f, useContext as p, useMemo as m, useRef as h, useState as g } from "react";
12
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
9
+ import { a as l, i as u } from "../reporting.mjs";
10
+ import { t as d } from "../layer.mjs";
11
+ import f from "./overlay.mjs";
12
+ import { createContext as p, useCallback as m, useContext as h, useMemo as g, useRef as _, useState as v } from "react";
13
+ import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
13
14
  //#region src/utils/menu/menuUtils.ts
14
- var b;
15
+ var S;
15
16
  (function(e) {
16
17
  let t = e.ITEM_SELECTOR = "[role=\"menuitem\"],[role=\"menuitemcheckbox\"],[role=\"menuitemradio\"]";
17
18
  function n(e, t) {
@@ -39,18 +40,18 @@ var b;
39
40
  return r < 0 ? void 0 : e[r];
40
41
  }
41
42
  e.typeaheadTarget = c;
42
- })(b ||= {});
43
- var x = b, S = d(null);
44
- function C(e) {
45
- let t = p(S);
43
+ })(S ||= {});
44
+ var C = S, w = p(null);
45
+ function T(e) {
46
+ let t = h(w);
46
47
  if (!t) throw Error(`<${e}> must be rendered inside a <Menu>.`);
47
48
  return t;
48
49
  }
49
- function w(e) {
50
- let [t, n] = g([]);
50
+ function E(e) {
51
+ let [t, n] = v([]);
51
52
  return {
52
53
  panels: t,
53
- registerLayer: f((t) => {
54
+ registerLayer: m((t) => {
54
55
  n((e) => [...e, t]);
55
56
  let r = e?.(t);
56
57
  return () => {
@@ -59,190 +60,198 @@ function w(e) {
59
60
  }, [e])
60
61
  };
61
62
  }
62
- var T = d(null);
63
- function E(e) {
64
- let { trigger: t, children: n, open: r, defaultOpen: a = !1, onOpenChange: o, label: s, labelledBy: c, side: u = "bottom", align: d = "start", offset: f = 1, flip: p = !0, matchWidth: g = !1, props: b, ...C } = e, T = h("first"), E = i((e) => {
65
- let t = x.items(e), n = T.current === "last" ? t[t.length - 1] : t[0];
66
- T.current = "first", (n ?? e).focus();
67
- }), { panels: O, registerLayer: k } = w(), A = l({
63
+ var D = p(null);
64
+ function O(e) {
65
+ let { trigger: t, children: n, open: r, defaultOpen: a = !1, onOpenChange: o, label: s, labelledBy: c, side: l = "bottom", align: u = "start", offset: f = 1, flip: p = !0, matchWidth: m = !1, props: h, ...v } = e, S = _("first"), T = i((e) => {
66
+ let t = C.items(e), n = S.current === "last" ? t[t.length - 1] : t[0];
67
+ S.current = "first", (n ?? e).focus();
68
+ }), { panels: D, registerLayer: O } = E(), A = d({
68
69
  haspopup: "menu",
69
70
  idPrefix: "menu",
70
- id: C.id,
71
+ id: v.id,
71
72
  open: r,
72
73
  defaultOpen: a,
73
74
  onOpenChange: o,
74
- onOpened: E,
75
- inside: O
75
+ interaction: {
76
+ component: "menu",
77
+ type: "openChange"
78
+ },
79
+ onOpened: T,
80
+ inside: D
76
81
  }), j = i((e) => {
77
- (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), T.current = e.key === "ArrowUp" ? "last" : "first", A.isOpen && A.panelElement ? E(A.panelElement) : A.setOpen(!0, {
82
+ (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), S.current = e.key === "ArrowUp" ? "last" : "first", A.isOpen && A.panelElement ? T(A.panelElement) : A.setOpen(!0, {
78
83
  reason: "trigger",
79
84
  event: e
80
85
  }));
81
- }), M = m(() => ({
86
+ }), M = g(() => ({
82
87
  ref: A.trigger.ref,
83
88
  props: {
84
89
  ...A.trigger.props,
85
90
  onKeyDown: j
86
91
  }
87
- }), [j, A.trigger]), N = i((e) => A.setOpen(!1, e)), P = m(() => ({
92
+ }), [j, A.trigger]), N = i((e) => A.setOpen(!1, e)), P = g(() => ({
88
93
  open: A.isOpen,
89
94
  closeAll: N,
90
- registerLayer: k
95
+ registerLayer: O
91
96
  }), [
92
97
  N,
93
98
  A.isOpen,
94
- k
99
+ O
95
100
  ]);
96
- return /* @__PURE__ */ y(_, { children: [t(M), /* @__PURE__ */ v(S.Provider, {
101
+ return /* @__PURE__ */ x(y, { children: [t(M), /* @__PURE__ */ b(w.Provider, {
97
102
  value: P,
98
- children: /* @__PURE__ */ v(D, {
103
+ children: /* @__PURE__ */ b(k, {
99
104
  layer: A,
100
- side: u,
101
- align: d,
105
+ side: l,
106
+ align: u,
102
107
  offset: f,
103
108
  flip: p,
104
- matchWidth: g,
109
+ matchWidth: m,
105
110
  label: s,
106
111
  labelledBy: c ?? (s ? void 0 : A.triggerId),
107
- contentProps: b,
108
- ...C,
112
+ contentProps: h,
113
+ ...v,
109
114
  children: n
110
115
  })
111
116
  })] });
112
117
  }
113
- function D(t) {
114
- let { layer: n, side: a, align: o, offset: l, flip: d, matchWidth: f, label: p, labelledBy: m, contentProps: g, closeSelf: _, children: y, ...b } = t, { platform: S, isOpen: w, id: T, triggerElement: E, setPanel: D } = n, O = C("Menu"), k = h({
118
+ function k(e) {
119
+ let { layer: n, side: a, align: o, offset: l, flip: u, matchWidth: d, label: p, labelledBy: m, contentProps: h, closeSelf: g, children: v, ...y } = e, { platform: x, isOpen: S, id: w, triggerElement: E, setPanel: D } = n, O = T("Menu"), k = _({
115
120
  query: "",
116
121
  at: 0
117
122
  }), A = c({
118
123
  side: a,
119
124
  align: o,
120
125
  offset: l,
121
- flip: d,
122
- matchWidth: f,
126
+ flip: u,
127
+ matchWidth: d,
123
128
  anchor: E
124
129
  }), j = {
125
130
  role: "menu",
126
131
  "aria-label": p,
127
132
  "aria-labelledby": m,
128
133
  tabIndex: -1,
129
- onKeyDown: i((t) => {
130
- let n = t.currentTarget;
131
- if (!x.owns(n, t.target)) return;
132
- let r = x.items(n), i = r.indexOf(document.activeElement), a = (e) => {
133
- e && (t.preventDefault(), e.focus());
134
- }, o = e(n) ? "ArrowRight" : "ArrowLeft";
135
- switch (t.key) {
136
- case "ArrowDown": return a(x.step(r, i, 1));
137
- case "ArrowUp": return a(x.step(r, i, -1));
134
+ onKeyDown: i((e) => {
135
+ let n = e.currentTarget;
136
+ if (!C.owns(n, e.target)) return;
137
+ let r = C.items(n), i = r.indexOf(document.activeElement), a = (t) => {
138
+ t && (e.preventDefault(), t.focus());
139
+ }, o = t(n) ? "ArrowRight" : "ArrowLeft";
140
+ switch (e.key) {
141
+ case "ArrowDown": return a(C.step(r, i, 1));
142
+ case "ArrowUp": return a(C.step(r, i, -1));
138
143
  case "Home": return a(r[0]);
139
144
  case "End": return a(r[r.length - 1]);
140
145
  case "Tab": return O.closeAll({
141
146
  reason: "tab",
142
- event: t
147
+ event: e
143
148
  });
144
- case o: return _ ? (t.preventDefault(), _({
149
+ case o: return g ? (e.preventDefault(), g({
145
150
  reason: "trigger",
146
- event: t
151
+ event: e
147
152
  })) : void 0;
148
153
  }
149
- if (s.isPrintable(t)) {
150
- let e = s.push(k.current, t.key, t.timeStamp);
151
- a(x.typeaheadTarget(r, e, i));
154
+ if (s.isPrintable(e)) {
155
+ let t = s.push(k.current, e.key, e.timeStamp);
156
+ a(C.typeaheadTarget(r, t, i));
152
157
  }
153
158
  }),
154
159
  onPointerOver: i((e) => {
155
- let t = e.currentTarget, n = e.target?.closest(x.ITEM_SELECTOR);
156
- !n || !x.owns(t, n) || n === document.activeElement || n.focus();
160
+ let t = e.currentTarget, n = e.target?.closest(C.ITEM_SELECTOR);
161
+ !n || !C.owns(t, n) || n === document.activeElement || n.focus();
157
162
  }),
158
- ...g
163
+ ...h
159
164
  };
160
- return S ? /* @__PURE__ */ v(r, {
165
+ return x ? /* @__PURE__ */ b(r, {
161
166
  ref: D,
162
167
  component: "menu",
163
- ...b,
164
- variant: [b.variant, { topLayer: !0 }],
168
+ ...y,
169
+ variant: [y.variant, { topLayer: !0 }],
165
170
  ...A.layerProps,
166
- id: T,
171
+ id: w,
167
172
  props: {
168
173
  popover: "auto",
169
174
  ...j
170
175
  },
171
- children: y
172
- }) : w ? /* @__PURE__ */ v(u, {
176
+ children: v
177
+ }) : S ? /* @__PURE__ */ b(f, {
173
178
  contentRef: D,
174
179
  anchor: E,
175
180
  side: a,
176
181
  align: o,
177
182
  offset: l,
178
- flip: d,
179
- matchWidth: f,
183
+ flip: u,
184
+ matchWidth: d,
180
185
  component: "menu",
181
- ...b,
182
- id: T,
186
+ ...y,
187
+ id: w,
183
188
  props: j,
184
- children: y
189
+ children: v
185
190
  }) : null;
186
191
  }
187
- function O(a) {
188
- let { label: s, children: c, disabled: u, side: d = "end", align: f = "start", offset: p = 0, flip: h = !0, itemProps: g, props: b, ...T } = a, E = C("Menu.Sub"), O = o("menu-sub"), k = i((e) => {
189
- (x.items(e)[0] ?? e).focus();
190
- }), A = i((e, t) => {
192
+ function A(a) {
193
+ let { label: s, children: c, disabled: l, side: f = "end", align: p = "start", offset: m = 0, flip: h = !0, itemProps: _, props: v, ...S } = a, D = T("Menu.Sub"), O = o("menu-sub"), A = i((e) => {
194
+ (C.items(e)[0] ?? e).focus();
195
+ }), M = i((e, t) => {
191
196
  e && t?.focus();
192
- }), { panels: j, registerLayer: M } = w(E.registerLayer), N = l({
197
+ }), { panels: N, registerLayer: P } = E(D.registerLayer), F = u("menu.sub"), I = d({
193
198
  haspopup: "menu",
194
199
  idPrefix: "menu-sub",
195
- id: T.id,
196
- onOpened: k,
197
- onClosing: A,
198
- inside: j
200
+ id: S.id,
201
+ onOpened: A,
202
+ onClosing: M,
203
+ inside: N
199
204
  });
200
205
  n(() => {
201
- if (!(!N.isOpen || !N.panelElement)) return E.registerLayer(N.panelElement);
206
+ if (!(!I.isOpen || !I.panelElement)) return D.registerLayer(I.panelElement);
202
207
  }, [
203
- N.isOpen,
204
- N.panelElement,
205
- E.registerLayer
208
+ I.isOpen,
209
+ I.panelElement,
210
+ D.registerLayer
206
211
  ]), n(() => {
207
- E.open || N.setOpen(!1, { reason: "imperative" });
208
- }, [E.open, N.setOpen]), n(() => {
209
- if (!N.isOpen) return;
210
- let e = new AbortController();
211
- return document.addEventListener("focusin", (e) => {
212
- t(e, [N.panelElement, N.triggerElement]) || N.setOpen(!1, {
212
+ D.open || I.setOpen(!1, { reason: "imperative" });
213
+ }, [D.open, I.setOpen]), n(() => {
214
+ if (!I.isOpen) return;
215
+ let t = new AbortController();
216
+ return document.addEventListener("focusin", (t) => {
217
+ e(t, [I.panelElement, I.triggerElement]) || I.setOpen(!1, {
213
218
  reason: "imperative",
214
- event: e
219
+ event: t
215
220
  });
216
- }, { signal: e.signal }), () => e.abort();
221
+ }, { signal: t.signal }), () => t.abort();
217
222
  }, [
218
- N.isOpen,
219
- N.panelElement,
220
- N.triggerElement,
221
- N.setOpen
223
+ I.isOpen,
224
+ I.panelElement,
225
+ I.triggerElement,
226
+ I.setOpen
222
227
  ]);
223
- let P = i((t) => {
224
- let n = e(t.currentTarget) ? "ArrowLeft" : "ArrowRight";
225
- u || t.key !== n || (t.preventDefault(), N.setOpen(!0, {
228
+ let L = i((e) => {
229
+ let n = t(e.currentTarget) ? "ArrowLeft" : "ArrowRight";
230
+ l || e.key !== n || (e.preventDefault(), I.setOpen(!0, {
226
231
  reason: "trigger",
227
- event: t
232
+ event: e
233
+ }), F("openChange", !0, {
234
+ reason: "keyboard",
235
+ event: e,
236
+ item: j(s)
228
237
  }));
229
- }), F = i((e) => {
230
- u || N.setOpen(!0, {
238
+ }), R = i((e) => {
239
+ l || I.setOpen(!0, {
231
240
  reason: "trigger",
232
241
  event: e
233
242
  });
234
- }), I = m(() => ({
235
- open: N.isOpen,
236
- closeAll: E.closeAll,
237
- registerLayer: M
243
+ }), z = g(() => ({
244
+ open: I.isOpen,
245
+ closeAll: D.closeAll,
246
+ registerLayer: P
238
247
  }), [
239
- N.isOpen,
240
- E.closeAll,
241
- M
248
+ I.isOpen,
249
+ D.closeAll,
250
+ P
242
251
  ]);
243
- return /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y(r, {
252
+ return /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ x(r, {
244
253
  tag: "button",
245
- ref: u ? void 0 : N.trigger.ref,
254
+ ref: l ? void 0 : I.trigger.ref,
246
255
  component: "menu.item",
247
256
  variant: { sub: !0 },
248
257
  id: O,
@@ -250,108 +259,120 @@ function O(a) {
250
259
  type: "button",
251
260
  role: "menuitem",
252
261
  tabIndex: -1,
253
- "aria-disabled": u || void 0,
254
- ...N.trigger.props,
255
- ...g,
256
- onKeyDown: P,
257
- onPointerEnter: F
262
+ "aria-disabled": l || void 0,
263
+ ...I.trigger.props,
264
+ ..._,
265
+ onKeyDown: L,
266
+ onPointerEnter: R
258
267
  },
259
- children: [s, /* @__PURE__ */ v(r, { component: "menu.arrow" })]
260
- }), !u && /* @__PURE__ */ v(S.Provider, {
261
- value: I,
262
- children: /* @__PURE__ */ v(D, {
263
- layer: N,
264
- side: d,
265
- align: f,
266
- offset: p,
268
+ children: [s, /* @__PURE__ */ b(r, { component: "menu.arrow" })]
269
+ }), !l && /* @__PURE__ */ b(w.Provider, {
270
+ value: z,
271
+ children: /* @__PURE__ */ b(k, {
272
+ layer: I,
273
+ side: f,
274
+ align: p,
275
+ offset: m,
267
276
  flip: h,
268
277
  matchWidth: !1,
269
278
  labelledBy: O,
270
- contentProps: b,
271
- closeSelf: (e) => N.setOpen(!1, e),
272
- ...T,
279
+ contentProps: v,
280
+ closeSelf: (e) => I.setOpen(!1, e),
281
+ ...S,
273
282
  children: c
274
283
  })
275
284
  })] });
276
285
  }
277
- function k(e) {
278
- let { onSelect: t, disabled: n, closeOnSelect: a = !0, props: o, children: s, ...c } = e, l = C("Menu.Item"), u = i((e) => {
279
- n || (t?.(e), a && l.closeAll({
286
+ var j = (e, t) => t ?? (typeof e == "string" ? e : void 0);
287
+ function M(e) {
288
+ let { onSelect: t, disabled: n, closeOnSelect: a = !0, value: o, props: s, children: c, ...l } = e, d = T("Menu.Item"), f = u("menu.item"), p = i((e) => {
289
+ n || (t?.(e), f("select", j(c, o), {
290
+ reason: "select",
291
+ event: e
292
+ }), a && d.closeAll({
280
293
  reason: "select",
281
294
  event: e
282
295
  }));
283
296
  });
284
- return /* @__PURE__ */ v(r, {
297
+ return /* @__PURE__ */ b(r, {
285
298
  tag: "button",
286
299
  component: "menu.item",
287
- ...c,
300
+ ...l,
288
301
  props: {
289
302
  type: "button",
290
303
  role: "menuitem",
291
304
  tabIndex: -1,
292
305
  "aria-disabled": n || void 0,
293
- ...o,
294
- onClick: u
306
+ ...s,
307
+ onClick: p
295
308
  },
296
- children: s
309
+ children: c
297
310
  });
298
311
  }
299
- function A(e) {
300
- let { checked: t, defaultChecked: n = !1, onCheckedChange: o, disabled: s, closeOnSelect: c = !1, props: l, children: u, ...d } = e, f = C("Menu.CheckboxItem"), [p, m] = a({
312
+ function N(e) {
313
+ let { checked: t, defaultChecked: n = !1, onCheckedChange: o, disabled: s, closeOnSelect: c = !1, value: l, props: d, children: f, ...p } = e, m = T("Menu.CheckboxItem"), [h, g] = a({
301
314
  value: t,
302
315
  defaultValue: n,
303
316
  onChange: o
304
- }), h = i((e) => {
305
- s || (m(!p, {
317
+ }), _ = u("menu.checkboxItem"), v = i((e) => {
318
+ s || (g(!h, {
306
319
  reason: "select",
307
320
  event: e
308
- }), c && f.closeAll({
321
+ }), _("checkedChange", !h, {
322
+ reason: "select",
323
+ event: e,
324
+ item: j(f, l)
325
+ }), c && m.closeAll({
309
326
  reason: "select",
310
327
  event: e
311
328
  }));
312
329
  });
313
- return /* @__PURE__ */ y(r, {
330
+ return /* @__PURE__ */ x(r, {
314
331
  tag: "button",
315
332
  component: "menu.item",
316
- ...d,
333
+ ...p,
317
334
  props: {
318
335
  type: "button",
319
336
  role: "menuitemcheckbox",
320
337
  tabIndex: -1,
321
- "aria-checked": p,
338
+ "aria-checked": h,
322
339
  "aria-disabled": s || void 0,
323
- ...l,
324
- onClick: h
340
+ ...d,
341
+ onClick: v
325
342
  },
326
- children: [/* @__PURE__ */ v(r, {
343
+ children: [/* @__PURE__ */ b(r, {
327
344
  component: "menu.indicator",
328
- children: p && /* @__PURE__ */ v(r, { component: "menu.check" })
329
- }), u]
345
+ children: h && /* @__PURE__ */ b(r, { component: "menu.check" })
346
+ }), f]
330
347
  });
331
348
  }
332
- function j(e) {
333
- let { label: t, value: n, defaultValue: r = "", onValueChange: o, children: s, ...c } = e, [l, u] = a({
349
+ function P(e) {
350
+ let { label: t, value: n, defaultValue: r = "", onValueChange: a, children: o, ...s } = e, [c, u] = l({
334
351
  value: n,
335
352
  defaultValue: r,
336
- onChange: o
353
+ onChange: a,
354
+ interaction: {
355
+ component: "menu.radioGroup",
356
+ type: "valueChange"
357
+ }
337
358
  }), d = i((e, t) => u(e, {
338
359
  reason: "select",
339
360
  event: t
340
- })), f = m(() => ({
341
- value: l,
361
+ })), f = g(() => ({
362
+ value: c,
342
363
  select: d
343
- }), [l, d]);
344
- return /* @__PURE__ */ v(T.Provider, {
364
+ }), [c, d]);
365
+ return /* @__PURE__ */ b(D.Provider, {
345
366
  value: f,
346
- children: /* @__PURE__ */ v(N, {
367
+ children: /* @__PURE__ */ b(I, {
347
368
  label: t,
348
- ...c,
349
- children: s
369
+ ...s,
370
+ children: o
350
371
  })
351
372
  });
352
373
  }
353
- function M(e) {
354
- let { value: t, disabled: n, closeOnSelect: a = !1, props: o, children: s, ...c } = e, l = C("Menu.RadioItem"), u = p(T);
374
+ function F(e) {
375
+ let { value: t, disabled: n, closeOnSelect: a = !1, props: o, children: s, ...c } = e, l = T("Menu.RadioItem"), u = h(D);
355
376
  if (!u) throw Error("<Menu.RadioItem> must be rendered inside a <Menu.RadioGroup>.");
356
377
  let d = u.value === t, f = i((e) => {
357
378
  n || (u.select(t, e), a && l.closeAll({
@@ -359,7 +380,7 @@ function M(e) {
359
380
  event: e
360
381
  }));
361
382
  });
362
- return /* @__PURE__ */ y(r, {
383
+ return /* @__PURE__ */ x(r, {
363
384
  tag: "button",
364
385
  component: "menu.item",
365
386
  ...c,
@@ -372,15 +393,15 @@ function M(e) {
372
393
  ...o,
373
394
  onClick: f
374
395
  },
375
- children: [/* @__PURE__ */ v(r, {
396
+ children: [/* @__PURE__ */ b(r, {
376
397
  component: "menu.indicator",
377
- children: d && /* @__PURE__ */ v(r, { component: "menu.dot" })
398
+ children: d && /* @__PURE__ */ b(r, { component: "menu.dot" })
378
399
  }), s]
379
400
  });
380
401
  }
381
- function N(e) {
402
+ function I(e) {
382
403
  let { label: t, props: n, children: i, ...a } = e, s = o("menu-group");
383
- return /* @__PURE__ */ y(r, {
404
+ return /* @__PURE__ */ x(r, {
384
405
  component: "menu.group",
385
406
  ...a,
386
407
  props: {
@@ -388,7 +409,7 @@ function N(e) {
388
409
  "aria-labelledby": t ? s : void 0,
389
410
  ...n
390
411
  },
391
- children: [t && /* @__PURE__ */ v(r, {
412
+ children: [t && /* @__PURE__ */ b(r, {
392
413
  component: "menu.label",
393
414
  id: s,
394
415
  props: { role: "presentation" },
@@ -396,9 +417,9 @@ function N(e) {
396
417
  }), i]
397
418
  });
398
419
  }
399
- function P(e) {
420
+ function L(e) {
400
421
  let { props: t, ...n } = e;
401
- return /* @__PURE__ */ v(r, {
422
+ return /* @__PURE__ */ b(r, {
402
423
  component: "menu.separator",
403
424
  ...n,
404
425
  props: {
@@ -407,16 +428,16 @@ function P(e) {
407
428
  }
408
429
  });
409
430
  }
410
- k.displayName = "Menu.Item", A.displayName = "Menu.CheckboxItem", j.displayName = "Menu.RadioGroup", M.displayName = "Menu.RadioItem", N.displayName = "Menu.Group", P.displayName = "Menu.Separator", O.displayName = "Menu.Sub";
411
- var F = Object.assign(E, {
412
- Item: k,
413
- CheckboxItem: A,
414
- RadioGroup: j,
415
- RadioItem: M,
416
- Group: N,
417
- Separator: P,
418
- Sub: O
431
+ M.displayName = "Menu.Item", N.displayName = "Menu.CheckboxItem", P.displayName = "Menu.RadioGroup", F.displayName = "Menu.RadioItem", I.displayName = "Menu.Group", L.displayName = "Menu.Separator", A.displayName = "Menu.Sub";
432
+ var R = Object.assign(O, {
433
+ Item: M,
434
+ CheckboxItem: N,
435
+ RadioGroup: P,
436
+ RadioItem: F,
437
+ Group: I,
438
+ Separator: L,
439
+ Sub: A
419
440
  });
420
- E.displayName = "Menu";
441
+ O.displayName = "Menu";
421
442
  //#endregion
422
- export { F as default };
443
+ export { R as default };
@@ -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("../placement.cjs"),a=require("../layer.cjs");let o=require("react"),s=require("react/jsx-runtime"),c=require("react-dom");function l(l,u){let{side:d=`bottom`,align:f=`center`,offset:p=0,flip:m=!0,onSideChange:h,anchor:g,contentRef:_,matchWidth:v=!0,...y}=l,[b,x]=(0,o.useState)(null),[S,C]=(0,o.useState)(!1),w=(0,o.useRef)(null),T=a.n(),E=(0,o.useRef)(null),D=e.t(!T),O=i.t({side:d,align:f,offset:p,flip:m,matchWidth:v,anchor:g??b,trackSide:!!h});n.n(()=>{let e=E.current;!T||!t.o()||!e||!e.isConnected||e.matches(`:popover-open`)||e.showPopover()}),n.n(()=>{if(T)return;let e=t.l(g)??b;C(!!e&&t.d(e))},[g,b,T]),n.n(()=>{w.current!==O.side&&(w.current=O.side,h?.(O.side))});let k=O.layerProps.ref,A=(0,o.useCallback)(e=>{k?.(e),E.current=e,typeof u==`function`?u(e):u&&(u.current=e)},[k,u]),j=(0,s.jsx)(r.default,{...O.layerProps,ref:A,transition:`none`,props:T?{popover:`manual`}:{dir:S?`rtl`:`ltr`},children:(0,s.jsx)(r.default,{ref:_,...y})});return(0,s.jsxs)(s.Fragment,{children:[!g&&(0,s.jsx)(r.default,{ref:x}),T?j:D&&(0,c.createPortal)(j,D)]})}var u=(0,o.forwardRef)(l);u.displayName=`Overlay`,exports.default=u;
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("../placement.cjs"),a=require("../layer.cjs");let o=require("react"),s=require("react/jsx-runtime"),c=require("react-dom");function l(l,u){let{side:d=`bottom`,align:f=`center`,offset:p=0,flip:m=!0,onSideChange:h,anchor:g,contentRef:_,matchWidth:v=!0,...y}=l,[b,x]=(0,o.useState)(null),[S,C]=(0,o.useState)(!1),w=(0,o.useRef)(null),T=a.n(),E=(0,o.useRef)(null),D=t.t(!T),O=i.t({side:d,align:f,offset:p,flip:m,matchWidth:v,anchor:g??b,trackSide:!!h});n.n(()=>{let t=E.current;!T||!e.c()||!t||!t.isConnected||t.matches(`:popover-open`)||t.showPopover()}),n.n(()=>{if(T)return;let t=e.d(g)??b;C(!!t&&e.p(t))},[g,b,T]),n.n(()=>{w.current!==O.side&&(w.current=O.side,h?.(O.side))});let k=O.layerProps.ref,A=(0,o.useCallback)(e=>{k?.(e),E.current=e,typeof u==`function`?u(e):u&&(u.current=e)},[k,u]),j=(0,s.jsx)(r.default,{...O.layerProps,ref:A,transition:`none`,props:T?{popover:`manual`}:{dir:S?`rtl`:`ltr`},children:(0,s.jsx)(r.default,{ref:_,...y})});return(0,s.jsxs)(s.Fragment,{children:[!g&&(0,s.jsx)(r.default,{ref:x}),T?j:D&&(0,c.createPortal)(j,D)]})}var u=(0,o.forwardRef)(l);u.displayName=`Overlay`,exports.default=u;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "../client.mjs";
3
- import { d as t, l as n, o as r } from "../platform.mjs";
2
+ import { c as e, d as t, p as n } from "../platform.mjs";
3
+ import { t as r } from "../client.mjs";
4
4
  import { n as i } from "../effects.mjs";
5
5
  import a from "../box.mjs";
6
6
  import { t as o } from "../placement.mjs";
@@ -10,7 +10,7 @@ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
10
10
  import { createPortal as h } from "react-dom";
11
11
  //#region src/components/overlay.tsx
12
12
  function g(c, g) {
13
- let { side: _ = "bottom", align: v = "center", offset: y = 0, flip: b = !0, onSideChange: x, anchor: S, contentRef: C, matchWidth: w = !0, ...T } = c, [E, D] = d(null), [O, k] = d(!1), A = u(null), j = s(), M = u(null), N = e(!j), P = o({
13
+ let { side: _ = "bottom", align: v = "center", offset: y = 0, flip: b = !0, onSideChange: x, anchor: S, contentRef: C, matchWidth: w = !0, ...T } = c, [E, D] = d(null), [O, k] = d(!1), A = u(null), j = s(), M = u(null), N = r(!j), P = o({
14
14
  side: _,
15
15
  align: v,
16
16
  offset: y,
@@ -20,12 +20,12 @@ function g(c, g) {
20
20
  trackSide: !!x
21
21
  });
22
22
  i(() => {
23
- let e = M.current;
24
- !j || !r() || !e || !e.isConnected || e.matches(":popover-open") || e.showPopover();
23
+ let t = M.current;
24
+ !j || !e() || !t || !t.isConnected || t.matches(":popover-open") || t.showPopover();
25
25
  }), i(() => {
26
26
  if (j) return;
27
- let e = n(S) ?? E;
28
- k(!!e && t(e));
27
+ let e = t(S) ?? E;
28
+ k(!!e && n(e));
29
29
  }, [
30
30
  S,
31
31
  E,
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs"),t=require("../behavior.cjs"),n=require("../placement.cjs"),r=require("../layer.cjs"),i=require("./overlay.cjs");let a=require("react/jsx-runtime");function o(o){let{trigger:s,children:c,open:l,defaultOpen:u=!1,onOpenChange:d,label:f,labelledBy:p,side:m=`bottom`,align:h=`center`,offset:g=2,flip:_=!0,matchWidth:v=!1,autoFocus:y=!0,props:b,...x}=o,S=t.a(e=>{!y||e.contains(document.activeElement)||e.focus()}),{platform:C,isOpen:w,id:T,trigger:E,triggerElement:D,setPanel:O}=r.t({haspopup:`dialog`,idPrefix:`popover`,id:x.id,open:l,defaultOpen:u,onOpenChange:d,onOpened:S}),k=n.t({side:m,align:h,offset:g,flip:_,matchWidth:v,anchor:D}),A={"aria-label":f,"aria-labelledby":p},j=x;return C?(0,a.jsxs)(a.Fragment,{children:[s(E),(0,a.jsx)(e.default,{ref:O,component:`popover`,...j,variant:[j.variant,{topLayer:!0}],...k.layerProps,id:T,props:{popover:`auto`,role:`dialog`,...A,tabIndex:-1,...b},children:c})]}):(0,a.jsxs)(a.Fragment,{children:[s(E),w&&(0,a.jsx)(i.default,{contentRef:O,anchor:D,side:m,align:h,offset:g,flip:_,matchWidth:v,component:`popover`,...j,id:T,props:{role:`dialog`,...A,tabIndex:-1,...b},children:c})]})}var s=o;s.displayName=`Popover`,exports.default=s;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../box.cjs"),t=require("../behavior.cjs"),n=require("../placement.cjs"),r=require("../layer.cjs"),i=require("./overlay.cjs");let a=require("react/jsx-runtime");function o(o){let{trigger:s,children:c,open:l,defaultOpen:u=!1,onOpenChange:d,label:f,labelledBy:p,side:m=`bottom`,align:h=`center`,offset:g=2,flip:_=!0,matchWidth:v=!1,autoFocus:y=!0,props:b,...x}=o,S=t.a(e=>{!y||e.contains(document.activeElement)||e.focus()}),{platform:C,isOpen:w,id:T,trigger:E,triggerElement:D,setPanel:O}=r.t({haspopup:`dialog`,idPrefix:`popover`,id:x.id,interaction:{component:`popover`,type:`openChange`},open:l,defaultOpen:u,onOpenChange:d,onOpened:S}),k=n.t({side:m,align:h,offset:g,flip:_,matchWidth:v,anchor:D}),A={"aria-label":f,"aria-labelledby":p},j=x;return C?(0,a.jsxs)(a.Fragment,{children:[s(E),(0,a.jsx)(e.default,{ref:O,component:`popover`,...j,variant:[j.variant,{topLayer:!0}],...k.layerProps,id:T,props:{popover:`auto`,role:`dialog`,...A,tabIndex:-1,...b},children:c})]}):(0,a.jsxs)(a.Fragment,{children:[s(E),w&&(0,a.jsx)(i.default,{contentRef:O,anchor:D,side:m,align:h,offset:g,flip:_,matchWidth:v,component:`popover`,...j,id:T,props:{role:`dialog`,...A,tabIndex:-1,...b},children:c})]})}var s=o;s.displayName=`Popover`,exports.default=s;
@@ -13,6 +13,10 @@ function c(c) {
13
13
  haspopup: "dialog",
14
14
  idPrefix: "popover",
15
15
  id: C.id,
16
+ interaction: {
17
+ component: "popover",
18
+ type: "openChange"
19
+ },
16
20
  open: d,
17
21
  defaultOpen: f,
18
22
  onOpenChange: p,