myshell-react-lib 0.2.44 → 0.2.45

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/dist/index.cjs CHANGED
@@ -4305,6 +4305,9 @@ __export(index_exports, {
4305
4305
  DropdownMenuGroup: function() {
4306
4306
  return DropdownMenuGroup;
4307
4307
  },
4308
+ DropdownMenuHover: function() {
4309
+ return DropdownMenuHover;
4310
+ },
4308
4311
  DropdownMenuItem: function() {
4309
4312
  return DropdownMenuItem;
4310
4313
  },
@@ -11293,7 +11296,107 @@ var import_lucide_react5 = require("lucide-react");
11293
11296
  var React21 = __toESM(require("react"), 1);
11294
11297
  var import_jsx_runtime27 = require("react/jsx-runtime");
11295
11298
  var DropdownMenu = DropdownMenuPrimitive.Root;
11296
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
11299
+ var DropdownMenuHoverContext = React21.createContext(null);
11300
+ var DropdownMenuHover = function(_param) {
11301
+ var children = _param.children, _param_openDelay = _param.openDelay, openDelay = _param_openDelay === void 0 ? 200 : _param_openDelay, _param_closeDelay = _param.closeDelay, closeDelay = _param_closeDelay === void 0 ? 300 : _param_closeDelay, _param_modal = _param.modal, modal = _param_modal === void 0 ? false : _param_modal, props = _object_without_properties(_param, [
11302
+ "children",
11303
+ "openDelay",
11304
+ "closeDelay",
11305
+ "modal"
11306
+ ]);
11307
+ var _React21_useState = _sliced_to_array(React21.useState(false), 2), open = _React21_useState[0], setOpen = _React21_useState[1];
11308
+ var openTimeoutRef = React21.useRef();
11309
+ var closeTimeoutRef = React21.useRef();
11310
+ var openStateRef = React21.useRef(false);
11311
+ React21.useEffect(function() {
11312
+ openStateRef.current = open;
11313
+ }, [
11314
+ open
11315
+ ]);
11316
+ var clearAllTimeouts = React21.useCallback(function() {
11317
+ if (openTimeoutRef.current) {
11318
+ clearTimeout(openTimeoutRef.current);
11319
+ openTimeoutRef.current = void 0;
11320
+ }
11321
+ if (closeTimeoutRef.current) {
11322
+ clearTimeout(closeTimeoutRef.current);
11323
+ closeTimeoutRef.current = void 0;
11324
+ }
11325
+ }, []);
11326
+ var handleMouseEnter = React21.useCallback(function() {
11327
+ if (closeTimeoutRef.current) {
11328
+ clearTimeout(closeTimeoutRef.current);
11329
+ closeTimeoutRef.current = void 0;
11330
+ }
11331
+ if (openTimeoutRef.current || openStateRef.current) {
11332
+ return;
11333
+ }
11334
+ openTimeoutRef.current = setTimeout(function() {
11335
+ setOpen(true);
11336
+ openTimeoutRef.current = void 0;
11337
+ }, openDelay);
11338
+ }, [
11339
+ openDelay
11340
+ ]);
11341
+ var handleMouseLeave = React21.useCallback(function() {
11342
+ if (openTimeoutRef.current) {
11343
+ clearTimeout(openTimeoutRef.current);
11344
+ openTimeoutRef.current = void 0;
11345
+ }
11346
+ if (closeTimeoutRef.current || !openStateRef.current) {
11347
+ return;
11348
+ }
11349
+ closeTimeoutRef.current = setTimeout(function() {
11350
+ setOpen(false);
11351
+ closeTimeoutRef.current = void 0;
11352
+ }, closeDelay);
11353
+ }, [
11354
+ closeDelay
11355
+ ]);
11356
+ React21.useEffect(function() {
11357
+ return function() {
11358
+ clearAllTimeouts();
11359
+ };
11360
+ }, [
11361
+ clearAllTimeouts
11362
+ ]);
11363
+ var contextValue = React21.useMemo(function() {
11364
+ return {
11365
+ handleMouseEnter: handleMouseEnter,
11366
+ handleMouseLeave: handleMouseLeave
11367
+ };
11368
+ }, [
11369
+ handleMouseEnter,
11370
+ handleMouseLeave
11371
+ ]);
11372
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DropdownMenuHoverContext.Provider, {
11373
+ value: contextValue,
11374
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DropdownMenuPrimitive.Root, _object_spread_props(_object_spread({
11375
+ open: open,
11376
+ modal: modal,
11377
+ onOpenChange: function(newOpen) {
11378
+ if (!newOpen) {
11379
+ setOpen(false);
11380
+ clearAllTimeouts();
11381
+ } else {
11382
+ setOpen(true);
11383
+ }
11384
+ }
11385
+ }, props), {
11386
+ children: children
11387
+ }))
11388
+ });
11389
+ };
11390
+ var DropdownMenuTriggerPrimitive = DropdownMenuPrimitive.Trigger;
11391
+ var DropdownMenuTrigger = React21.forwardRef(function(props, ref) {
11392
+ var hoverContext = React21.useContext(DropdownMenuHoverContext);
11393
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DropdownMenuTriggerPrimitive, _object_spread({
11394
+ ref: ref,
11395
+ onMouseEnter: hoverContext === null || hoverContext === void 0 ? void 0 : hoverContext.handleMouseEnter,
11396
+ onMouseLeave: hoverContext === null || hoverContext === void 0 ? void 0 : hoverContext.handleMouseLeave
11397
+ }, props));
11398
+ });
11399
+ DropdownMenuTrigger.displayName = DropdownMenuPrimitive.Trigger.displayName;
11297
11400
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
11298
11401
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
11299
11402
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
@@ -11318,24 +11421,77 @@ var DropdownMenuSubTrigger = React21.forwardRef(function(_param, ref) {
11318
11421
  });
