analytica-frontend-lib 1.2.38 → 1.2.44

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 (96) hide show
  1. package/dist/Accordation/index.d.ts +4 -0
  2. package/dist/Accordation/index.d.ts.map +1 -1
  3. package/dist/Accordation/index.js +5 -2
  4. package/dist/Accordation/index.js.map +1 -1
  5. package/dist/Accordation/index.mjs +5 -2
  6. package/dist/Accordation/index.mjs.map +1 -1
  7. package/dist/ActivityCardQuestionBanks/index.css +24 -10
  8. package/dist/ActivityCardQuestionBanks/index.css.map +1 -1
  9. package/dist/ActivityCardQuestionBanks/index.d.ts.map +1 -1
  10. package/dist/ActivityCardQuestionBanks/index.js +8 -6
  11. package/dist/ActivityCardQuestionBanks/index.js.map +1 -1
  12. package/dist/ActivityCardQuestionBanks/index.mjs +8 -6
  13. package/dist/ActivityCardQuestionBanks/index.mjs.map +1 -1
  14. package/dist/ActivityCardQuestionPreview/index.css +19307 -0
  15. package/dist/ActivityCardQuestionPreview/index.css.map +1 -0
  16. package/dist/ActivityCardQuestionPreview/index.d.ts +29 -0
  17. package/dist/ActivityCardQuestionPreview/index.d.ts.map +1 -0
  18. package/dist/ActivityCardQuestionPreview/index.js +3684 -0
  19. package/dist/ActivityCardQuestionPreview/index.js.map +1 -0
  20. package/dist/ActivityCardQuestionPreview/index.mjs +3692 -0
  21. package/dist/ActivityCardQuestionPreview/index.mjs.map +1 -0
  22. package/dist/ActivityDetails/index.css +24 -10
  23. package/dist/ActivityDetails/index.css.map +1 -1
  24. package/dist/ActivityDetails/index.js +83 -31
  25. package/dist/ActivityDetails/index.js.map +1 -1
  26. package/dist/ActivityDetails/index.mjs +84 -31
  27. package/dist/ActivityDetails/index.mjs.map +1 -1
  28. package/dist/ActivityFilters/index.css +24 -10
  29. package/dist/ActivityFilters/index.css.map +1 -1
  30. package/dist/ActivityFilters/index.js +83 -31
  31. package/dist/ActivityFilters/index.js.map +1 -1
  32. package/dist/ActivityFilters/index.mjs +84 -31
  33. package/dist/ActivityFilters/index.mjs.map +1 -1
  34. package/dist/ActivityPreview/index.css +19307 -0
  35. package/dist/ActivityPreview/index.css.map +1 -0
  36. package/dist/ActivityPreview/index.d.ts +34 -0
  37. package/dist/ActivityPreview/index.d.ts.map +1 -0
  38. package/dist/ActivityPreview/index.js +4458 -0
  39. package/dist/ActivityPreview/index.js.map +1 -0
  40. package/dist/ActivityPreview/index.mjs +4468 -0
  41. package/dist/ActivityPreview/index.mjs.map +1 -0
  42. package/dist/AlertManager/index.css +24 -10
  43. package/dist/AlertManager/index.css.map +1 -1
  44. package/dist/AlertManager/index.js +500 -389
  45. package/dist/AlertManager/index.js.map +1 -1
  46. package/dist/AlertManager/index.mjs +466 -354
  47. package/dist/AlertManager/index.mjs.map +1 -1
  48. package/dist/CorrectActivityModal/index.js +5 -2
  49. package/dist/CorrectActivityModal/index.js.map +1 -1
  50. package/dist/CorrectActivityModal/index.mjs +5 -2
  51. package/dist/CorrectActivityModal/index.mjs.map +1 -1
  52. package/dist/DropdownMenu/index.d.ts +7 -8
  53. package/dist/DropdownMenu/index.d.ts.map +1 -1
  54. package/dist/DropdownMenu/index.js +78 -29
  55. package/dist/DropdownMenu/index.js.map +1 -1
  56. package/dist/DropdownMenu/index.mjs +79 -29
  57. package/dist/DropdownMenu/index.mjs.map +1 -1
  58. package/dist/NotificationCard/index.js +78 -29
  59. package/dist/NotificationCard/index.js.map +1 -1
  60. package/dist/NotificationCard/index.mjs +79 -29
  61. package/dist/NotificationCard/index.mjs.map +1 -1
  62. package/dist/Search/index.js +78 -29
  63. package/dist/Search/index.js.map +1 -1
  64. package/dist/Search/index.mjs +79 -29
  65. package/dist/Search/index.mjs.map +1 -1
  66. package/dist/SendActivityModal/index.css +19307 -0
  67. package/dist/SendActivityModal/index.css.map +1 -0
  68. package/dist/SendActivityModal/index.d.ts +5 -0
  69. package/dist/SendActivityModal/index.d.ts.map +1 -0
  70. package/dist/SendActivityModal/index.js +6471 -0
  71. package/dist/SendActivityModal/index.js.map +1 -0
  72. package/dist/SendActivityModal/index.mjs +6493 -0
  73. package/dist/SendActivityModal/index.mjs.map +1 -0
  74. package/dist/TableProvider/index.css +24 -10
  75. package/dist/TableProvider/index.css.map +1 -1
  76. package/dist/TableProvider/index.js +83 -31
  77. package/dist/TableProvider/index.js.map +1 -1
  78. package/dist/TableProvider/index.mjs +84 -31
  79. package/dist/TableProvider/index.mjs.map +1 -1
  80. package/dist/index.css +24 -10
  81. package/dist/index.css.map +1 -1
  82. package/dist/index.d.ts +16 -3
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +3183 -1502
  85. package/dist/index.js.map +1 -1
  86. package/dist/index.mjs +2963 -1294
  87. package/dist/index.mjs.map +1 -1
  88. package/dist/styles.css +24 -10
  89. package/dist/styles.css.map +1 -1
  90. package/dist/types/activityDetails.d.ts +10 -0
  91. package/dist/types/activityDetails.d.ts.map +1 -1
  92. package/dist/types/questions.d.ts +100 -1
  93. package/dist/types/questions.d.ts.map +1 -1
  94. package/dist/utils/questionRenderer.d.ts +5 -0
  95. package/dist/utils/questionRenderer.d.ts.map +1 -0
  96. package/package.json +7 -1
