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
@@ -29,6 +29,7 @@ var import_react6 = require("react");
29
29
  // src/components/DropdownMenu/DropdownMenu.tsx
30
30
  var import_phosphor_react3 = require("phosphor-react");
31
31
  var import_react5 = require("react");
32
+ var import_react_dom = require("react-dom");
32
33
  var import_zustand2 = require("zustand");
33
34
 
34
35
  // src/utils/utils.ts
@@ -708,7 +709,7 @@ var DropdownMenu = ({
708
709
  ).filter((el) => el instanceof HTMLElement);
709
710
  if (items.length === 0) return;
710
711
  const focusedItem = document.activeElement;
711
- const currentIndex = items.findIndex((item) => item === focusedItem);
712
+ const currentIndex = items.indexOf(focusedItem);
712
713
  let nextIndex;
713
714
  if (event.key === "ArrowDown") {
714
715
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -726,9 +727,14 @@ var DropdownMenu = ({
726
727
  }
727
728
  };
728
729
  const handleClickOutside = (event) => {
729
- if (menuRef.current && !menuRef.current.contains(event.target)) {
730
- setOpen(false);
730
+ const target = event.target;
731
+ if (menuRef.current?.contains(target)) {
732
+ return;
733
+ }
734
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
735
+ return;
731
736
  }
737
+ setOpen(false);
732
738
  };
733
739
  (0, import_react5.useEffect)(() => {
734
740
  if (open) {
@@ -750,40 +756,30 @@ var DropdownMenu = ({
750
756
  }, [propOpen]);
751
757
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
752
758
  };
753
- var DropdownMenuTrigger = ({
754
- className,
755
- children,
756
- onClick,
757
- store: externalStore,
758
- ...props
759
- }) => {
759
+ var DropdownMenuTrigger = (0, import_react5.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
760
760
  const store = useDropdownStore(externalStore);
761
761
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
762
762
  const toggleOpen = () => store.setState({ open: !open });
763
763
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
764
- "div",
764
+ "button",
765
765
  {
766
+ ref,
767
+ type: "button",
766
768
  onClick: (e) => {
767
769
  e.stopPropagation();
768
770
  toggleOpen();
769
- if (onClick) onClick(e);
770
- },
771
- role: "button",
772
- onKeyDown: (e) => {
773
- if (e.key === "Enter" || e.key === " ") {
774
- e.preventDefault();
775
- toggleOpen();
776
- if (onClick) onClick(e);
777
- }
771
+ onClick?.(e);
778
772
  },
779
- tabIndex: 0,
780
773
  "aria-expanded": open,
781
- className: cn(className),
774
+ className: cn(
775
+ "appearance-none bg-transparent border-none p-0",
776
+ className
777
+ ),
782
778
  ...props,
783
779
  children
784
780
  }
785
781
  );
786
- };
782
+ });
787
783
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
788
784
  var ITEM_SIZE_CLASSES = {
789
785
  small: "text-sm",
@@ -824,11 +820,15 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
824
820
  sideOffset = 4,
825
821
  children,
826
822
  store: externalStore,
823
+ portal = false,
824
+ triggerRef,
827
825
  ...props
828
826
  }, ref) => {
829
827
  const store = useDropdownStore(externalStore);
830
828
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
831
829
  const [isVisible, setIsVisible] = (0, import_react5.useState)(open);
830
+ const [portalPosition, setPortalPosition] = (0, import_react5.useState)({ top: 0, left: 0 });
831
+ const contentRef = (0, import_react5.useRef)(null);
832
832
  (0, import_react5.useEffect)(() => {
833
833
  if (open) {
834
834
  setIsVisible(true);
@@ -837,18 +837,61 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
837
837
  return () => clearTimeout(timer);
838
838
  }
839
839
  }, [open]);
840
+ (0, import_react5.useLayoutEffect)(() => {
841
+ if (portal && open && triggerRef?.current) {
842
+ const rect = triggerRef.current.getBoundingClientRect();
843
+ let top = rect.bottom + sideOffset;
844
+ let left = rect.left;
845
+ if (side === "left") {
846
+ left = rect.left - sideOffset;
847
+ top = rect.top;
848
+ } else if (side === "right") {
849
+ left = rect.right + sideOffset;
850
+ top = rect.top;
851
+ } else {
852
+ if (align === "end") {
853
+ left = rect.right;
854
+ } else if (align === "center") {
855
+ left = rect.left + rect.width / 2;
856
+ }
857
+ if (side === "top") {
858
+ top = rect.top - sideOffset;
859
+ }
860
+ }
861
+ setPortalPosition({ top, left });
862
+ }
863
+ }, [portal, open, triggerRef, align, side, sideOffset]);
840
864
  if (!isVisible) return null;
841
865
  const getPositionClasses = () => {
866
+ if (portal) {
867
+ return "fixed";
868
+ }
842
869
  const vertical = SIDE_CLASSES[side];
843
870
  const horizontal = ALIGN_CLASSES[align];
844
871
  return `absolute ${vertical} ${horizontal}`;
845
872
  };
873
+ const getPortalAlignStyle = () => {
874
+ if (!portal) return {};
875
+ const baseStyle = {
876
+ top: portalPosition.top
877
+ };
878
+ if (align === "end") {
879
+ baseStyle.right = window.innerWidth - portalPosition.left;
880
+ } else if (align === "center") {
881
+ baseStyle.left = portalPosition.left;
882
+ baseStyle.transform = "translateX(-50%)";
883
+ } else {
884
+ baseStyle.left = portalPosition.left;
885
+ }
886
+ return baseStyle;
887
+ };
846
888
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
847
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
889
+ const content = /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
848
890
  "div",
849
891
  {
850
- ref,
892
+ ref: portal ? contentRef : ref,
851
893
  role: "menu",
894
+ "data-dropdown-content": "true",
852
895
  className: `
853
896
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
854
897
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -857,15 +900,21 @@ var DropdownMenuContent = (0, import_react5.forwardRef)(
857
900
  ${className}
858
901
  `,
859
902
  style: {
860
- marginTop: side === "bottom" ? sideOffset : void 0,
861
- marginBottom: side === "top" ? sideOffset : void 0,
862
- marginLeft: side === "right" ? sideOffset : void 0,
863
- marginRight: side === "left" ? sideOffset : void 0
903
+ ...portal ? getPortalAlignStyle() : {
904
+ marginTop: side === "bottom" ? sideOffset : void 0,
905
+ marginBottom: side === "top" ? sideOffset : void 0,
906
+ marginLeft: side === "right" ? sideOffset : void 0,
907
+ marginRight: side === "left" ? sideOffset : void 0
908
+ }
864
909
  },
865
910
  ...props,
866
911
  children
867
912
  }
868
913
  );
914
+ if (portal && typeof document !== "undefined") {
915
+ return (0, import_react_dom.createPortal)(content, document.body);
916
+ }
917
+ return content;
869
918
  }
870
919
  );
871
920
  DropdownMenuContent.displayName = "DropdownMenuContent";