@xsolla/xui-context-menu 0.89.0 → 0.91.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/native/index.js +125 -250
- package/native/index.js.map +1 -1
- package/native/index.mjs +65 -190
- package/native/index.mjs.map +1 -1
- package/package.json +9 -8
- package/web/index.js +127 -258
- package/web/index.js.map +1 -1
- package/web/index.mjs +67 -198
- package/web/index.mjs.map +1 -1
package/native/index.js
CHANGED
|
@@ -47,7 +47,7 @@ __export(index_exports, {
|
|
|
47
47
|
module.exports = __toCommonJS(index_exports);
|
|
48
48
|
|
|
49
49
|
// src/ContextMenu.tsx
|
|
50
|
-
var
|
|
50
|
+
var import_react10 = __toESM(require("react"));
|
|
51
51
|
|
|
52
52
|
// ../primitives-native/src/Box.tsx
|
|
53
53
|
var import_react_native = require("react-native");
|
|
@@ -250,41 +250,10 @@ var Text = ({
|
|
|
250
250
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native2.Text, { style, testID: id, accessibilityRole, children });
|
|
251
251
|
};
|
|
252
252
|
|
|
253
|
-
// ../primitives-native/src/Spinner.tsx
|
|
254
|
-
var import_react_native3 = require("react-native");
|
|
255
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
256
|
-
var Spinner = ({
|
|
257
|
-
color,
|
|
258
|
-
size,
|
|
259
|
-
role,
|
|
260
|
-
"aria-label": ariaLabel,
|
|
261
|
-
"aria-live": ariaLive,
|
|
262
|
-
testID
|
|
263
|
-
}) => {
|
|
264
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
265
|
-
import_react_native3.View,
|
|
266
|
-
{
|
|
267
|
-
accessible: true,
|
|
268
|
-
accessibilityRole: role === "status" ? "none" : void 0,
|
|
269
|
-
accessibilityLabel: ariaLabel,
|
|
270
|
-
accessibilityLiveRegion: ariaLive === "polite" ? "polite" : ariaLive === "assertive" ? "assertive" : "none",
|
|
271
|
-
testID,
|
|
272
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
273
|
-
import_react_native3.ActivityIndicator,
|
|
274
|
-
{
|
|
275
|
-
color,
|
|
276
|
-
size: typeof size === "number" ? size : "small"
|
|
277
|
-
}
|
|
278
|
-
)
|
|
279
|
-
}
|
|
280
|
-
);
|
|
281
|
-
};
|
|
282
|
-
Spinner.displayName = "Spinner";
|
|
283
|
-
|
|
284
253
|
// ../primitives-native/src/Icon.tsx
|
|
285
254
|
var import_react = __toESM(require("react"));
|
|
286
|
-
var
|
|
287
|
-
var
|
|
255
|
+
var import_react_native3 = require("react-native");
|
|
256
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
288
257
|
var Icon = ({ children, color, size }) => {
|
|
289
258
|
const style = {
|
|
290
259
|
width: typeof size === "number" ? size : void 0,
|
|
@@ -302,17 +271,13 @@ var Icon = ({ children, color, size }) => {
|
|
|
302
271
|
}
|
|
303
272
|
return child;
|
|
304
273
|
});
|
|
305
|
-
return /* @__PURE__ */ (0,
|
|
274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.View, { style, children: childrenWithProps });
|
|
306
275
|
};
|
|
307
276
|
|
|
308
|
-
// ../primitives-native/src/Divider.tsx
|
|
309
|
-
var import_react_native5 = require("react-native");
|
|
310
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
311
|
-
|
|
312
277
|
// ../primitives-native/src/Input.tsx
|
|
313
278
|
var import_react2 = require("react");
|
|
314
|
-
var
|
|
315
|
-
var
|
|
279
|
+
var import_react_native4 = require("react-native");
|
|
280
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
316
281
|
var keyboardTypeMap = {
|
|
317
282
|
text: "default",
|
|
318
283
|
number: "numeric",
|
|
@@ -385,8 +350,8 @@ var InputPrimitive = (0, import_react2.forwardRef)(
|
|
|
385
350
|
};
|
|
386
351
|
const keyboardType = inputMode ? inputModeToKeyboardType[inputMode] || "default" : type ? keyboardTypeMap[type] || "default" : "default";
|
|
387
352
|
const textContentType = autoComplete ? autoCompleteToTextContentType[autoComplete] : void 0;
|
|
388
|
-
return /* @__PURE__ */ (0,
|
|
389
|
-
|
|
353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
354
|
+
import_react_native4.TextInput,
|
|
390
355
|
{
|
|
391
356
|
ref,
|
|
392
357
|
value,
|
|
@@ -432,109 +397,19 @@ var InputPrimitive = (0, import_react2.forwardRef)(
|
|
|
432
397
|
);
|
|
433
398
|
InputPrimitive.displayName = "InputPrimitive";
|
|
434
399
|
|
|
435
|
-
// ../primitives-native/src/TextArea.tsx
|
|
436
|
-
var import_react3 = require("react");
|
|
437
|
-
var import_react_native7 = require("react-native");
|
|
438
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
439
|
-
var TextAreaPrimitive = (0, import_react3.forwardRef)(
|
|
440
|
-
({
|
|
441
|
-
value,
|
|
442
|
-
placeholder,
|
|
443
|
-
onChange,
|
|
444
|
-
onChangeText,
|
|
445
|
-
onFocus,
|
|
446
|
-
onBlur,
|
|
447
|
-
onKeyDown,
|
|
448
|
-
disabled,
|
|
449
|
-
style,
|
|
450
|
-
color,
|
|
451
|
-
fontSize,
|
|
452
|
-
placeholderTextColor,
|
|
453
|
-
maxLength,
|
|
454
|
-
rows,
|
|
455
|
-
id,
|
|
456
|
-
"aria-describedby": ariaDescribedBy,
|
|
457
|
-
"aria-label": ariaLabel,
|
|
458
|
-
"aria-disabled": ariaDisabled,
|
|
459
|
-
"data-testid": dataTestId
|
|
460
|
-
}, ref) => {
|
|
461
|
-
const handleChangeText = (text) => {
|
|
462
|
-
onChangeText?.(text);
|
|
463
|
-
if (onChange) {
|
|
464
|
-
const syntheticEvent = {
|
|
465
|
-
target: { value: text },
|
|
466
|
-
currentTarget: { value: text },
|
|
467
|
-
type: "change",
|
|
468
|
-
nativeEvent: { text },
|
|
469
|
-
preventDefault: () => {
|
|
470
|
-
},
|
|
471
|
-
stopPropagation: () => {
|
|
472
|
-
},
|
|
473
|
-
isTrusted: false
|
|
474
|
-
};
|
|
475
|
-
onChange(syntheticEvent);
|
|
476
|
-
}
|
|
477
|
-
};
|
|
478
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
479
|
-
import_react_native7.TextInput,
|
|
480
|
-
{
|
|
481
|
-
ref,
|
|
482
|
-
value,
|
|
483
|
-
placeholder,
|
|
484
|
-
onChangeText: handleChangeText,
|
|
485
|
-
onFocus,
|
|
486
|
-
onBlur,
|
|
487
|
-
onKeyPress: (e) => {
|
|
488
|
-
if (onKeyDown) {
|
|
489
|
-
onKeyDown({
|
|
490
|
-
key: e.nativeEvent.key,
|
|
491
|
-
preventDefault: () => {
|
|
492
|
-
}
|
|
493
|
-
});
|
|
494
|
-
}
|
|
495
|
-
},
|
|
496
|
-
editable: !disabled,
|
|
497
|
-
multiline: true,
|
|
498
|
-
numberOfLines: rows || 4,
|
|
499
|
-
style: [
|
|
500
|
-
{
|
|
501
|
-
color,
|
|
502
|
-
fontSize: typeof fontSize === "number" ? fontSize : void 0,
|
|
503
|
-
flex: 1,
|
|
504
|
-
padding: 0,
|
|
505
|
-
textAlignVertical: "top",
|
|
506
|
-
textAlign: style?.textAlign || "left"
|
|
507
|
-
},
|
|
508
|
-
style
|
|
509
|
-
],
|
|
510
|
-
placeholderTextColor,
|
|
511
|
-
maxLength,
|
|
512
|
-
testID: dataTestId || id,
|
|
513
|
-
accessibilityLabel: ariaLabel,
|
|
514
|
-
accessibilityHint: ariaDescribedBy,
|
|
515
|
-
accessibilityState: {
|
|
516
|
-
disabled: disabled || ariaDisabled
|
|
517
|
-
},
|
|
518
|
-
accessible: true
|
|
519
|
-
}
|
|
520
|
-
);
|
|
521
|
-
}
|
|
522
|
-
);
|
|
523
|
-
TextAreaPrimitive.displayName = "TextAreaPrimitive";
|
|
524
|
-
|
|
525
400
|
// src/ContextMenu.tsx
|
|
526
401
|
var import_xui_core7 = require("@xsolla/xui-core");
|
|
527
402
|
var import_xui_spinner = require("@xsolla/xui-spinner");
|
|
528
403
|
|
|
529
404
|
// src/ContextMenuContext.tsx
|
|
530
|
-
var
|
|
531
|
-
var ContextMenuContext = (0,
|
|
405
|
+
var import_react3 = require("react");
|
|
406
|
+
var ContextMenuContext = (0, import_react3.createContext)(void 0);
|
|
532
407
|
var useContextMenu = () => {
|
|
533
|
-
const context = (0,
|
|
408
|
+
const context = (0, import_react3.useContext)(ContextMenuContext);
|
|
534
409
|
return context;
|
|
535
410
|
};
|
|
536
411
|
var useContextMenuRequired = () => {
|
|
537
|
-
const context = (0,
|
|
412
|
+
const context = (0, import_react3.useContext)(ContextMenuContext);
|
|
538
413
|
if (!context) {
|
|
539
414
|
throw new Error(
|
|
540
415
|
"useContextMenuRequired must be used within a ContextMenu component"
|
|
@@ -544,11 +419,11 @@ var useContextMenuRequired = () => {
|
|
|
544
419
|
};
|
|
545
420
|
|
|
546
421
|
// src/ContextMenuItem.tsx
|
|
547
|
-
var
|
|
422
|
+
var import_react4 = require("react");
|
|
548
423
|
var import_xui_core = require("@xsolla/xui-core");
|
|
549
424
|
var import_xui_icons = require("@xsolla/xui-icons");
|
|
550
|
-
var
|
|
551
|
-
var ContextMenuItem = (0,
|
|
425
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
426
|
+
var ContextMenuItem = (0, import_react4.forwardRef)(
|
|
552
427
|
({
|
|
553
428
|
children,
|
|
554
429
|
description,
|
|
@@ -567,10 +442,10 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
567
442
|
const context = useContextMenu();
|
|
568
443
|
const size = propSize || context?.size || "md";
|
|
569
444
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
570
|
-
const itemRef = (0,
|
|
445
|
+
const itemRef = (0, import_react4.useRef)(null);
|
|
571
446
|
const brandColors = theme.colors.control.brand.primary;
|
|
572
447
|
const contentColors = theme.colors.content;
|
|
573
|
-
(0,
|
|
448
|
+
(0, import_react4.useEffect)(() => {
|
|
574
449
|
if (context && !disabled) {
|
|
575
450
|
const id = typeof children === "string" ? children : String(Math.random());
|
|
576
451
|
context.registerItem(id);
|
|
@@ -623,7 +498,7 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
623
498
|
}
|
|
624
499
|
return theme.colors.content.secondary;
|
|
625
500
|
};
|
|
626
|
-
return /* @__PURE__ */ (0,
|
|
501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
627
502
|
Box,
|
|
628
503
|
{
|
|
629
504
|
ref: ref || itemRef,
|
|
@@ -652,18 +527,18 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
652
527
|
},
|
|
653
528
|
"data-testid": testId,
|
|
654
529
|
children: [
|
|
655
|
-
icon && /* @__PURE__ */ (0,
|
|
530
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
656
531
|
Box,
|
|
657
532
|
{
|
|
658
533
|
width: sizeStyles.iconSize,
|
|
659
534
|
marginTop: description ? 2 : 0,
|
|
660
535
|
alignItems: "center",
|
|
661
536
|
justifyContent: "center",
|
|
662
|
-
children: /* @__PURE__ */ (0,
|
|
537
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Icon, { size: sizeStyles.iconSize, color: getIconColor(), children: icon })
|
|
663
538
|
}
|
|
664
539
|
),
|
|
665
|
-
/* @__PURE__ */ (0,
|
|
666
|
-
/* @__PURE__ */ (0,
|
|
540
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Box, { flex: 1, flexDirection: "column", gap: 2, children: [
|
|
541
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
667
542
|
Text,
|
|
668
543
|
{
|
|
669
544
|
color: getTextColor(),
|
|
@@ -673,7 +548,7 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
673
548
|
children
|
|
674
549
|
}
|
|
675
550
|
),
|
|
676
|
-
description && /* @__PURE__ */ (0,
|
|
551
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
677
552
|
Text,
|
|
678
553
|
{
|
|
679
554
|
color: selected ? contentColors.on.brand : theme.colors.content.tertiary,
|
|
@@ -683,7 +558,7 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
683
558
|
}
|
|
684
559
|
)
|
|
685
560
|
] }),
|
|
686
|
-
shortcut && /* @__PURE__ */ (0,
|
|
561
|
+
shortcut && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
687
562
|
Text,
|
|
688
563
|
{
|
|
689
564
|
color: selected ? contentColors.on.brand : theme.colors.content.tertiary,
|
|
@@ -692,12 +567,12 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
692
567
|
}
|
|
693
568
|
),
|
|
694
569
|
trailing,
|
|
695
|
-
hasSubmenu && /* @__PURE__ */ (0,
|
|
570
|
+
hasSubmenu && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
696
571
|
Icon,
|
|
697
572
|
{
|
|
698
573
|
size: sizeStyles.iconSize - 4,
|
|
699
574
|
color: selected ? contentColors.on.brand : theme.colors.content.secondary,
|
|
700
|
-
children: /* @__PURE__ */ (0,
|
|
575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_xui_icons.ArrowRight, {})
|
|
701
576
|
}
|
|
702
577
|
)
|
|
703
578
|
]
|
|
@@ -708,10 +583,10 @@ var ContextMenuItem = (0, import_react5.forwardRef)(
|
|
|
708
583
|
ContextMenuItem.displayName = "ContextMenuItem";
|
|
709
584
|
|
|
710
585
|
// src/ContextMenuCheckboxItem.tsx
|
|
711
|
-
var
|
|
586
|
+
var import_react5 = require("react");
|
|
712
587
|
var import_xui_core2 = require("@xsolla/xui-core");
|
|
713
588
|
var import_xui_icons2 = require("@xsolla/xui-icons");
|
|
714
|
-
var
|
|
589
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
715
590
|
var checkboxSizeMap = {
|
|
716
591
|
sm: 14,
|
|
717
592
|
md: 16,
|
|
@@ -752,7 +627,7 @@ var CheckboxIndicator = ({
|
|
|
752
627
|
}
|
|
753
628
|
return faintColors.border;
|
|
754
629
|
};
|
|
755
|
-
return /* @__PURE__ */ (0,
|
|
630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
756
631
|
Box,
|
|
757
632
|
{
|
|
758
633
|
width: boxSize,
|
|
@@ -763,25 +638,25 @@ var CheckboxIndicator = ({
|
|
|
763
638
|
backgroundColor: getBgColor(),
|
|
764
639
|
alignItems: "center",
|
|
765
640
|
justifyContent: "center",
|
|
766
|
-
children: indeterminate ? /* @__PURE__ */ (0,
|
|
641
|
+
children: indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
767
642
|
Icon,
|
|
768
643
|
{
|
|
769
644
|
size: iconSize,
|
|
770
645
|
color: disabled ? contentColors.tertiary : contentColors.on.brand,
|
|
771
|
-
children: /* @__PURE__ */ (0,
|
|
646
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_xui_icons2.Minus, {})
|
|
772
647
|
}
|
|
773
|
-
) : checked ? /* @__PURE__ */ (0,
|
|
648
|
+
) : checked ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
774
649
|
Icon,
|
|
775
650
|
{
|
|
776
651
|
size: iconSize,
|
|
777
652
|
color: disabled ? contentColors.tertiary : contentColors.on.brand,
|
|
778
|
-
children: /* @__PURE__ */ (0,
|
|
653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_xui_icons2.Check, {})
|
|
779
654
|
}
|
|
780
655
|
) : null
|
|
781
656
|
}
|
|
782
657
|
);
|
|
783
658
|
};
|
|
784
|
-
var ContextMenuCheckboxItem = (0,
|
|
659
|
+
var ContextMenuCheckboxItem = (0, import_react5.forwardRef)(
|
|
785
660
|
({
|
|
786
661
|
children,
|
|
787
662
|
description,
|
|
@@ -799,8 +674,8 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
799
674
|
const context = useContextMenu();
|
|
800
675
|
const size = propSize || context?.size || "md";
|
|
801
676
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
802
|
-
const itemRef = (0,
|
|
803
|
-
(0,
|
|
677
|
+
const itemRef = (0, import_react5.useRef)(null);
|
|
678
|
+
(0, import_react5.useEffect)(() => {
|
|
804
679
|
if (context && !disabled) {
|
|
805
680
|
const id = typeof children === "string" ? children : String(Math.random());
|
|
806
681
|
context.registerItem(id);
|
|
@@ -834,7 +709,7 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
834
709
|
}
|
|
835
710
|
return theme.colors.control.input.text;
|
|
836
711
|
};
|
|
837
|
-
return /* @__PURE__ */ (0,
|
|
712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
838
713
|
Box,
|
|
839
714
|
{
|
|
840
715
|
ref: ref || itemRef,
|
|
@@ -863,13 +738,13 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
863
738
|
},
|
|
864
739
|
"data-testid": testId,
|
|
865
740
|
children: [
|
|
866
|
-
/* @__PURE__ */ (0,
|
|
741
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
867
742
|
Box,
|
|
868
743
|
{
|
|
869
744
|
marginTop: description ? 2 : 0,
|
|
870
745
|
alignItems: "center",
|
|
871
746
|
justifyContent: "center",
|
|
872
|
-
children: /* @__PURE__ */ (0,
|
|
747
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
873
748
|
CheckboxIndicator,
|
|
874
749
|
{
|
|
875
750
|
checked,
|
|
@@ -880,9 +755,9 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
880
755
|
)
|
|
881
756
|
}
|
|
882
757
|
),
|
|
883
|
-
leadingContent && /* @__PURE__ */ (0,
|
|
884
|
-
/* @__PURE__ */ (0,
|
|
885
|
-
/* @__PURE__ */ (0,
|
|
758
|
+
leadingContent && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Box, { padding: 5, alignItems: "center", justifyContent: "center", children: leadingContent }),
|
|
759
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Box, { flex: 1, flexDirection: "column", gap: 2, children: [
|
|
760
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
886
761
|
Text,
|
|
887
762
|
{
|
|
888
763
|
color: getTextColor(),
|
|
@@ -892,7 +767,7 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
892
767
|
children
|
|
893
768
|
}
|
|
894
769
|
),
|
|
895
|
-
description && /* @__PURE__ */ (0,
|
|
770
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
896
771
|
Text,
|
|
897
772
|
{
|
|
898
773
|
color: theme.colors.content.tertiary,
|
|
@@ -911,26 +786,26 @@ var ContextMenuCheckboxItem = (0, import_react6.forwardRef)(
|
|
|
911
786
|
ContextMenuCheckboxItem.displayName = "ContextMenuCheckboxItem";
|
|
912
787
|
|
|
913
788
|
// src/ContextMenuRadioGroup.tsx
|
|
914
|
-
var
|
|
915
|
-
var
|
|
916
|
-
var RadioGroupContext = (0,
|
|
917
|
-
var useRadioGroup = () => (0,
|
|
918
|
-
var ContextMenuRadioGroup = (0,
|
|
789
|
+
var import_react6 = require("react");
|
|
790
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
791
|
+
var RadioGroupContext = (0, import_react6.createContext)(null);
|
|
792
|
+
var useRadioGroup = () => (0, import_react6.useContext)(RadioGroupContext);
|
|
793
|
+
var ContextMenuRadioGroup = (0, import_react6.forwardRef)(
|
|
919
794
|
({
|
|
920
795
|
children,
|
|
921
796
|
value,
|
|
922
797
|
onValueChange,
|
|
923
798
|
"data-testid": testId = "context-menu-radio-group"
|
|
924
799
|
}, ref) => {
|
|
925
|
-
return /* @__PURE__ */ (0,
|
|
800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(RadioGroupContext.Provider, { value: { value, onValueChange }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box, { ref, role: "group", flexDirection: "column", "data-testid": testId, children }) });
|
|
926
801
|
}
|
|
927
802
|
);
|
|
928
803
|
ContextMenuRadioGroup.displayName = "ContextMenuRadioGroup";
|
|
929
804
|
|
|
930
805
|
// src/ContextMenuRadioItem.tsx
|
|
931
|
-
var
|
|
806
|
+
var import_react7 = require("react");
|
|
932
807
|
var import_xui_core3 = require("@xsolla/xui-core");
|
|
933
|
-
var
|
|
808
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
934
809
|
var radioSizeMap = {
|
|
935
810
|
sm: 14,
|
|
936
811
|
md: 16,
|
|
@@ -969,7 +844,7 @@ var RadioIndicator = ({
|
|
|
969
844
|
}
|
|
970
845
|
return faintColors.border;
|
|
971
846
|
};
|
|
972
|
-
return /* @__PURE__ */ (0,
|
|
847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
973
848
|
Box,
|
|
974
849
|
{
|
|
975
850
|
width: outerSize,
|
|
@@ -980,7 +855,7 @@ var RadioIndicator = ({
|
|
|
980
855
|
backgroundColor: getBgColor(),
|
|
981
856
|
alignItems: "center",
|
|
982
857
|
justifyContent: "center",
|
|
983
|
-
children: checked && /* @__PURE__ */ (0,
|
|
858
|
+
children: checked && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
984
859
|
Box,
|
|
985
860
|
{
|
|
986
861
|
width: dotSize,
|
|
@@ -992,7 +867,7 @@ var RadioIndicator = ({
|
|
|
992
867
|
}
|
|
993
868
|
);
|
|
994
869
|
};
|
|
995
|
-
var ContextMenuRadioItem = (0,
|
|
870
|
+
var ContextMenuRadioItem = (0, import_react7.forwardRef)(
|
|
996
871
|
({
|
|
997
872
|
children,
|
|
998
873
|
description,
|
|
@@ -1007,9 +882,9 @@ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
|
|
|
1007
882
|
const radioGroup = useRadioGroup();
|
|
1008
883
|
const size = propSize || context?.size || "md";
|
|
1009
884
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
1010
|
-
const itemRef = (0,
|
|
885
|
+
const itemRef = (0, import_react7.useRef)(null);
|
|
1011
886
|
const checked = radioGroup?.value === value;
|
|
1012
|
-
(0,
|
|
887
|
+
(0, import_react7.useEffect)(() => {
|
|
1013
888
|
if (context && !disabled) {
|
|
1014
889
|
const id = typeof children === "string" ? children : String(Math.random());
|
|
1015
890
|
context.registerItem(id);
|
|
@@ -1042,7 +917,7 @@ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
|
|
|
1042
917
|
}
|
|
1043
918
|
return theme.colors.control.input.text;
|
|
1044
919
|
};
|
|
1045
|
-
return /* @__PURE__ */ (0,
|
|
920
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
1046
921
|
Box,
|
|
1047
922
|
{
|
|
1048
923
|
ref: ref || itemRef,
|
|
@@ -1071,17 +946,17 @@ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
|
|
|
1071
946
|
},
|
|
1072
947
|
"data-testid": testId,
|
|
1073
948
|
children: [
|
|
1074
|
-
/* @__PURE__ */ (0,
|
|
949
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1075
950
|
Box,
|
|
1076
951
|
{
|
|
1077
952
|
marginTop: description ? 2 : 0,
|
|
1078
953
|
alignItems: "center",
|
|
1079
954
|
justifyContent: "center",
|
|
1080
|
-
children: /* @__PURE__ */ (0,
|
|
955
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadioIndicator, { checked, size, disabled })
|
|
1081
956
|
}
|
|
1082
957
|
),
|
|
1083
|
-
/* @__PURE__ */ (0,
|
|
1084
|
-
/* @__PURE__ */ (0,
|
|
958
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Box, { flex: 1, flexDirection: "column", gap: 2, children: [
|
|
959
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1085
960
|
Text,
|
|
1086
961
|
{
|
|
1087
962
|
color: getTextColor(),
|
|
@@ -1091,7 +966,7 @@ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
|
|
|
1091
966
|
children
|
|
1092
967
|
}
|
|
1093
968
|
),
|
|
1094
|
-
description && /* @__PURE__ */ (0,
|
|
969
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1095
970
|
Text,
|
|
1096
971
|
{
|
|
1097
972
|
color: theme.colors.content.tertiary,
|
|
@@ -1109,10 +984,10 @@ var ContextMenuRadioItem = (0, import_react8.forwardRef)(
|
|
|
1109
984
|
ContextMenuRadioItem.displayName = "ContextMenuRadioItem";
|
|
1110
985
|
|
|
1111
986
|
// src/ContextMenuGroup.tsx
|
|
1112
|
-
var
|
|
987
|
+
var import_react8 = require("react");
|
|
1113
988
|
var import_xui_core4 = require("@xsolla/xui-core");
|
|
1114
|
-
var
|
|
1115
|
-
var ContextMenuGroup = (0,
|
|
989
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
990
|
+
var ContextMenuGroup = (0, import_react8.forwardRef)(
|
|
1116
991
|
({
|
|
1117
992
|
label,
|
|
1118
993
|
description,
|
|
@@ -1124,14 +999,14 @@ var ContextMenuGroup = (0, import_react9.forwardRef)(
|
|
|
1124
999
|
const context = useContextMenu();
|
|
1125
1000
|
const size = propSize || context?.size || "md";
|
|
1126
1001
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
1127
|
-
return /* @__PURE__ */ (0,
|
|
1128
|
-
label && /* @__PURE__ */ (0,
|
|
1002
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Box, { ref, role: "group", "aria-label": label, "data-testid": testId, children: [
|
|
1003
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1129
1004
|
Box,
|
|
1130
1005
|
{
|
|
1131
1006
|
paddingHorizontal: sizeStyles.itemPaddingHorizontal,
|
|
1132
1007
|
paddingVertical: sizeStyles.itemPaddingVertical,
|
|
1133
1008
|
children: [
|
|
1134
|
-
/* @__PURE__ */ (0,
|
|
1009
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1135
1010
|
Text,
|
|
1136
1011
|
{
|
|
1137
1012
|
color: theme.colors.content.secondary,
|
|
@@ -1141,7 +1016,7 @@ var ContextMenuGroup = (0, import_react9.forwardRef)(
|
|
|
1141
1016
|
children: label
|
|
1142
1017
|
}
|
|
1143
1018
|
),
|
|
1144
|
-
description && /* @__PURE__ */ (0,
|
|
1019
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1145
1020
|
Text,
|
|
1146
1021
|
{
|
|
1147
1022
|
color: theme.colors.content.tertiary,
|
|
@@ -1161,7 +1036,7 @@ ContextMenuGroup.displayName = "ContextMenuGroup";
|
|
|
1161
1036
|
|
|
1162
1037
|
// src/ContextMenuSeparator.tsx
|
|
1163
1038
|
var import_xui_core5 = require("@xsolla/xui-core");
|
|
1164
|
-
var
|
|
1039
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1165
1040
|
var ContextMenuSeparator = ({
|
|
1166
1041
|
size: propSize,
|
|
1167
1042
|
"data-testid": testId = "context-menu-separator"
|
|
@@ -1170,7 +1045,7 @@ var ContextMenuSeparator = ({
|
|
|
1170
1045
|
const context = useContextMenu();
|
|
1171
1046
|
const size = propSize || context?.size || "md";
|
|
1172
1047
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
1173
|
-
return /* @__PURE__ */ (0,
|
|
1048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1174
1049
|
Box,
|
|
1175
1050
|
{
|
|
1176
1051
|
role: "separator",
|
|
@@ -1185,11 +1060,14 @@ var ContextMenuSeparator = ({
|
|
|
1185
1060
|
ContextMenuSeparator.displayName = "ContextMenuSeparator";
|
|
1186
1061
|
|
|
1187
1062
|
// src/ContextMenuSearch.tsx
|
|
1188
|
-
var
|
|
1063
|
+
var import_react9 = __toESM(require("react"));
|
|
1189
1064
|
var import_xui_core6 = require("@xsolla/xui-core");
|
|
1190
1065
|
|
|
1191
1066
|
// ../icons-base/dist/web/index.mjs
|
|
1192
1067
|
var import_styled_components = __toESM(require("styled-components"), 1);
|
|
1068
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1069
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1070
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1193
1071
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1194
1072
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1195
1073
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
@@ -1568,9 +1446,6 @@ var import_jsx_runtime388 = require("react/jsx-runtime");
|
|
|
1568
1446
|
var import_jsx_runtime389 = require("react/jsx-runtime");
|
|
1569
1447
|
var import_jsx_runtime390 = require("react/jsx-runtime");
|
|
1570
1448
|
var import_jsx_runtime391 = require("react/jsx-runtime");
|
|
1571
|
-
var import_jsx_runtime392 = require("react/jsx-runtime");
|
|
1572
|
-
var import_jsx_runtime393 = require("react/jsx-runtime");
|
|
1573
|
-
var import_jsx_runtime394 = require("react/jsx-runtime");
|
|
1574
1449
|
var StyledIcon = import_styled_components.default.div`
|
|
1575
1450
|
display: inline-flex;
|
|
1576
1451
|
align-items: center;
|
|
@@ -1598,7 +1473,7 @@ var BaseIcon = ({
|
|
|
1598
1473
|
}) => {
|
|
1599
1474
|
const svgContent = variant === "line" ? lineContent381 : solidContent381;
|
|
1600
1475
|
const sizeValue = typeof size === "number" ? `${size}px` : size;
|
|
1601
|
-
return /* @__PURE__ */ (0,
|
|
1476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1602
1477
|
StyledIcon,
|
|
1603
1478
|
{
|
|
1604
1479
|
$size: sizeValue,
|
|
@@ -1615,12 +1490,12 @@ var BaseIcon = ({
|
|
|
1615
1490
|
};
|
|
1616
1491
|
var solidContent367 = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><g id="icon_search--line"><path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M10 2C14.4183 2 18 5.58172 18 10C18 11.8484 17.3711 13.5488 16.3184 14.9033L21.957 20.543L20.543 21.957L14.9033 16.3174C13.5487 17.3703 11.8486 18 10 18C5.58172 18 2 14.4183 2 10C2 5.58172 5.58172 2 10 2ZM10 4C6.68629 4 4 6.68629 4 10C4 13.3137 6.68629 16 10 16C13.3137 16 16 13.3137 16 10C16 6.68629 13.3137 4 10 4Z" style="fill: currentColor"/></g></svg>`;
|
|
1617
1492
|
var lineContent367 = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><g id="icon_search--line"><path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M10 2C14.4183 2 18 5.58172 18 10C18 11.8484 17.3711 13.5488 16.3184 14.9033L21.957 20.543L20.543 21.957L14.9033 16.3174C13.5487 17.3703 11.8486 18 10 18C5.58172 18 2 14.4183 2 10C2 5.58172 5.58172 2 10 2ZM10 4C6.68629 4 4 6.68629 4 10C4 13.3137 6.68629 16 10 16C13.3137 16 16 13.3137 16 10C16 6.68629 13.3137 4 10 4Z" style="fill: currentColor"/></g></svg>`;
|
|
1618
|
-
var Search = (props) => /* @__PURE__ */ (0,
|
|
1493
|
+
var Search = (props) => /* @__PURE__ */ (0, import_jsx_runtime378.jsx)(BaseIcon, { ...props, solidContent: solidContent367, lineContent: lineContent367 });
|
|
1619
1494
|
|
|
1620
1495
|
// src/ContextMenuSearch.tsx
|
|
1621
1496
|
var import_xui_divider = require("@xsolla/xui-divider");
|
|
1622
|
-
var
|
|
1623
|
-
var ContextMenuSearch = (0,
|
|
1497
|
+
var import_jsx_runtime392 = require("react/jsx-runtime");
|
|
1498
|
+
var ContextMenuSearch = (0, import_react9.forwardRef)(
|
|
1624
1499
|
({
|
|
1625
1500
|
value,
|
|
1626
1501
|
onChange,
|
|
@@ -1634,14 +1509,14 @@ var ContextMenuSearch = (0, import_react10.forwardRef)(
|
|
|
1634
1509
|
const context = useContextMenu();
|
|
1635
1510
|
const size = propSize || context?.size || "md";
|
|
1636
1511
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
1637
|
-
const inputRef = (0,
|
|
1512
|
+
const inputRef = (0, import_react9.useRef)(null);
|
|
1638
1513
|
const inputColors = theme.colors.control.input;
|
|
1639
|
-
|
|
1514
|
+
import_react9.default.useImperativeHandle(
|
|
1640
1515
|
ref,
|
|
1641
1516
|
() => inputRef.current,
|
|
1642
1517
|
[]
|
|
1643
1518
|
);
|
|
1644
|
-
(0,
|
|
1519
|
+
(0, import_react9.useEffect)(() => {
|
|
1645
1520
|
if (autoFocus && inputRef.current) {
|
|
1646
1521
|
setTimeout(() => {
|
|
1647
1522
|
inputRef.current?.focus();
|
|
@@ -1658,7 +1533,7 @@ var ContextMenuSearch = (0, import_react10.forwardRef)(
|
|
|
1658
1533
|
context?.closeMenu();
|
|
1659
1534
|
}
|
|
1660
1535
|
};
|
|
1661
|
-
return /* @__PURE__ */ (0,
|
|
1536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime392.jsxs)(
|
|
1662
1537
|
Box,
|
|
1663
1538
|
{
|
|
1664
1539
|
flexDirection: "column",
|
|
@@ -1667,16 +1542,16 @@ var ContextMenuSearch = (0, import_react10.forwardRef)(
|
|
|
1667
1542
|
paddingVertical: sizeStyles.searchPaddingVertical,
|
|
1668
1543
|
"data-testid": testId,
|
|
1669
1544
|
children: [
|
|
1670
|
-
/* @__PURE__ */ (0,
|
|
1671
|
-
/* @__PURE__ */ (0,
|
|
1545
|
+
/* @__PURE__ */ (0, import_jsx_runtime392.jsxs)(Box, { flexDirection: "row", alignItems: "center", gap: 8, children: [
|
|
1546
|
+
/* @__PURE__ */ (0, import_jsx_runtime392.jsx)(
|
|
1672
1547
|
Icon,
|
|
1673
1548
|
{
|
|
1674
1549
|
size: sizeStyles.searchIconSize,
|
|
1675
1550
|
color: inputColors.placeholder,
|
|
1676
|
-
children: /* @__PURE__ */ (0,
|
|
1551
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime392.jsx)(Search, {})
|
|
1677
1552
|
}
|
|
1678
1553
|
),
|
|
1679
|
-
/* @__PURE__ */ (0,
|
|
1554
|
+
/* @__PURE__ */ (0, import_jsx_runtime392.jsx)(Box, { flex: 1, children: /* @__PURE__ */ (0, import_jsx_runtime392.jsx)(
|
|
1680
1555
|
InputPrimitive,
|
|
1681
1556
|
{
|
|
1682
1557
|
ref: inputRef,
|
|
@@ -1695,7 +1570,7 @@ var ContextMenuSearch = (0, import_react10.forwardRef)(
|
|
|
1695
1570
|
}
|
|
1696
1571
|
) })
|
|
1697
1572
|
] }),
|
|
1698
|
-
/* @__PURE__ */ (0,
|
|
1573
|
+
/* @__PURE__ */ (0, import_jsx_runtime392.jsx)(import_xui_divider.Divider, {})
|
|
1699
1574
|
]
|
|
1700
1575
|
}
|
|
1701
1576
|
);
|
|
@@ -1704,8 +1579,8 @@ var ContextMenuSearch = (0, import_react10.forwardRef)(
|
|
|
1704
1579
|
ContextMenuSearch.displayName = "ContextMenuSearch";
|
|
1705
1580
|
|
|
1706
1581
|
// src/ContextMenu.tsx
|
|
1707
|
-
var
|
|
1708
|
-
var ContextMenuRoot = (0,
|
|
1582
|
+
var import_jsx_runtime393 = require("react/jsx-runtime");
|
|
1583
|
+
var ContextMenuRoot = (0, import_react10.forwardRef)(
|
|
1709
1584
|
({
|
|
1710
1585
|
children,
|
|
1711
1586
|
list,
|
|
@@ -1725,21 +1600,21 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1725
1600
|
"data-testid": testId = "context-menu"
|
|
1726
1601
|
}, ref) => {
|
|
1727
1602
|
const { theme } = (0, import_xui_core7.useDesignSystem)();
|
|
1728
|
-
const [internalIsOpen, setInternalIsOpen] = (0,
|
|
1729
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
1730
|
-
const containerRef = (0,
|
|
1731
|
-
const menuRef = (0,
|
|
1732
|
-
const itemsRef = (0,
|
|
1603
|
+
const [internalIsOpen, setInternalIsOpen] = (0, import_react10.useState)(false);
|
|
1604
|
+
const [activeIndex, setActiveIndex] = (0, import_react10.useState)(-1);
|
|
1605
|
+
const containerRef = (0, import_react10.useRef)(null);
|
|
1606
|
+
const menuRef = (0, import_react10.useRef)(null);
|
|
1607
|
+
const itemsRef = (0, import_react10.useRef)([]);
|
|
1733
1608
|
const isOpen = propIsOpen !== void 0 ? propIsOpen : internalIsOpen;
|
|
1734
1609
|
const sizeStyles = theme.sizing.contextMenu(size);
|
|
1735
|
-
const closeMenu = (0,
|
|
1610
|
+
const closeMenu = (0, import_react10.useCallback)(() => {
|
|
1736
1611
|
if (propIsOpen === void 0) {
|
|
1737
1612
|
setInternalIsOpen(false);
|
|
1738
1613
|
}
|
|
1739
1614
|
onOpenChange?.(false);
|
|
1740
1615
|
setActiveIndex(-1);
|
|
1741
1616
|
}, [propIsOpen, onOpenChange]);
|
|
1742
|
-
const toggleMenu = (0,
|
|
1617
|
+
const toggleMenu = (0, import_react10.useCallback)(() => {
|
|
1743
1618
|
const nextOpen = !isOpen;
|
|
1744
1619
|
if (propIsOpen === void 0) {
|
|
1745
1620
|
setInternalIsOpen(nextOpen);
|
|
@@ -1749,7 +1624,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1749
1624
|
setActiveIndex(-1);
|
|
1750
1625
|
}
|
|
1751
1626
|
}, [isOpen, propIsOpen, onOpenChange]);
|
|
1752
|
-
(0,
|
|
1627
|
+
(0, import_react10.useEffect)(() => {
|
|
1753
1628
|
const handleClickOutside = (event) => {
|
|
1754
1629
|
if (containerRef.current && !containerRef.current.contains(event.target)) {
|
|
1755
1630
|
closeMenu();
|
|
@@ -1762,7 +1637,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1762
1637
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
1763
1638
|
};
|
|
1764
1639
|
}, [isOpen, closeMenu]);
|
|
1765
|
-
(0,
|
|
1640
|
+
(0, import_react10.useEffect)(() => {
|
|
1766
1641
|
const handleEscape = (event) => {
|
|
1767
1642
|
if (event.key === "Escape") {
|
|
1768
1643
|
closeMenu();
|
|
@@ -1775,17 +1650,17 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1775
1650
|
document.removeEventListener("keydown", handleEscape);
|
|
1776
1651
|
};
|
|
1777
1652
|
}, [isOpen, closeMenu]);
|
|
1778
|
-
(0,
|
|
1653
|
+
(0, import_react10.useEffect)(() => {
|
|
1779
1654
|
if (isOpen && menuRef.current) {
|
|
1780
1655
|
menuRef.current.focus();
|
|
1781
1656
|
}
|
|
1782
1657
|
}, [isOpen]);
|
|
1783
|
-
(0,
|
|
1658
|
+
(0, import_react10.useEffect)(() => {
|
|
1784
1659
|
if (!isOpen) {
|
|
1785
1660
|
itemsRef.current = [];
|
|
1786
1661
|
}
|
|
1787
1662
|
}, [isOpen]);
|
|
1788
|
-
const registerItem = (0,
|
|
1663
|
+
const registerItem = (0, import_react10.useCallback)((id) => {
|
|
1789
1664
|
const index = itemsRef.current.indexOf(id);
|
|
1790
1665
|
if (index === -1) {
|
|
1791
1666
|
itemsRef.current.push(id);
|
|
@@ -1793,13 +1668,13 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1793
1668
|
}
|
|
1794
1669
|
return index;
|
|
1795
1670
|
}, []);
|
|
1796
|
-
const unregisterItem = (0,
|
|
1671
|
+
const unregisterItem = (0, import_react10.useCallback)((id) => {
|
|
1797
1672
|
const index = itemsRef.current.indexOf(id);
|
|
1798
1673
|
if (index !== -1) {
|
|
1799
1674
|
itemsRef.current.splice(index, 1);
|
|
1800
1675
|
}
|
|
1801
1676
|
}, []);
|
|
1802
|
-
const onItemSelect = (0,
|
|
1677
|
+
const onItemSelect = (0, import_react10.useCallback)(
|
|
1803
1678
|
(item) => {
|
|
1804
1679
|
onSelect?.(item);
|
|
1805
1680
|
if (item.variant === "checkbox") {
|
|
@@ -1815,7 +1690,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1815
1690
|
},
|
|
1816
1691
|
[onSelect, onCheckedChange, closeOnSelect, closeMenu]
|
|
1817
1692
|
);
|
|
1818
|
-
const handleKeyDown = (0,
|
|
1693
|
+
const handleKeyDown = (0, import_react10.useCallback)(
|
|
1819
1694
|
(event) => {
|
|
1820
1695
|
const itemCount = itemsRef.current.length;
|
|
1821
1696
|
if (itemCount === 0) return;
|
|
@@ -1847,7 +1722,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1847
1722
|
},
|
|
1848
1723
|
[closeMenu]
|
|
1849
1724
|
);
|
|
1850
|
-
const contextValue = (0,
|
|
1725
|
+
const contextValue = (0, import_react10.useMemo)(
|
|
1851
1726
|
() => ({
|
|
1852
1727
|
size,
|
|
1853
1728
|
closeMenu,
|
|
@@ -1883,7 +1758,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1883
1758
|
"data-testid": `context-menu-item-${item.id || index}`
|
|
1884
1759
|
};
|
|
1885
1760
|
if (item.variant === "checkbox") {
|
|
1886
|
-
return /* @__PURE__ */ (0,
|
|
1761
|
+
return /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1887
1762
|
ContextMenuCheckboxItem,
|
|
1888
1763
|
{
|
|
1889
1764
|
...commonProps,
|
|
@@ -1896,7 +1771,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1896
1771
|
);
|
|
1897
1772
|
}
|
|
1898
1773
|
if (item.variant === "radio") {
|
|
1899
|
-
return /* @__PURE__ */ (0,
|
|
1774
|
+
return /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1900
1775
|
ContextMenuRadioItem,
|
|
1901
1776
|
{
|
|
1902
1777
|
...commonProps,
|
|
@@ -1907,7 +1782,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1907
1782
|
itemKey
|
|
1908
1783
|
);
|
|
1909
1784
|
}
|
|
1910
|
-
return /* @__PURE__ */ (0,
|
|
1785
|
+
return /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1911
1786
|
ContextMenuItem,
|
|
1912
1787
|
{
|
|
1913
1788
|
...commonProps,
|
|
@@ -1925,9 +1800,9 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1925
1800
|
});
|
|
1926
1801
|
};
|
|
1927
1802
|
const renderGroups = (groupsData) => {
|
|
1928
|
-
return groupsData.map((group, groupIndex) => /* @__PURE__ */ (0,
|
|
1929
|
-
groupIndex > 0 && /* @__PURE__ */ (0,
|
|
1930
|
-
/* @__PURE__ */ (0,
|
|
1803
|
+
return groupsData.map((group, groupIndex) => /* @__PURE__ */ (0, import_jsx_runtime393.jsxs)(import_react10.default.Fragment, { children: [
|
|
1804
|
+
groupIndex > 0 && /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(ContextMenuSeparator, {}),
|
|
1805
|
+
/* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1931
1806
|
ContextMenuGroup,
|
|
1932
1807
|
{
|
|
1933
1808
|
label: group.label,
|
|
@@ -1941,14 +1816,14 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1941
1816
|
const renderContent = () => {
|
|
1942
1817
|
if (isLoading) {
|
|
1943
1818
|
const brandColor = theme.colors.control.brand.primary.bg;
|
|
1944
|
-
return /* @__PURE__ */ (0,
|
|
1819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1945
1820
|
Box,
|
|
1946
1821
|
{
|
|
1947
1822
|
padding: 16,
|
|
1948
1823
|
alignItems: "center",
|
|
1949
1824
|
justifyContent: "center",
|
|
1950
1825
|
minHeight: 60,
|
|
1951
|
-
children: /* @__PURE__ */ (0,
|
|
1826
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(import_xui_spinner.Spinner, { size: "md", color: brandColor })
|
|
1952
1827
|
}
|
|
1953
1828
|
);
|
|
1954
1829
|
}
|
|
@@ -1963,7 +1838,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1963
1838
|
}
|
|
1964
1839
|
return null;
|
|
1965
1840
|
};
|
|
1966
|
-
return /* @__PURE__ */ (0,
|
|
1841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(ContextMenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime393.jsxs)(
|
|
1967
1842
|
"div",
|
|
1968
1843
|
{
|
|
1969
1844
|
ref: containerRef,
|
|
@@ -1974,7 +1849,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1974
1849
|
},
|
|
1975
1850
|
"data-testid": testId,
|
|
1976
1851
|
children: [
|
|
1977
|
-
trigger && /* @__PURE__ */ (0,
|
|
1852
|
+
trigger && /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1978
1853
|
"div",
|
|
1979
1854
|
{
|
|
1980
1855
|
onClick: toggleMenu,
|
|
@@ -1983,7 +1858,7 @@ var ContextMenuRoot = (0, import_react11.forwardRef)(
|
|
|
1983
1858
|
children: trigger
|
|
1984
1859
|
}
|
|
1985
1860
|
),
|
|
1986
|
-
isOpen && /* @__PURE__ */ (0,
|
|
1861
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime393.jsx)(
|
|
1987
1862
|
Box,
|
|
1988
1863
|
{
|
|
1989
1864
|
ref: (node) => {
|
|
@@ -2034,15 +1909,15 @@ var ContextMenu = Object.assign(ContextMenuRoot, {
|
|
|
2034
1909
|
});
|
|
2035
1910
|
|
|
2036
1911
|
// src/hooks/useContextMenuPosition.ts
|
|
2037
|
-
var
|
|
1912
|
+
var import_react11 = require("react");
|
|
2038
1913
|
var useContextMenuPosition = ({
|
|
2039
1914
|
position,
|
|
2040
1915
|
menuRef,
|
|
2041
1916
|
isOpen,
|
|
2042
1917
|
offset = 8
|
|
2043
1918
|
}) => {
|
|
2044
|
-
const [adjustedPosition, setAdjustedPosition] = (0,
|
|
2045
|
-
(0,
|
|
1919
|
+
const [adjustedPosition, setAdjustedPosition] = (0, import_react11.useState)();
|
|
1920
|
+
(0, import_react11.useEffect)(() => {
|
|
2046
1921
|
if (!isOpen || !position || !menuRef.current) {
|
|
2047
1922
|
setAdjustedPosition(void 0);
|
|
2048
1923
|
return;
|
|
@@ -2090,7 +1965,7 @@ var useContextMenuPosition = ({
|
|
|
2090
1965
|
};
|
|
2091
1966
|
|
|
2092
1967
|
// src/hooks/useKeyboardNavigation.ts
|
|
2093
|
-
var
|
|
1968
|
+
var import_react12 = require("react");
|
|
2094
1969
|
var useKeyboardNavigation = ({
|
|
2095
1970
|
isOpen,
|
|
2096
1971
|
itemCount,
|
|
@@ -2100,9 +1975,9 @@ var useKeyboardNavigation = ({
|
|
|
2100
1975
|
onClose,
|
|
2101
1976
|
loop = true
|
|
2102
1977
|
}) => {
|
|
2103
|
-
const typeaheadBuffer = (0,
|
|
2104
|
-
const typeaheadTimeout = (0,
|
|
2105
|
-
(0,
|
|
1978
|
+
const typeaheadBuffer = (0, import_react12.useRef)("");
|
|
1979
|
+
const typeaheadTimeout = (0, import_react12.useRef)(null);
|
|
1980
|
+
(0, import_react12.useEffect)(() => {
|
|
2106
1981
|
if (!isOpen) {
|
|
2107
1982
|
typeaheadBuffer.current = "";
|
|
2108
1983
|
if (typeaheadTimeout.current) {
|
|
@@ -2110,7 +1985,7 @@ var useKeyboardNavigation = ({
|
|
|
2110
1985
|
}
|
|
2111
1986
|
}
|
|
2112
1987
|
}, [isOpen]);
|
|
2113
|
-
const handleKeyDown = (0,
|
|
1988
|
+
const handleKeyDown = (0, import_react12.useCallback)(
|
|
2114
1989
|
(event) => {
|
|
2115
1990
|
if (!isOpen || itemCount === 0) return;
|
|
2116
1991
|
switch (event.key) {
|