@@ -1,4 +1,4 @@
1
- import { ReactNode, ButtonHTMLAttributes, HTMLAttributes } from 'react';
1
+ import { ReactNode, ButtonHTMLAttributes, HTMLAttributes, RefObject } from 'react';
2
2
  import { StoreApi } from 'zustand';
3
3
  interface DropdownStore {
4
4
  open: boolean;
@@ -13,13 +13,10 @@ interface DropdownMenuProps {
13
13
  onOpenChange?: (open: boolean) => void;
14
14
  }
15
15
  declare const DropdownMenu: ({ children, open: propOpen, onOpenChange, }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
16
- declare const DropdownMenuTrigger: {
17
- ({ className, children, onClick, store: externalStore, ...props }: HTMLAttributes<HTMLDivElement> & {
18
- disabled?: boolean;
19
- store?: DropdownStoreApi;
20
- }): import("react/jsx-runtime").JSX.Element;
21
- displayName: string;
22
- };
16
+ declare const DropdownMenuTrigger: import("react").ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
17
+ disabled?: boolean;
18
+ store?: DropdownStoreApi;
19
+ } & import("react").RefAttributes<HTMLButtonElement>>;
23
20
  declare const MenuLabel: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
24
21
  inset?: boolean;
25
22
  store?: DropdownStoreApi;
@@ -30,6 +27,8 @@ declare const DropdownMenuContent: import("react").ForwardRefExoticComponent<HTM
30
27
  variant?: "menu" | "profile";
31
28
  sideOffset?: number;
32
29
  store?: DropdownStoreApi;
30
+ portal?: boolean;
31
+ triggerRef?: RefObject<HTMLElement | null>;
33
32
  } & import("react").RefAttributes<HTMLDivElement>>;
34
33
  declare const DropdownMenuItem: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
