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
@@ -1072,12 +1072,14 @@ import { CaretRight as CaretRight2, SignOut, User } from "phosphor-react";
1072
1072
  import {
1073
1073
  forwardRef as forwardRef4,
1074
1074
  useEffect as useEffect6,
1075
+ useLayoutEffect,
1075
1076
  useRef,
1076
1077
  isValidElement as isValidElement2,
1077
1078
  Children as Children2,
1078
1079
  cloneElement,
1079
1080
  useState as useState4
1080
1081
  } from "react";
1082
+ import { createPortal } from "react-dom";
1081
1083
  import { create as create2, useStore } from "zustand";
1082
1084
 
1083
1085
  // src/components/Modal/Modal.tsx
@@ -1641,7 +1643,7 @@ var DropdownMenu = ({
1641
1643
  ).filter((el) => el instanceof HTMLElement);
1642
1644
  if (items.length === 0) return;
1643
1645
  const focusedItem = document.activeElement;
1644
- const currentIndex = items.findIndex((item) => item === focusedItem);
1646
+ const currentIndex = items.indexOf(focusedItem);
1645
1647
  let nextIndex;
1646
1648
  if (event.key === "ArrowDown") {
1647
1649
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -1659,9 +1661,14 @@ var DropdownMenu = ({
1659
1661
  }
1660
1662
  };
1661
1663
  const handleClickOutside = (event) => {
1662
- if (menuRef.current && !menuRef.current.contains(event.target)) {
1663
- setOpen(false);
1664
+ const target = event.target;
1665
+ if (menuRef.current?.contains(target)) {
1666
+ return;
1664
1667
  }
1668
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
1669
+ return;
1670
+ }
1671
+ setOpen(false);
1665
1672
  };
1666
1673
  useEffect6(() => {
1667
1674
  if (open) {
@@ -1683,40 +1690,30 @@ var DropdownMenu = ({
1683
1690
  }, [propOpen]);
1684
1691
  return /* @__PURE__ */ jsx12("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
1685
1692
  };
1686
- var DropdownMenuTrigger = ({
1687
- className,
1688
- children,
1689
- onClick,
1690
- store: externalStore,
1691
- ...props
1692
- }) => {
1693
+ var DropdownMenuTrigger = forwardRef4(({ className, children, onClick, store: externalStore, ...props }, ref) => {
1693
1694
  const store = useDropdownStore(externalStore);
1694
1695
  const open = useStore(store, (s) => s.open);
1695
1696
  const toggleOpen = () => store.setState({ open: !open });
1696
1697
  return /* @__PURE__ */ jsx12(
1697
- "div",
1698
+ "button",
1698
1699
  {
1700
+ ref,
1701
+ type: "button",
1699
1702
  onClick: (e) => {
1700
1703
  e.stopPropagation();
1701
1704
  toggleOpen();
1702
- if (onClick) onClick(e);
1703
- },
1704
- role: "button",
1705
- onKeyDown: (e) => {
1706
- if (e.key === "Enter" || e.key === " ") {
1707
- e.preventDefault();
1708
- toggleOpen();
1709
- if (onClick) onClick(e);
1710
- }
1705
+ onClick?.(e);
1711
1706
  },
1712
- tabIndex: 0,
1713
1707
  "aria-expanded": open,
1714
- className: cn(className),
1708
+ className: cn(
1709
+ "appearance-none bg-transparent border-none p-0",
1710
+ className
1711
+ ),
1715
1712
  ...props,
1716
1713
  children
1717
1714
  }
1718
1715
  );
1719
- };
1716
+ });
1720
1717
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
1721
1718
  var ITEM_SIZE_CLASSES = {
1722
1719
  small: "text-sm",
@@ -1757,11 +1754,15 @@ var DropdownMenuContent = forwardRef4(
1757
1754
  sideOffset = 4,
1758
1755
  children,
1759
1756
  store: externalStore,
1757
+ portal = false,
1758
+ triggerRef,
1760
1759
  ...props
1761
1760
  }, ref) => {
1762
1761
  const store = useDropdownStore(externalStore);
1763
1762
  const open = useStore(store, (s) => s.open);
1764
1763
  const [isVisible, setIsVisible] = useState4(open);
1764
+ const [portalPosition, setPortalPosition] = useState4({ top: 0, left: 0 });
1765
+ const contentRef = useRef(null);
1765
1766
  useEffect6(() => {
1766
1767
  if (open) {
1767
1768
  setIsVisible(true);
@@ -1770,18 +1771,61 @@ var DropdownMenuContent = forwardRef4(
1770
1771
  return () => clearTimeout(timer);
1771
1772
  }
1772
1773
  }, [open]);
1774
+ useLayoutEffect(() => {
1775
+ if (portal && open && triggerRef?.current) {
1776
+ const rect = triggerRef.current.getBoundingClientRect();
1777
+ let top = rect.bottom + sideOffset;
1778
+ let left = rect.left;
1779
+ if (side === "left") {
1780
+ left = rect.left - sideOffset;
1781
+ top = rect.top;
1782
+ } else if (side === "right") {
1783
+ left = rect.right + sideOffset;
1784
+ top = rect.top;
1785
+ } else {
1786
+ if (align === "end") {
1787
+ left = rect.right;
1788
+ } else if (align === "center") {
1789
+ left = rect.left + rect.width / 2;
1790
+ }
1791
+ if (side === "top") {
1792
+ top = rect.top - sideOffset;
1793
+ }
1794
+ }
1795
+ setPortalPosition({ top, left });
1796
+ }
1797
+ }, [portal, open, triggerRef, align, side, sideOffset]);
1773
1798
  if (!isVisible) return null;
1774
1799
  const getPositionClasses = () => {
1800
+ if (portal) {
1801
+ return "fixed";
1802
+ }
1775
1803
  const vertical = SIDE_CLASSES[side];
1776
1804
  const horizontal = ALIGN_CLASSES[align];
1777
1805
  return `absolute ${vertical} ${horizontal}`;
1778
1806
  };
1807
+ const getPortalAlignStyle = () => {
1808
+ if (!portal) return {};
1809
+ const baseStyle = {
1810
+ top: portalPosition.top
1811
+ };
1812
+ if (align === "end") {
1813
+ baseStyle.right = window.innerWidth - portalPosition.left;
1814
+ } else if (align === "center") {
1815
+ baseStyle.left = portalPosition.left;
1816
+ baseStyle.transform = "translateX(-50%)";
1817
+ } else {
1818
+ baseStyle.left = portalPosition.left;
1819
+ }
1820
+ return baseStyle;
1821
+ };
1779
1822
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
1780
- return /* @__PURE__ */ jsx12(
1823
+ const content = /* @__PURE__ */ jsx12(
1781
1824
  "div",
1782
1825
  {
1783
- ref,
1826
+ ref: portal ? contentRef : ref,
1784
1827
  role: "menu",
1828
+ "data-dropdown-content": "true",
1785
1829
  className: `
1786
1830
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
1787
1831
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -1790,15 +1834,21 @@ var DropdownMenuContent = forwardRef4(
1790
1834
  ${className}
1791
1835
  `,
1792
1836
  style: {
1793
- marginTop: side === "bottom" ? sideOffset : void 0,
1794
- marginBottom: side === "top" ? sideOffset : void 0,
1795
- marginLeft: side === "right" ? sideOffset : void 0,
1796
- marginRight: side === "left" ? sideOffset : void 0
1837
+ ...portal ? getPortalAlignStyle() : {
1838
+ marginTop: side === "bottom" ? sideOffset : void 0,
1839
+ marginBottom: side === "top" ? sideOffset : void 0,
1840
+ marginLeft: side === "right" ? sideOffset : void 0,
1841
+ marginRight: side === "left" ? sideOffset : void 0
1842
+ }
1797
1843
  },
1798
1844
  ...props,
1799
1845
  children
1800
1846
  }
1801
1847
  );
1848
+ if (portal && typeof document !== "undefined") {
1849
+ return createPortal(content, document.body);
1850
+ }
1851
+ return content;
1802
1852
  }
1803
1853
  );
1804
1854
  DropdownMenuContent.displayName = "DropdownMenuContent";
@@ -5158,6 +5208,8 @@ var CardAccordation = forwardRef10(
5158
5208
  onToggleExpanded,
5159
5209
  value,
5160
5210
  disabled = false,
5211
+ triggerClassName,
5212
+ contentClassName,
5161
5213
  ...props
5162
5214
  }, ref) => {
5163
5215
  const [internalExpanded, setInternalExpanded] = useState10(defaultExpanded);
@@ -5206,7 +5258,8 @@ var CardAccordation = forwardRef10(
5206
5258
  disabled,
5207
5259
  className: cn(
5208
5260
  "w-full cursor-pointer not-aria-expanded:rounded-xl aria-expanded:rounded-t-xl flex items-center justify-between gap-3 text-left transition-colors duration-200 focus:outline-none focus:border-2 focus:border-primary-950 focus:ring-inset px-2",
5209
- disabled && "cursor-not-allowed text-text-400"
5261
+ disabled && "cursor-not-allowed text-text-400",
5262
+ triggerClassName
5210
5263
  ),
5211
5264
  "aria-expanded": isExpanded,
5212
5265
  "aria-controls": contentId,
@@ -5241,7 +5294,7 @@ var CardAccordation = forwardRef10(
5241
5294
  ),
5242
5295
  "data-testid": "accordion-content",
5243
5296
  "data-value": value,
5244
- children: /* @__PURE__ */ jsx24("div", { className: "p-4 pt-0", children })
5297
+ children: /* @__PURE__ */ jsx24("div", { className: cn("p-4 pt-0", contentClassName), children })
5245
5298
  }
5246
5299
  )
5247
5300
  ]