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
@@ -1091,6 +1091,7 @@ var import_react9 = require("react");
1091
1091
  // src/components/DropdownMenu/DropdownMenu.tsx
1092
1092
  var import_phosphor_react6 = require("phosphor-react");
1093
1093
  var import_react8 = require("react");
1094
+ var import_react_dom = require("react-dom");
1094
1095
  var import_zustand2 = require("zustand");
1095
1096
 
1096
1097
  // src/components/Modal/Modal.tsx
@@ -1654,7 +1655,7 @@ var DropdownMenu = ({
1654
1655
  ).filter((el) => el instanceof HTMLElement);
1655
1656
  if (items.length === 0) return;
1656
1657
  const focusedItem = document.activeElement;
1657
- const currentIndex = items.findIndex((item) => item === focusedItem);
1658
+ const currentIndex = items.indexOf(focusedItem);
1658
1659
  let nextIndex;
1659
1660
  if (event.key === "ArrowDown") {
1660
1661
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -1672,9 +1673,14 @@ var DropdownMenu = ({
1672
1673
  }
1673
1674
  };
1674
1675
  const handleClickOutside = (event) => {
1675
- if (menuRef.current && !menuRef.current.contains(event.target)) {
1676
- setOpen(false);
1676
+ const target = event.target;
1677
+ if (menuRef.current?.contains(target)) {
1678
+ return;
1677
1679
  }
1680
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
1681
+ return;
1682
+ }
1683
+ setOpen(false);
1678
1684
  };
1679
1685
  (0, import_react8.useEffect)(() => {
1680
1686
  if (open) {
@@ -1696,40 +1702,30 @@ var DropdownMenu = ({
1696
1702
  }, [propOpen]);
1697
1703
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
1698
1704
  };
1699
- var DropdownMenuTrigger = ({
1700
- className,
1701
- children,
1702
- onClick,
1703
- store: externalStore,
1704
- ...props
1705
- }) => {
1705
+ var DropdownMenuTrigger = (0, import_react8.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
1706
1706
  const store = useDropdownStore(externalStore);
1707
1707
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
1708
1708
  const toggleOpen = () => store.setState({ open: !open });
1709
1709
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1710
- "div",
1710
+ "button",
1711
1711
  {
1712
+ ref,
1713
+ type: "button",
1712
1714
  onClick: (e) => {
1713
1715
  e.stopPropagation();
1714
1716
  toggleOpen();
1715
- if (onClick) onClick(e);
1716
- },
1717
- role: "button",
1718
- onKeyDown: (e) => {
1719
- if (e.key === "Enter" || e.key === " ") {
1720
- e.preventDefault();
1721
- toggleOpen();
1722
- if (onClick) onClick(e);
1723
- }
1717
+ onClick?.(e);
1724
1718
  },
1725
- tabIndex: 0,
1726
1719
  "aria-expanded": open,
1727
- className: cn(className),
1720
+ className: cn(
1721
+ "appearance-none bg-transparent border-none p-0",
1722
+ className
1723
+ ),
1728
1724
  ...props,
1729
1725
  children
1730
1726
  }
1731
1727
  );
1732
- };
1728
+ });
1733
1729
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
1734
1730
  var ITEM_SIZE_CLASSES = {
1735
1731
  small: "text-sm",
@@ -1770,11 +1766,15 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1770
1766
  sideOffset = 4,
1771
1767
  children,
1772
1768
  store: externalStore,
1769
+ portal = false,
1770
+ triggerRef,
1773
1771
  ...props
1774
1772
  }, ref) => {
1775
1773
  const store = useDropdownStore(externalStore);
1776
1774
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
1777
1775
  const [isVisible, setIsVisible] = (0, import_react8.useState)(open);
1776
+ const [portalPosition, setPortalPosition] = (0, import_react8.useState)({ top: 0, left: 0 });
1777
+ const contentRef = (0, import_react8.useRef)(null);
1778
1778
  (0, import_react8.useEffect)(() => {
1779
1779
  if (open) {
1780
1780
  setIsVisible(true);
@@ -1783,18 +1783,61 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1783
1783
  return () => clearTimeout(timer);
1784
1784
  }
1785
1785
  }, [open]);
1786
+ (0, import_react8.useLayoutEffect)(() => {
1787
+ if (portal && open && triggerRef?.current) {
1788
+ const rect = triggerRef.current.getBoundingClientRect();
1789
+ let top = rect.bottom + sideOffset;
1790
+ let left = rect.left;
1791
+ if (side === "left") {
1792
+ left = rect.left - sideOffset;
1793
+ top = rect.top;
1794
+ } else if (side === "right") {
1795
+ left = rect.right + sideOffset;
1796
+ top = rect.top;
1797
+ } else {
1798
+ if (align === "end") {
1799
+ left = rect.right;
1800
+ } else if (align === "center") {
1801
+ left = rect.left + rect.width / 2;
1802
+ }
1803
+ if (side === "top") {
1804
+ top = rect.top - sideOffset;
1805
+ }
1806
+ }
1807
+ setPortalPosition({ top, left });
1808
+ }
1809
+ }, [portal, open, triggerRef, align, side, sideOffset]);
1786
1810
  if (!isVisible) return null;
1787
1811
  const getPositionClasses = () => {
1812
+ if (portal) {
1813
+ return "fixed";
1814
+ }
1788
1815
  const vertical = SIDE_CLASSES[side];
1789
1816
  const horizontal = ALIGN_CLASSES[align];
1790
1817
  return `absolute ${vertical} ${horizontal}`;
1791
1818
  };
1819
+ const getPortalAlignStyle = () => {
1820
+ if (!portal) return {};
1821
+ const baseStyle = {
1822
+ top: portalPosition.top
1823
+ };
1824
+ if (align === "end") {
1825
+ baseStyle.right = window.innerWidth - portalPosition.left;
1826
+ } else if (align === "center") {
1827
+ baseStyle.left = portalPosition.left;
1828
+ baseStyle.transform = "translateX(-50%)";
1829
+ } else {
1830
+ baseStyle.left = portalPosition.left;
1831
+ }
1832
+ return baseStyle;
1833
+ };
1792
1834
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
1793
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1835
+ const content = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1794
1836
  "div",
1795
1837
  {
1796
- ref,
1838
+ ref: portal ? contentRef : ref,
1797
1839
  role: "menu",
1840
+ "data-dropdown-content": "true",
1798
1841
  className: `
1799
1842
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
1800
1843
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -1803,15 +1846,21 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1803
1846
  ${className}
1804
1847
  `,
1805
1848
  style: {
1806
- marginTop: side === "bottom" ? sideOffset : void 0,
1807
- marginBottom: side === "top" ? sideOffset : void 0,
1808
- marginLeft: side === "right" ? sideOffset : void 0,
1809
- marginRight: side === "left" ? sideOffset : void 0
1849
+ ...portal ? getPortalAlignStyle() : {
1850
+ marginTop: side === "bottom" ? sideOffset : void 0,
1851
+ marginBottom: side === "top" ? sideOffset : void 0,
1852
+ marginLeft: side === "right" ? sideOffset : void 0,
1853
+ marginRight: side === "left" ? sideOffset : void 0
1854
+ }
1810
1855
  },
1811
1856
  ...props,
1812
1857
  children
1813
1858
  }
1814
1859
  );
1860
+ if (portal && typeof document !== "undefined") {
1861
+ return (0, import_react_dom.createPortal)(content, document.body);
1862
+ }
1863
+ return content;
1815
1864
  }