35
34
  inset?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EACT,oBAAoB,EAGpB,cAAc,EAQf,MAAM,OAAO,CAAC;AACf,OAAO,EAAU,QAAQ,EAAY,MAAM,SAAS,CAAC;AASrD,UAAU,aAAa;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,KAAK,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEhD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,eAAO,MAAM,gBAAgB,GAAI,gBAAgB,gBAAgB,qBAQhE,CAAC;AAoDF,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,QAAA,MAAM,YAAY,GAAI,6CAInB,iBAAiB,4CAoFnB,CAAC;AAGF,QAAA,MAAM,mBAAmB;uEAMtB,cAAc,CAAC,cAAc,CAAC,GAAG;QAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B;;CA6BA,CAAC;AA0BF,QAAA,MAAM,SAAS;YAGH,OAAO;YACP,gBAAgB;kDAU1B,CAAC;AAGH,QAAA,MAAM,mBAAmB;YAGb,OAAO,GAAG,QAAQ,GAAG,KAAK;WAC3B,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;cAChC,MAAM,GAAG,SAAS;iBACf,MAAM;YACX,gBAAgB;kDA8D3B,CAAC;AAGF,QAAA,MAAM,gBAAgB;YAGV,OAAO;WACR,OAAO,GAAG,QAAQ;eACd,SAAS;gBACR,SAAS;eACV,OAAO;cACR,SAAS,GAAG,MAAM;YACpB,gBAAgB;mBACT,OAAO;kDA8FzB,CAAC;AAGF,QAAA,MAAM,qBAAqB;YAEkB,gBAAgB;kDAO3D,CAAC;AAIH,QAAA,MAAM,kBAAkB;YAE8B,gBAAgB;qDA0BpE,CAAC;AAGH,QAAA,MAAM,iBAAiB;UAGb,MAAM;WACL,MAAM;eACF,MAAM,GAAG,IAAI;YAChB,gBAAgB;kDAuC1B,CAAC;AAGH,QAAA,MAAM,eAAe;gBAGL,MAAM;mBACH,MAAM;oBACL,MAAM;YACd,gBAAgB;kDAwC3B,CAAC;AAGF,QAAA,MAAM,kBAAkB;yCAGrB,cAAc,CAAC,cAAc,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;KAAE;;CAuF/D,CAAC;AAGF,QAAA,MAAM,kBAAkB;YAEqB,gBAAgB;kDAO3D,CAAC;AAGH,QAAA,MAAM,iBAAiB;uEAMpB,cAAc,CAAC,iBAAiB,CAAC,GAAG;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B;;CAqBA,CAAC;AAIF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EAGrB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EACT,oBAAoB,EAIpB,cAAc,EAQd,SAAS,EAEV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,QAAQ,EAAY,MAAM,SAAS,CAAC;AASrD,UAAU,aAAa;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,KAAK,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEhD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,eAAO,MAAM,gBAAgB,GAAI,gBAAgB,gBAAgB,qBAQhE,CAAC;AAoDF,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,QAAA,MAAM,YAAY,GAAI,6CAInB,iBAAiB,4CA+FnB,CAAC;AAGF,QAAA,MAAM,mBAAmB;eAGV,OAAO;YACV,gBAAgB;qDA2B1B,CAAC;AA0BH,QAAA,MAAM,SAAS;YAGH,OAAO;YACP,gBAAgB;kDAU1B,CAAC;AAGH,QAAA,MAAM,mBAAmB;YAGb,OAAO,GAAG,QAAQ,GAAG,KAAK;WAC3B,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM;cAChC,MAAM,GAAG,SAAS;iBACf,MAAM;YACX,gBAAgB;aACf,OAAO;iBACH,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;kDAkI7C,CAAC;AAGF,QAAA,MAAM,gBAAgB;YAGV,OAAO;WACR,OAAO,GAAG,QAAQ;eACd,SAAS;gBACR,SAAS;eACV,OAAO;cACR,SAAS,GAAG,MAAM;YACpB,gBAAgB;mBACT,OAAO;kDA8FzB,CAAC;AAGF,QAAA,MAAM,qBAAqB;YAEkB,gBAAgB;kDAO3D,CAAC;AAIH,QAAA,MAAM,kBAAkB;YAE8B,gBAAgB;qDA0BpE,CAAC;AAGH,QAAA,MAAM,iBAAiB;UAGb,MAAM;WACL,MAAM;eACF,MAAM,GAAG,IAAI;YAChB,gBAAgB;kDAuC1B,CAAC;AAGH,QAAA,MAAM,eAAe;gBAGL,MAAM;mBACH,MAAM;oBACL,MAAM;YACd,gBAAgB;kDAwC3B,CAAC;AAGF,QAAA,MAAM,kBAAkB;yCAGrB,cAAc,CAAC,cAAc,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;KAAE;;CAuF/D,CAAC;AAGF,QAAA,MAAM,kBAAkB;YAEqB,gBAAgB;kDAO3D,CAAC;AAGH,QAAA,MAAM,iBAAiB;uEAMpB,cAAc,CAAC,iBAAiB,CAAC,GAAG;QACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,gBAAgB,CAAC;KAC1B;;CAqBA,CAAC;AAIF,eAAe,YAAY,CAAC;AAC5B,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EAGrB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,CAAC"}