11319
11422
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
11320
11423
  var DropdownMenuSubContent = React21.forwardRef(function(_param, ref) {
11321
- var className = _param.className, props = _object_without_properties(_param, [
11322
- "className"
11424
+ var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, onMouseEnter = _param.onMouseEnter, onMouseLeave = _param.onMouseLeave, props = _object_without_properties(_param, [
11425
+ "className",
11426
+ "sideOffset",
11427
+ "onMouseEnter",
11428
+ "onMouseLeave"
11429
+ ]);
11430
+ var hoverContext = React21.useContext(DropdownMenuHoverContext);
11431
+ var handleMouseEnter = React21.useCallback(function(event) {
11432
+ onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event);
11433
+ if (hoverContext) {
11434
+ hoverContext.handleMouseEnter();
11435
+ }
11436
+ }, [
11437
+ hoverContext,
11438
+ onMouseEnter
11439
+ ]);
11440
+ var handleMouseLeave = React21.useCallback(function(event) {
11441
+ onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);
11442
+ if (hoverContext) {
11443
+ hoverContext.handleMouseLeave();
11444
+ }
11445
+ }, [
11446
+ hoverContext,
11447
+ onMouseLeave
11323
11448
  ]);
11324
11449
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DropdownMenuPrimitive.SubContent, _object_spread({
11325
11450
  ref: ref,
11326
- className: cn("z-50 min-w-[8rem] overflow-hidden rounded-sm border border-Colors-Border-Default bg-Colors-Background-Utilities-Modal p-2 text-Colors-Text-Default shadow-modal-default data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)
11451
+ sideOffset: sideOffset,
11452
+ className: cn("z-50 min-w-[8rem] overflow-hidden rounded-sm border border-Colors-Border-Default bg-Colors-Background-Utilities-Modal p-2 text-Colors-Text-Default shadow-modal-default data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className),
11453
+ onMouseEnter: hoverContext ? handleMouseEnter : onMouseEnter,
11454
+ onMouseLeave: hoverContext ? handleMouseLeave : onMouseLeave
11327
11455
  }, props));
11328
11456
  });
11329
11457
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
11330
11458
  var DropdownMenuContent = React21.forwardRef(function(_param, ref) {
11331
- var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, props = _object_without_properties(_param, [
11459
+ var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, onMouseEnter = _param.onMouseEnter, onMouseLeave = _param.onMouseLeave, props = _object_without_properties(_param, [
11332
11460
  "className",
11333
- "sideOffset"
11461
+ "sideOffset",
11462
+ "onMouseEnter",
11463
+ "onMouseLeave"
11464
+ ]);
11465
+ var hoverContext = React21.useContext(DropdownMenuHoverContext);
11466
+ var handleMouseEnter = React21.useCallback(function(event) {
11467
+ onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter(event);
11468
+ if (hoverContext) {
11469
+ hoverContext.handleMouseEnter();
11470
+ }
11471
+ }, [
11472
+ hoverContext,
11473
+ onMouseEnter
11474
+ ]);
11475
+ var handleMouseLeave = React21.useCallback(function(event) {
11476
+ onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);
11477
+ var relatedTarget = event.relatedTarget;
11478
+ var currentTarget = event.currentTarget;
11479
+ if (relatedTarget && currentTarget.contains(relatedTarget)) {
11480
+ return;
11481
+ }
11482
+ if (hoverContext) {
11483
+ hoverContext.handleMouseLeave();
11484
+ }
11485
+ }, [
11486
+ hoverContext,
11487
+ onMouseLeave
11334
11488
  ]);
11335
11489
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(DropdownMenuPrimitive.Content, _object_spread({
11336
11490
  ref: ref,
11337
11491
  sideOffset: sideOffset,
11338
- className: cn("z-[100] min-w-[8rem] overflow-hidden rounded-sm border border-Colors-Border-Opaque bg-Colors-Background-Utilities-Modal p-1 text-Colors-Text-Default shadow-modal-default data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className)
11492
+ className: cn("z-[100] min-w-[8rem] overflow-hidden rounded-sm border border-Colors-Border-Opaque bg-Colors-Background-Utilities-Modal p-1 text-Colors-Text-Default shadow-modal-default data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className),
11493
+ onMouseEnter: hoverContext ? handleMouseEnter : onMouseEnter,
11494
+ onMouseLeave: hoverContext ? handleMouseLeave : onMouseLeave
11339
11495
  }, props));
11340
11496
  });
11341
11497
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
@@ -26568,6 +26724,7 @@ var Message = /*#__PURE__*/ function() {
26568
26724
  DropdownMenuCheckboxItem: DropdownMenuCheckboxItem,
26569
26725
  DropdownMenuContent: DropdownMenuContent,
26570
26726
  DropdownMenuGroup: DropdownMenuGroup,
26727
+ DropdownMenuHover: DropdownMenuHover,
26571
26728
  DropdownMenuItem: DropdownMenuItem,
26572
26729
  DropdownMenuLabel: DropdownMenuLabel,
26573
26730
  DropdownMenuPortal: DropdownMenuPortal,