analytica-frontend-lib 1.2.37 → 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 +10 -3
@@ -14,12 +14,14 @@ import { CaretRight, SignOut, User } from "phosphor-react";
14
14
  import {
15
15
  forwardRef as forwardRef2,
16
16
  useEffect as useEffect4,
17
+ useLayoutEffect,
17
18
  useRef,
18
19
  isValidElement,
19
20
  Children,
20
21
  cloneElement,
21
22
  useState as useState2
22
23
  } from "react";
24
+ import { createPortal } from "react-dom";
23
25
  import { create as create2, useStore } from "zustand";
24
26
 
25
27
  // src/components/Button/Button.tsx
@@ -692,7 +694,7 @@ var DropdownMenu = ({
692
694
  ).filter((el) => el instanceof HTMLElement);
693
695
  if (items.length === 0) return;
694
696
  const focusedItem = document.activeElement;
695
- const currentIndex = items.findIndex((item) => item === focusedItem);
697
+ const currentIndex = items.indexOf(focusedItem);
696
698
  let nextIndex;
697
699
  if (event.key === "ArrowDown") {
698
700
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -710,9 +712,14 @@ var DropdownMenu = ({
710
712
  }
711
713
  };
712
714
  const handleClickOutside = (event) => {
713
- if (menuRef.current && !menuRef.current.contains(event.target)) {
714
- setOpen(false);
715
+ const target = event.target;
716
+ if (menuRef.current?.contains(target)) {
717
+ return;
718
+ }
719
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
720
+ return;
715
721
  }
722
+ setOpen(false);
716
723
  };
717
724
  useEffect4(() => {
718
725
  if (open) {
@@ -734,40 +741,30 @@ var DropdownMenu = ({
734
741
  }, [propOpen]);
735
742
  return /* @__PURE__ */ jsx6("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
736
743
  };
737
- var DropdownMenuTrigger = ({
738
- className,
739
- children,
740
- onClick,
741
- store: externalStore,
742
- ...props
743
- }) => {
744
+ var DropdownMenuTrigger = forwardRef2(({ className, children, onClick, store: externalStore, ...props }, ref) => {
744
745
  const store = useDropdownStore(externalStore);
745
746
  const open = useStore(store, (s) => s.open);
746
747
  const toggleOpen = () => store.setState({ open: !open });
747
748
  return /* @__PURE__ */ jsx6(
748
- "div",
749
+ "button",
749
750
  {
751
+ ref,
752
+ type: "button",
750
753
  onClick: (e) => {
751
754
  e.stopPropagation();
752
755
  toggleOpen();
753
- if (onClick) onClick(e);
754
- },
755
- role: "button",
756
- onKeyDown: (e) => {
757
- if (e.key === "Enter" || e.key === " ") {
758
- e.preventDefault();
759
- toggleOpen();
760
- if (onClick) onClick(e);
761
- }
756
+ onClick?.(e);
762
757
  },
763
- tabIndex: 0,
764
758
  "aria-expanded": open,
765
- className: cn(className),
759
+ className: cn(
760
+ "appearance-none bg-transparent border-none p-0",
761
+ className
762
+ ),
766
763
  ...props,
767
764
  children
768
765
  }
769
766
  );
770
- };
767
+ });
771
768
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
772
769
  var ITEM_SIZE_CLASSES = {
773
770
  small: "text-sm",
@@ -808,11 +805,15 @@ var DropdownMenuContent = forwardRef2(
808
805
  sideOffset = 4,
809
806
  children,
810
807
  store: externalStore,
808
+ portal = false,
809
+ triggerRef,
811
810
  ...props
812
811
  }, ref) => {
813
812
  const store = useDropdownStore(externalStore);
814
813
  const open = useStore(store, (s) => s.open);
815
814
  const [isVisible, setIsVisible] = useState2(open);
815
+ const [portalPosition, setPortalPosition] = useState2({ top: 0, left: 0 });
816
+ const contentRef = useRef(null);
816
817
  useEffect4(() => {
817
818
  if (open) {
818
819
  setIsVisible(true);
@@ -821,18 +822,61 @@ var DropdownMenuContent = forwardRef2(
821
822
  return () => clearTimeout(timer);
822
823
  }
823
824
  }, [open]);
825
+ useLayoutEffect(() => {
826
+ if (portal && open && triggerRef?.current) {
827
+ const rect = triggerRef.current.getBoundingClientRect();
828
+ let top = rect.bottom + sideOffset;
829
+ let left = rect.left;
830
+ if (side === "left") {
831
+ left = rect.left - sideOffset;
832
+ top = rect.top;
833
+ } else if (side === "right") {
834
+ left = rect.right + sideOffset;
835
+ top = rect.top;
836
+ } else {
837
+ if (align === "end") {
838
+ left = rect.right;
839
+ } else if (align === "center") {
840
+ left = rect.left + rect.width / 2;
841
+ }
842
+ if (side === "top") {
843
+ top = rect.top - sideOffset;
844
+ }
845
+ }
846
+ setPortalPosition({ top, left });
847
+ }
848
+ }, [portal, open, triggerRef, align, side, sideOffset]);
824
849
  if (!isVisible) return null;
825
850
  const getPositionClasses = () => {
851
+ if (portal) {
852
+ return "fixed";
853
+ }
826
854
  const vertical = SIDE_CLASSES[side];
827
855
  const horizontal = ALIGN_CLASSES[align];
828
856
  return `absolute ${vertical} ${horizontal}`;
829
857
  };
858
+ const getPortalAlignStyle = () => {
859
+ if (!portal) return {};
860
+ const baseStyle = {
861
+ top: portalPosition.top
862
+ };
863
+ if (align === "end") {
864
+ baseStyle.right = window.innerWidth - portalPosition.left;
865
+ } else if (align === "center") {
866
+ baseStyle.left = portalPosition.left;
867
+ baseStyle.transform = "translateX(-50%)";
868
+ } else {
869
+ baseStyle.left = portalPosition.left;
870
+ }
871
+ return baseStyle;
872
+ };
830
873
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
831
- return /* @__PURE__ */ jsx6(
874
+ const content = /* @__PURE__ */ jsx6(
832
875
  "div",
833
876
  {
834
- ref,
877
+ ref: portal ? contentRef : ref,
835
878
  role: "menu",
879
+ "data-dropdown-content": "true",
836
880
  className: `
837
881
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
838
882
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -841,15 +885,21 @@ var DropdownMenuContent = forwardRef2(
841
885
  ${className}
842
886
  `,
843
887
  style: {
844
- marginTop: side === "bottom" ? sideOffset : void 0,
845
- marginBottom: side === "top" ? sideOffset : void 0,
846
- marginLeft: side === "right" ? sideOffset : void 0,
847
- marginRight: side === "left" ? sideOffset : void 0
888
+ ...portal ? getPortalAlignStyle() : {
889
+ marginTop: side === "bottom" ? sideOffset : void 0,
890
+ marginBottom: side === "top" ? sideOffset : void 0,
891
+ marginLeft: side === "right" ? sideOffset : void 0,
892
+ marginRight: side === "left" ? sideOffset : void 0
893
+ }
848
894
  },
849
895
  ...props,
850
896
  children
851
897
  }
852
898
  );
899
+ if (portal && typeof document !== "undefined") {
900
+ return createPortal(content, document.body);
901
+ }
902
+ return content;
853
903
  }
854
904
  );
855
905
  DropdownMenuContent.displayName = "DropdownMenuContent";