@@ -38,6 +38,7 @@ __export(DropdownMenu_exports, {
38
38
  module.exports = __toCommonJS(DropdownMenu_exports);
39
39
  var import_phosphor_react3 = require("phosphor-react");
40
40
  var import_react5 = require("react");
41
+ var import_react_dom = require("react-dom");
41
42
  var import_zustand2 = require("zustand");
42
43
 
43
44
  // src/utils/utils.ts
@@ -717,7 +718,7 @@ var DropdownMenu = ({
717
718
  ).filter((el) => el instanceof HTMLElement);
718
719
  if (items.length === 0) return;
719
720
  const focusedItem = document.activeElement;
720
- const currentIndex = items.findIndex((item) => item === focusedItem);
721
+ const currentIndex = items.indexOf(focusedItem);
721
722
  let nextIndex;
722
723
  if (event.key === "ArrowDown") {
723
724
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -735,9 +736,14 @@ var DropdownMenu = ({
735
736
  }
736
737
  };
737
738
  const handleClickOutside = (event) => {
738
- if (menuRef.current && !menuRef.current.contains(event.target)) {
739
- setOpen(false);
739
+ const target = event.target;
740
+ if (menuRef.current?.contains(target)) {
741
+ return;
742
+ }
743
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
744
+ return;
740
745
  }
746
+ setOpen(false);
741
747
  };
742
748
  (0, import_react5.useEffect)(() => {
743
749
  if (open) {
@@ -759,40 +765,30 @@ var DropdownMenu = ({
759
765
  }, [propOpen]);
760
766
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
761
767
  };
762
- var DropdownMenuTrigger = ({
763
- className,
764
- children,
765
- onClick,
766
- store: externalStore,
767
- ...props
768
- }) => {
768
+ var DropdownMenuTrigger = (0, import_react5.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
769
769
  const store = useDropdownStore(externalStore);
770
770
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
771
771
  const toggleOpen = () => store.setState({ open: !open });
772
772
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
773
- "div",
773
+ "button",
774
774
  {
775
+ ref,
776
+ type: "button",
775
777
  onClick: (e) => {
776
778
  e.stopPropagation();
777
779
  toggleOpen();
778
- if (onClick) onClick(e);
779
- },
780
- role: "button",
781
- onKeyDown: (e) => {
782
- if (e.key === "Enter" || e.key === " ") {
783
- e.preventDefault();
784
- toggleOpen();
785
- if (onClick) onClick(e);
786
- }
780
+ onClick?.(e);
787
781
  },
788
- tabIndex: 0,
789
782
  "aria-expanded": open,
790
- className: cn(className),
783
+ className: cn(
784
+ "appearance-none bg-transparent border-none p-0",
785
+ className
786
+ ),
791
787
  ...props,
792
788
  children
793
789
  }
794
790
  );
795
- };
791
+ });
796
792
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
797
793
  var ITEM_SIZE_CLASSES = {
798
794
  small: "text-sm",
@@ -833,11 +829,15 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
833
829
  sideOffset = 4,
834
830
  children,
835
831
  store: externalStore,
832
+ portal = false,
833
+ triggerRef,
836
834
  ...props
837
835
  }, ref) => {
838
836
  const store = useDropdownStore(externalStore);
839
837
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
840
838
  const [isVisible, setIsVisible] = (0, import_react5.useState)(open);
839
+ const [portalPosition, setPortalPosition] = (0, import_react5.useState)({ top: 0, left: 0 });
840
+ const contentRef = (0, import_react5.useRef)(null);
841
841
  (0, import_react5.useEffect)(() => {
842
842
  if (open) {
843
843
  setIsVisible(true);
@@ -846,18 +846,61 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
846
846
  return () => clearTimeout(timer);
847
847
  }
848
848
  }, [open]);
849
+ (0, import_react5.useLayoutEffect)(() => {
850
+ if (portal && open && triggerRef?.current) {
851
+ const rect = triggerRef.current.getBoundingClientRect();
852
+ let top = rect.bottom + sideOffset;
853
+ let left = rect.left;
854
+ if (side === "left") {
855
+ left = rect.left - sideOffset;
856
+ top = rect.top;
857
+ } else if (side === "right") {
858
+ left = rect.right + sideOffset;
859
+ top = rect.top;
860
+ } else {
861
+ if (align === "end") {
862
+ left = rect.right;
863
+ } else if (align === "center") {
864
+ left = rect.left + rect.width / 2;
865
+ }
866
+ if (side === "top") {
867
+ top = rect.top - sideOffset;
868
+ }
869
+ }
870
+ setPortalPosition({ top, left });
871
+ }
872
+ }, [portal, open, triggerRef, align, side, sideOffset]);
849
873
  if (!isVisible) return null;
850
874
  const getPositionClasses = () => {
875
+ if (portal) {
876
+ return "fixed";
877
+ }
851
878
  const vertical = SIDE_CLASSES[side];
852
879
  const horizontal = ALIGN_CLASSES[align];
853
880
  return `absolute ${vertical} ${horizontal}`;
854
881
  };
882
+ const getPortalAlignStyle = () => {
883
+ if (!portal) return {};
884
+ const baseStyle = {
885
+ top: portalPosition.top
886
+ };
887
+ if (align === "end") {
888
+ baseStyle.right = window.innerWidth - portalPosition.left;
889
+ } else if (align === "center") {
890
+ baseStyle.left = portalPosition.left;
891
+ baseStyle.transform = "translateX(-50%)";
892
+ } else {
893
+ baseStyle.left = portalPosition.left;
894
+ }
895
+ return baseStyle;
896
+ };
855
897
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
856
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
898
+ const content = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
857
899
  "div",
858
900
  {
859
- ref,
901
+ ref: portal ? contentRef : ref,
860
902
  role: "menu",
903
+ "data-dropdown-content": "true",
861
904
  className: `
862
905
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
863
906
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -866,15 +909,21 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
866
909
  ${className}
867
910
  `,
868
911
  style: {
869
- marginTop: side === "bottom" ? sideOffset : void 0,
870
- marginBottom: side === "top" ? sideOffset : void 0,
871
- marginLeft: side === "right" ? sideOffset : void 0,
872
- marginRight: side === "left" ? sideOffset : void 0
912
+ ...portal ? getPortalAlignStyle() : {
913
+ marginTop: side === "bottom" ? sideOffset : void 0,
914
+ marginBottom: side === "top" ? sideOffset : void 0,
915
+ marginLeft: side === "right" ? sideOffset : void 0,
916
+ marginRight: side === "left" ? sideOffset : void 0
917
+ }
873
918
  },
874
919
  ...props,
875
920
  children
876
921
  }
877
922
  );
923
+ if (portal && typeof document !== "undefined") {
924
+ return (0, import_react_dom.createPortal)(content, document.body);
925
+ }
926
+ return content;
878
927
  }
879
928
  );
880
929
  DropdownMenuContent.displayName = "DropdownMenuContent";