1816
1865
  );
1817
1866
  DropdownMenuContent.displayName = "DropdownMenuContent";
@@ -5129,6 +5178,8 @@ var CardAccordation = (0, import_react15.forwardRef)(
5129
5178
  onToggleExpanded,
5130
5179
  value,
5131
5180
  disabled = false,
5181
+ triggerClassName,
5182
+ contentClassName,
5132
5183
  ...props
5133
5184
  }, ref) => {
5134
5185
  const [internalExpanded, setInternalExpanded] = (0, import_react15.useState)(defaultExpanded);
@@ -5177,7 +5228,8 @@ var CardAccordation = (0, import_react15.forwardRef)(
5177
5228
  disabled,
5178
5229
  className: cn(
5179
5230
  "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",
5180
- disabled && "cursor-not-allowed text-text-400"
5231
+ disabled && "cursor-not-allowed text-text-400",
5232
+ triggerClassName
5181
5233
  ),
5182
5234
  "aria-expanded": isExpanded,
5183
5235
  "aria-controls": contentId,
@@ -5212,7 +5264,7 @@ var CardAccordation = (0, import_react15.forwardRef)(
5212
5264
  ),
5213
5265
  "data-testid": "accordion-content",
5214
5266
  "data-value": value,
5215
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "p-4 pt-0", children })
5267
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: cn("p-4 pt-0", contentClassName), children })
5216
5268
  }
5217
5269
  )
5218
5270
  ]