@xsolla/xui-context-menu 0.131.0 → 0.133.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsolla/xui-context-menu",
3
- "version": "0.131.0",
3
+ "version": "0.133.0",
4
4
  "main": "./web/index.js",
5
5
  "module": "./web/index.mjs",
6
6
  "types": "./web/index.d.ts",
@@ -13,13 +13,13 @@
13
13
  "test:coverage": "vitest run --coverage"
14
14
  },
15
15
  "dependencies": {
16
- "@xsolla/xui-checkbox": "0.131.0",
17
- "@xsolla/xui-core": "0.131.0",
18
- "@xsolla/xui-divider": "0.131.0",
19
- "@xsolla/xui-icons": "0.131.0",
20
- "@xsolla/xui-primitives-core": "0.131.0",
21
- "@xsolla/xui-radio": "0.131.0",
22
- "@xsolla/xui-spinner": "0.131.0"
16
+ "@xsolla/xui-checkbox": "0.133.0",
17
+ "@xsolla/xui-core": "0.133.0",
18
+ "@xsolla/xui-divider": "0.133.0",
19
+ "@xsolla/xui-icons": "0.133.0",
20
+ "@xsolla/xui-primitives-core": "0.133.0",
21
+ "@xsolla/xui-radio": "0.133.0",
22
+ "@xsolla/xui-spinner": "0.133.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0",
package/web/index.js CHANGED
@@ -47,13 +47,120 @@ __export(index_exports, {
47
47
  module.exports = __toCommonJS(index_exports);
48
48
 
49
49
  // src/ContextMenu.tsx
50
- var import_react10 = __toESM(require("react"));
50
+ var import_react11 = __toESM(require("react"));
51
51
 
52
52
  // ../primitives-web/src/Box.tsx
53
- var import_react = __toESM(require("react"));
53
+ var import_react2 = __toESM(require("react"));
54
54
  var import_styled_components = __toESM(require("styled-components"));
55
+
56
+ // ../primitives-web/src/filterDOMProps.ts
57
+ var import_react = __toESM(require("react"));
58
+ var NON_HTML_PROPS = /* @__PURE__ */ new Set([
59
+ // BoxProps — layout & styling
60
+ "backgroundColor",
61
+ "borderColor",
62
+ "borderWidth",
63
+ "borderBottomWidth",
64
+ "borderBottomColor",
65
+ "borderTopWidth",
66
+ "borderTopColor",
67
+ "borderLeftWidth",
68
+ "borderLeftColor",
69
+ "borderRightWidth",
70
+ "borderRightColor",
71
+ "borderRadius",
72
+ "borderStyle",
73
+ "flexDirection",
74
+ "flexWrap",
75
+ "alignItems",
76
+ "justifyContent",
77
+ "alignSelf",
78
+ "flex",
79
+ "flexShrink",
80
+ "gap",
81
+ "position",
82
+ "top",
83
+ "bottom",
84
+ "left",
85
+ "right",
86
+ "outline",
87
+ "overflow",
88
+ "overflowX",
89
+ "overflowY",
90
+ "zIndex",
91
+ "cursor",
92
+ "padding",
93
+ "paddingHorizontal",
94
+ "paddingVertical",
95
+ "paddingTop",
96
+ "paddingBottom",
97
+ "paddingLeft",
98
+ "paddingRight",
99
+ "margin",
100
+ "marginTop",
101
+ "marginBottom",
102
+ "marginLeft",
103
+ "marginRight",
104
+ "minWidth",
105
+ "minHeight",
106
+ "maxWidth",
107
+ "maxHeight",
108
+ "hoverStyle",
109
+ "pressStyle",
110
+ "focusStyle",
111
+ "outlineColor",
112
+ "outlineWidth",
113
+ "outlineOffset",
114
+ "outlineStyle",
115
+ // BoxProps — RN-only
116
+ "onPress",
117
+ "onLayout",
118
+ "onMoveShouldSetResponder",
119
+ "onResponderGrant",
120
+ "onResponderMove",
121
+ "onResponderRelease",
122
+ "onResponderTerminate",
123
+ "testID",
124
+ // Box — custom element type
125
+ "elementType",
126
+ // TextProps
127
+ "fontSize",
128
+ "fontWeight",
129
+ "fontFamily",
130
+ "lineHeight",
131
+ "whiteSpace",
132
+ "textAlign",
133
+ "textDecoration",
134
+ "numberOfLines",
135
+ "letterSpacing",
136
+ "textTransform",
137
+ // SpinnerProps
138
+ "strokeWidth",
139
+ // DividerProps
140
+ "vertical",
141
+ "dashStroke"
142
+ ]);
143
+ function createFilteredElement(defaultTag) {
144
+ const Component = import_react.default.forwardRef(
145
+ ({ children, elementType, ...props }, ref) => {
146
+ const Tag = elementType || defaultTag;
147
+ const htmlProps = {};
148
+ for (const key of Object.keys(props)) {
149
+ if (!NON_HTML_PROPS.has(key)) {
150
+ htmlProps[key] = props[key];
151
+ }
152
+ }
153
+ return import_react.default.createElement(Tag, { ref, ...htmlProps }, children);
154
+ }
155
+ );
156
+ Component.displayName = `Filtered(${defaultTag})`;
157
+ return Component;
158
+ }
159
+
160
+ // ../primitives-web/src/Box.tsx
55
161
  var import_jsx_runtime = require("react/jsx-runtime");
56
- var StyledBox = import_styled_components.default.div`
162
+ var FilteredDiv = createFilteredElement("div");
163
+ var StyledBox = (0, import_styled_components.default)(FilteredDiv)`
57
164
  display: flex;
58
165
  box-sizing: border-box;
59
166
  background-color: ${(props) => props.backgroundColor || "transparent"};
@@ -140,7 +247,7 @@ var StyledBox = import_styled_components.default.div`
140
247
  ${(props) => props.pressStyle?.backgroundColor && `background-color: ${props.pressStyle.backgroundColor};`}
141
248
  }
142
249
  `;
143
- var Box = import_react.default.forwardRef(
250
+ var Box = import_react2.default.forwardRef(
144
251
  ({
145
252
  children,
146
253
  onPress,
@@ -192,7 +299,7 @@ var Box = import_react.default.forwardRef(
192
299
  StyledBox,
193
300
  {
194
301
  ref,
195
- as,
302
+ elementType: as,
196
303
  id,
197
304
  type: as === "button" ? type || "button" : void 0,
198
305
  disabled: as === "button" ? disabled : void 0,
@@ -223,7 +330,8 @@ Box.displayName = "Box";
223
330
  // ../primitives-web/src/Text.tsx
224
331
  var import_styled_components2 = __toESM(require("styled-components"));
225
332
  var import_jsx_runtime2 = require("react/jsx-runtime");
226
- var StyledText = import_styled_components2.default.span`
333
+ var FilteredSpan = createFilteredElement("span");
334
+ var StyledText = (0, import_styled_components2.default)(FilteredSpan)`
227
335
  color: ${(props) => props.color || "inherit"};
228
336
  font-size: ${(props) => typeof props.fontSize === "number" ? `${props.fontSize}px` : props.fontSize || "inherit"};
229
337
  font-weight: ${(props) => props.fontWeight || "normal"};
@@ -256,7 +364,8 @@ var Text = ({
256
364
  // ../primitives-web/src/Icon.tsx
257
365
  var import_styled_components3 = __toESM(require("styled-components"));
258
366
  var import_jsx_runtime3 = require("react/jsx-runtime");
259
- var StyledIcon = import_styled_components3.default.div`
367
+ var FilteredDiv2 = createFilteredElement("div");
368
+ var StyledIcon = (0, import_styled_components3.default)(FilteredDiv2)`
260
369
  display: flex;
261
370
  align-items: center;
262
371
  justify-content: center;
@@ -276,7 +385,7 @@ var Icon = ({ children, ...props }) => {
276
385
  };
277
386
 
278
387
  // ../primitives-web/src/Input.tsx
279
- var import_react2 = require("react");
388
+ var import_react3 = require("react");
280
389
  var import_styled_components4 = __toESM(require("styled-components"));
281
390
  var import_jsx_runtime4 = require("react/jsx-runtime");
282
391
  var StyledInput = import_styled_components4.default.input`
@@ -310,7 +419,7 @@ var StyledInput = import_styled_components4.default.input`
310
419
  -webkit-text-fill-color: ${(props) => props.color || "inherit"} !important;
311
420
  }
312
421
  `;
313
- var InputPrimitive = (0, import_react2.forwardRef)(
422
+ var InputPrimitive = (0, import_react3.forwardRef)(
314
423
  ({
315
424
  value,
316
425
  placeholder,
@@ -387,14 +496,14 @@ var import_xui_core7 = require("@xsolla/xui-core");
387
496
  var import_xui_spinner = require("@xsolla/xui-spinner");
388
497
 
389
498
  // src/ContextMenuContext.tsx
390
- var import_react3 = require("react");
391
- var ContextMenuContext = (0, import_react3.createContext)(void 0);
499
+ var import_react4 = require("react");
500
+ var ContextMenuContext = (0, import_react4.createContext)(void 0);
392
501
  var useContextMenu = () => {
393
- const context = (0, import_react3.useContext)(ContextMenuContext);
502
+ const context = (0, import_react4.useContext)(ContextMenuContext);
394
503
  return context;
395
504
  };
396
505
  var useContextMenuRequired = () => {
397
- const context = (0, import_react3.useContext)(ContextMenuContext);
506
+ const context = (0, import_react4.useContext)(ContextMenuContext);
398
507
  if (!context) {
399
508
  throw new Error(
400
509
  "useContextMenuRequired must be used within a ContextMenu component"
@@ -404,11 +513,11 @@ var useContextMenuRequired = () => {
404
513
  };
405
514
 
406
515
  // src/ContextMenuItem.tsx
407
- var import_react4 = require("react");
516
+ var import_react5 = require("react");
408
517
  var import_xui_core = require("@xsolla/xui-core");
409
518
  var import_xui_icons = require("@xsolla/xui-icons");
410
519
  var import_jsx_runtime5 = require("react/jsx-runtime");
411
- var ContextMenuItem = (0, import_react4.forwardRef)(
520
+ var ContextMenuItem = (0, import_react5.forwardRef)(
412
521
  ({
413
522
  children,
414
523
  description,
@@ -429,10 +538,10 @@ var ContextMenuItem = (0, import_react4.forwardRef)(
429
538
  const context = useContextMenu();
430
539
  const size = propSize || context?.size || "md";
431
540
  const sizeStyles = theme.sizing.contextMenu(size);
432
- const itemRef = (0, import_react4.useRef)(null);
541
+ const itemRef = (0, import_react5.useRef)(null);
433
542
  const brandColors = theme.colors.control.brand.primary;
434
543
  const contentColors = theme.colors.content;
435
- (0, import_react4.useEffect)(() => {
544
+ (0, import_react5.useEffect)(() => {
436
545
  if (context && !disabled) {
437
546
  const id = typeof children === "string" ? children : String(Math.random());
438
547
  context.registerItem(id);
@@ -570,7 +679,7 @@ var ContextMenuItem = (0, import_react4.forwardRef)(
570
679
  ContextMenuItem.displayName = "ContextMenuItem";
571
680
 
572
681
  // src/ContextMenuCheckboxItem.tsx
573
- var import_react5 = require("react");
682
+ var import_react6 = require("react");
574
683
  var import_xui_core2 = require("@xsolla/xui-core");
575
684
  var import_xui_icons2 = require("@xsolla/xui-icons");
576
685
  var import_jsx_runtime6 = require("react/jsx-runtime");
@@ -645,7 +754,7 @@ var CheckboxIndicator = ({
645
754
  }
646
755
  );
647
756
  };
648
- var ContextMenuCheckboxItem = (0, import_react5.forwardRef)(
757
+ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
649
758
  ({
650
759
  children,
651
760
  description,
@@ -665,8 +774,8 @@ var ContextMenuCheckboxItem = (0, import_react5.forwardRef)(
665
774
  const context = useContextMenu();
666
775
  const size = propSize || context?.size || "md";
667
776
  const sizeStyles = theme.sizing.contextMenu(size);
668
- const itemRef = (0, import_react5.useRef)(null);
669
- (0, import_react5.useEffect)(() => {
777
+ const itemRef = (0, import_react6.useRef)(null);
778
+ (0, import_react6.useEffect)(() => {
670
779
  if (context && !disabled) {
671
780
  const id = typeof children === "string" ? children : String(Math.random());
672
781
  context.registerItem(id);
@@ -779,11 +888,11 @@ var ContextMenuCheckboxItem = (0, import_react5.forwardRef)(
779
888
  ContextMenuCheckboxItem.displayName = "ContextMenuCheckboxItem";
780
889
 
781
890
  // src/ContextMenuRadioGroup.tsx
782
- var import_react6 = require("react");
891
+ var import_react7 = require("react");
783
892
  var import_jsx_runtime7 = require("react/jsx-runtime");
784
- var RadioGroupContext = (0, import_react6.createContext)(null);
785
- var useRadioGroup = () => (0, import_react6.useContext)(RadioGroupContext);
786
- var ContextMenuRadioGroup = (0, import_react6.forwardRef)(
893
+ var RadioGroupContext = (0, import_react7.createContext)(null);
894
+ var useRadioGroup = () => (0, import_react7.useContext)(RadioGroupContext);
895
+ var ContextMenuRadioGroup = (0, import_react7.forwardRef)(
787
896
  ({
788
897
  children,
789
898
  value,
@@ -796,7 +905,7 @@ var ContextMenuRadioGroup = (0, import_react6.forwardRef)(
796
905
  ContextMenuRadioGroup.displayName = "ContextMenuRadioGroup";
797
906
 
798
907
  // src/ContextMenuRadioItem.tsx
799
- var import_react7 = require("react");
908
+ var import_react8 = require("react");
800
909
  var import_xui_core3 = require("@xsolla/xui-core");
801
910
  var import_jsx_runtime8 = require("react/jsx-runtime");
802
911
  var radioSizeMap = {
@@ -862,7 +971,7 @@ var RadioIndicator = ({
862
971
  }
863
972
  );
864
973
  };
865
- var ContextMenuRadioItem = (0, import_react7.forwardRef)(
974
+ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
866
975
  ({
867
976
  children,
868
977
  description,
@@ -879,9 +988,9 @@ var ContextMenuRadioItem = (0, import_react7.forwardRef)(
879
988
  const radioGroup = useRadioGroup();
880
989
  const size = propSize || context?.size || "md";
881
990
  const sizeStyles = theme.sizing.contextMenu(size);
882
- const itemRef = (0, import_react7.useRef)(null);
991
+ const itemRef = (0, import_react8.useRef)(null);
883
992
  const checked = radioGroup?.value === value;
884
- (0, import_react7.useEffect)(() => {
993
+ (0, import_react8.useEffect)(() => {
885
994
  if (context && !disabled) {
886
995
  const id = typeof children === "string" ? children : String(Math.random());
887
996
  context.registerItem(id);
@@ -990,10 +1099,10 @@ var ContextMenuRadioItem = (0, import_react7.forwardRef)(
990
1099
  ContextMenuRadioItem.displayName = "ContextMenuRadioItem";
991
1100
 
992
1101
  // src/ContextMenuGroup.tsx
993
- var import_react8 = require("react");
1102
+ var import_react9 = require("react");
994
1103
  var import_xui_core4 = require("@xsolla/xui-core");
995
1104
  var import_jsx_runtime9 = require("react/jsx-runtime");
996
- var ContextMenuGroup = (0, import_react8.forwardRef)(
1105
+ var ContextMenuGroup = (0, import_react9.forwardRef)(
997
1106
  ({
998
1107
  label,
999
1108
  description,
@@ -1070,7 +1179,7 @@ var ContextMenuSeparator = ({
1070
1179
  ContextMenuSeparator.displayName = "ContextMenuSeparator";
1071
1180
 
1072
1181
  // src/ContextMenuSearch.tsx
1073
- var import_react9 = __toESM(require("react"));
1182
+ var import_react10 = __toESM(require("react"));
1074
1183
  var import_xui_core6 = require("@xsolla/xui-core");
1075
1184
 
1076
1185
  // ../icons-base/dist/web/index.mjs
@@ -1511,7 +1620,7 @@ var Search = (props) => /* @__PURE__ */ (0, import_jsx_runtime384.jsx)(BaseIcon,
1511
1620
  // src/ContextMenuSearch.tsx
1512
1621
  var import_xui_divider = require("@xsolla/xui-divider");
1513
1622
  var import_jsx_runtime398 = require("react/jsx-runtime");
1514
- var ContextMenuSearch = (0, import_react9.forwardRef)(
1623
+ var ContextMenuSearch = (0, import_react10.forwardRef)(
1515
1624
  ({
1516
1625
  value,
1517
1626
  onChange,
@@ -1527,14 +1636,14 @@ var ContextMenuSearch = (0, import_react9.forwardRef)(
1527
1636
  const context = useContextMenu();
1528
1637
  const size = propSize || context?.size || "md";
1529
1638
  const sizeStyles = theme.sizing.contextMenu(size);
1530
- const inputRef = (0, import_react9.useRef)(null);
1639
+ const inputRef = (0, import_react10.useRef)(null);
1531
1640
  const inputColors = theme.colors.control.input;
1532
- import_react9.default.useImperativeHandle(
1641
+ import_react10.default.useImperativeHandle(
1533
1642
  ref,
1534
1643
  () => inputRef.current,
1535
1644
  []
1536
1645
  );
1537
- (0, import_react9.useEffect)(() => {
1646
+ (0, import_react10.useEffect)(() => {
1538
1647
  if (autoFocus && inputRef.current) {
1539
1648
  setTimeout(() => {
1540
1649
  inputRef.current?.focus();
@@ -1598,7 +1707,7 @@ ContextMenuSearch.displayName = "ContextMenuSearch";
1598
1707
 
1599
1708
  // src/ContextMenu.tsx
1600
1709
  var import_jsx_runtime399 = require("react/jsx-runtime");
1601
- var ContextMenuRoot = (0, import_react10.forwardRef)(
1710
+ var ContextMenuRoot = (0, import_react11.forwardRef)(
1602
1711
  ({
1603
1712
  children,
1604
1713
  list,
@@ -1620,21 +1729,21 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1620
1729
  themeProductContext
1621
1730
  }, ref) => {
1622
1731
  const { theme } = (0, import_xui_core7.useResolvedTheme)({ themeMode, themeProductContext });
1623
- const [internalIsOpen, setInternalIsOpen] = (0, import_react10.useState)(false);
1624
- const [activeIndex, setActiveIndex] = (0, import_react10.useState)(-1);
1625
- const containerRef = (0, import_react10.useRef)(null);
1626
- const menuRef = (0, import_react10.useRef)(null);
1627
- const itemsRef = (0, import_react10.useRef)([]);
1732
+ const [internalIsOpen, setInternalIsOpen] = (0, import_react11.useState)(false);
1733
+ const [activeIndex, setActiveIndex] = (0, import_react11.useState)(-1);
1734
+ const containerRef = (0, import_react11.useRef)(null);
1735
+ const menuRef = (0, import_react11.useRef)(null);
1736
+ const itemsRef = (0, import_react11.useRef)([]);
1628
1737
  const isOpen = propIsOpen !== void 0 ? propIsOpen : internalIsOpen;
1629
1738
  const sizeStyles = theme.sizing.contextMenu(size);
1630
- const closeMenu = (0, import_react10.useCallback)(() => {
1739
+ const closeMenu = (0, import_react11.useCallback)(() => {
1631
1740
  if (propIsOpen === void 0) {
1632
1741
  setInternalIsOpen(false);
1633
1742
  }
1634
1743
  onOpenChange?.(false);
1635
1744
  setActiveIndex(-1);
1636
1745
  }, [propIsOpen, onOpenChange]);
1637
- const toggleMenu = (0, import_react10.useCallback)(() => {
1746
+ const toggleMenu = (0, import_react11.useCallback)(() => {
1638
1747
  const nextOpen = !isOpen;
1639
1748
  if (propIsOpen === void 0) {
1640
1749
  setInternalIsOpen(nextOpen);
@@ -1644,7 +1753,7 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1644
1753
  setActiveIndex(-1);
1645
1754
  }
1646
1755
  }, [isOpen, propIsOpen, onOpenChange]);
1647
- (0, import_react10.useEffect)(() => {
1756
+ (0, import_react11.useEffect)(() => {
1648
1757
  const handleClickOutside = (event) => {
1649
1758
  if (containerRef.current && !containerRef.current.contains(event.target)) {
1650
1759
  closeMenu();
@@ -1657,7 +1766,7 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1657
1766
  document.removeEventListener("mousedown", handleClickOutside);
1658
1767
  };
1659
1768
  }, [isOpen, closeMenu]);
1660
- (0, import_react10.useEffect)(() => {
1769
+ (0, import_react11.useEffect)(() => {
1661
1770
  const handleEscape = (event) => {
1662
1771
  if (event.key === "Escape") {
1663
1772
  closeMenu();
@@ -1670,17 +1779,17 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1670
1779
  document.removeEventListener("keydown", handleEscape);
1671
1780
  };
1672
1781
  }, [isOpen, closeMenu]);
1673
- (0, import_react10.useEffect)(() => {
1782
+ (0, import_react11.useEffect)(() => {
1674
1783
  if (isOpen && menuRef.current) {
1675
1784
  menuRef.current.focus();
1676
1785
  }
1677
1786
  }, [isOpen]);
1678
- (0, import_react10.useEffect)(() => {
1787
+ (0, import_react11.useEffect)(() => {
1679
1788
  if (!isOpen) {
1680
1789
  itemsRef.current = [];
1681
1790
  }
1682
1791
  }, [isOpen]);
1683
- const registerItem = (0, import_react10.useCallback)((id) => {
1792
+ const registerItem = (0, import_react11.useCallback)((id) => {
1684
1793
  const index = itemsRef.current.indexOf(id);
1685
1794
  if (index === -1) {
1686
1795
  itemsRef.current.push(id);
@@ -1688,13 +1797,13 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1688
1797
  }
1689
1798
  return index;
1690
1799
  }, []);
1691
- const unregisterItem = (0, import_react10.useCallback)((id) => {
1800
+ const unregisterItem = (0, import_react11.useCallback)((id) => {
1692
1801
  const index = itemsRef.current.indexOf(id);
1693
1802
  if (index !== -1) {
1694
1803
  itemsRef.current.splice(index, 1);
1695
1804
  }
1696
1805
  }, []);
1697
- const onItemSelect = (0, import_react10.useCallback)(
1806
+ const onItemSelect = (0, import_react11.useCallback)(
1698
1807
  (item) => {
1699
1808
  onSelect?.(item);
1700
1809
  if (item.variant === "checkbox") {
@@ -1710,7 +1819,7 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1710
1819
  },
1711
1820
  [onSelect, onCheckedChange, closeOnSelect, closeMenu]
1712
1821
  );
1713
- const handleKeyDown = (0, import_react10.useCallback)(
1822
+ const handleKeyDown = (0, import_react11.useCallback)(
1714
1823
  (event) => {
1715
1824
  const itemCount = itemsRef.current.length;
1716
1825
  if (itemCount === 0) return;
@@ -1742,7 +1851,7 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1742
1851
  },
1743
1852
  [closeMenu]
1744
1853
  );
1745
- const contextValue = (0, import_react10.useMemo)(
1854
+ const contextValue = (0, import_react11.useMemo)(
1746
1855
  () => ({
1747
1856
  size,
1748
1857
  closeMenu,
@@ -1820,7 +1929,7 @@ var ContextMenuRoot = (0, import_react10.forwardRef)(
1820
1929
  });
1821
1930
  };
1822
1931
  const renderGroups = (groupsData) => {
1823
- return groupsData.map((group, groupIndex) => /* @__PURE__ */ (0, import_jsx_runtime399.jsxs)(import_react10.default.Fragment, { children: [
1932
+ return groupsData.map((group, groupIndex) => /* @__PURE__ */ (0, import_jsx_runtime399.jsxs)(import_react11.default.Fragment, { children: [
1824
1933
  groupIndex > 0 && /* @__PURE__ */ (0, import_jsx_runtime399.jsx)(ContextMenuSeparator, {}),
1825
1934
  /* @__PURE__ */ (0, import_jsx_runtime399.jsx)(
1826
1935
  ContextMenuGroup,
@@ -1929,15 +2038,15 @@ var ContextMenu = Object.assign(ContextMenuRoot, {
1929
2038
  });
1930
2039
 
1931
2040
  // src/hooks/useContextMenuPosition.ts
1932
- var import_react11 = require("react");
2041
+ var import_react12 = require("react");
1933
2042
  var useContextMenuPosition = ({
1934
2043
  position,
1935
2044
  menuRef,
1936
2045
  isOpen,
1937
2046
  offset = 8
1938
2047
  }) => {
1939
- const [adjustedPosition, setAdjustedPosition] = (0, import_react11.useState)();
1940
- (0, import_react11.useEffect)(() => {
2048
+ const [adjustedPosition, setAdjustedPosition] = (0, import_react12.useState)();
2049
+ (0, import_react12.useEffect)(() => {
1941
2050
  if (!isOpen || !position || !menuRef.current) {
1942
2051
  setAdjustedPosition(void 0);
1943
2052
  return;
@@ -1985,7 +2094,7 @@ var useContextMenuPosition = ({
1985
2094
  };
1986
2095
 
1987
2096
  // src/hooks/useKeyboardNavigation.ts
1988
- var import_react12 = require("react");
2097
+ var import_react13 = require("react");
1989
2098
  var useKeyboardNavigation = ({
1990
2099
  isOpen,
1991
2100
  itemCount,
@@ -1995,9 +2104,9 @@ var useKeyboardNavigation = ({
1995
2104
  onClose,
1996
2105
  loop = true
1997
2106
  }) => {
1998
- const typeaheadBuffer = (0, import_react12.useRef)("");
1999
- const typeaheadTimeout = (0, import_react12.useRef)(null);
2000
- (0, import_react12.useEffect)(() => {
2107
+ const typeaheadBuffer = (0, import_react13.useRef)("");
2108
+ const typeaheadTimeout = (0, import_react13.useRef)(null);
2109
+ (0, import_react13.useEffect)(() => {
2001
2110
  if (!isOpen) {
2002
2111
  typeaheadBuffer.current = "";
2003
2112
  if (typeaheadTimeout.current) {
@@ -2005,7 +2114,7 @@ var useKeyboardNavigation = ({
2005
2114
  }
2006
2115
  }
2007
2116
  }, [isOpen]);
2008
- const handleKeyDown = (0, import_react12.useCallback)(
2117
+ const handleKeyDown = (0, import_react13.useCallback)(
2009
2118
  (event) => {
2010
2119
  if (!isOpen || itemCount === 0) return;
2011
2120
  switch (event.key) {