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
@@ -992,6 +992,7 @@ var import_react9 = require("react");
992
992
  // src/components/DropdownMenu/DropdownMenu.tsx
993
993
  var import_phosphor_react5 = require("phosphor-react");
994
994
  var import_react8 = require("react");
995
+ var import_react_dom = require("react-dom");
995
996
  var import_zustand2 = require("zustand");
996
997
 
997
998
  // src/components/Modal/Modal.tsx
@@ -1555,7 +1556,7 @@ var DropdownMenu = ({
1555
1556
  ).filter((el) => el instanceof HTMLElement);
1556
1557
  if (items.length === 0) return;
1557
1558
  const focusedItem = document.activeElement;
1558
- const currentIndex = items.findIndex((item) => item === focusedItem);
1559
+ const currentIndex = items.indexOf(focusedItem);
1559
1560
  let nextIndex;
1560
1561
  if (event.key === "ArrowDown") {
1561
1562
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -1573,9 +1574,14 @@ var DropdownMenu = ({
1573
1574
  }
1574
1575
  };
1575
1576
  const handleClickOutside = (event) => {
1576
- if (menuRef.current && !menuRef.current.contains(event.target)) {
1577
- setOpen(false);
1577
+ const target = event.target;
1578
+ if (menuRef.current?.contains(target)) {
1579
+ return;
1578
1580
  }
1581
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
1582
+ return;
1583
+ }
1584
+ setOpen(false);
1579
1585
  };
1580
1586
  (0, import_react8.useEffect)(() => {
1581
1587
  if (open) {
@@ -1597,40 +1603,30 @@ var DropdownMenu = ({
1597
1603
  }, [propOpen]);
1598
1604
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
1599
1605
  };
1600
- var DropdownMenuTrigger = ({
1601
- className,
1602
- children,
1603
- onClick,
1604
- store: externalStore,
1605
- ...props
1606
- }) => {
1606
+ var DropdownMenuTrigger = (0, import_react8.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
1607
1607
  const store = useDropdownStore(externalStore);
1608
1608
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
1609
1609
  const toggleOpen = () => store.setState({ open: !open });
1610
1610
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1611
- "div",
1611
+ "button",
1612
1612
  {
1613
+ ref,
1614
+ type: "button",
1613
1615
  onClick: (e) => {
1614
1616
  e.stopPropagation();
1615
1617
  toggleOpen();
1616
- if (onClick) onClick(e);
1617
- },
1618
- role: "button",
1619
- onKeyDown: (e) => {
1620
- if (e.key === "Enter" || e.key === " ") {
1621
- e.preventDefault();
1622
- toggleOpen();
1623
- if (onClick) onClick(e);
1624
- }
1618
+ onClick?.(e);
1625
1619
  },
1626
- tabIndex: 0,
1627
1620
  "aria-expanded": open,
1628
- className: cn(className),
1621
+ className: cn(
1622
+ "appearance-none bg-transparent border-none p-0",
1623
+ className
1624
+ ),
1629
1625
  ...props,
1630
1626
  children
1631
1627
  }
1632
1628
  );
1633
- };
1629
+ });
1634
1630
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
1635
1631
  var ITEM_SIZE_CLASSES = {
1636
1632
  small: "text-sm",
@@ -1671,11 +1667,15 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1671
1667
  sideOffset = 4,
1672
1668
  children,
1673
1669
  store: externalStore,
1670
+ portal = false,
1671
+ triggerRef,
1674
1672
  ...props
1675
1673
  }, ref) => {
1676
1674
  const store = useDropdownStore(externalStore);
1677
1675
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
1678
1676
  const [isVisible, setIsVisible] = (0, import_react8.useState)(open);
1677
+ const [portalPosition, setPortalPosition] = (0, import_react8.useState)({ top: 0, left: 0 });
1678
+ const contentRef = (0, import_react8.useRef)(null);
1679
1679
  (0, import_react8.useEffect)(() => {
1680
1680
  if (open) {
1681
1681
  setIsVisible(true);
@@ -1684,18 +1684,61 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1684
1684
  return () => clearTimeout(timer);
1685
1685
  }
1686
1686
  }, [open]);
1687
+ (0, import_react8.useLayoutEffect)(() => {
1688
+ if (portal && open && triggerRef?.current) {
1689
+ const rect = triggerRef.current.getBoundingClientRect();
1690
+ let top = rect.bottom + sideOffset;
1691
+ let left = rect.left;
1692
+ if (side === "left") {
1693
+ left = rect.left - sideOffset;
1694
+ top = rect.top;
1695
+ } else if (side === "right") {
1696
+ left = rect.right + sideOffset;
1697
+ top = rect.top;
1698
+ } else {
1699
+ if (align === "end") {
1700
+ left = rect.right;
1701
+ } else if (align === "center") {
1702
+ left = rect.left + rect.width / 2;
1703
+ }
1704
+ if (side === "top") {
1705
+ top = rect.top - sideOffset;
1706
+ }
1707
+ }
1708
+ setPortalPosition({ top, left });
1709
+ }
1710
+ }, [portal, open, triggerRef, align, side, sideOffset]);
1687
1711
  if (!isVisible) return null;
1688
1712
  const getPositionClasses = () => {
1713
+ if (portal) {
1714
+ return "fixed";
1715
+ }
1689
1716
  const vertical = SIDE_CLASSES[side];
1690
1717
  const horizontal = ALIGN_CLASSES[align];
1691
1718
  return `absolute ${vertical} ${horizontal}`;
1692
1719
  };
1720
+ const getPortalAlignStyle = () => {
1721
+ if (!portal) return {};
1722
+ const baseStyle = {
1723
+ top: portalPosition.top
1724
+ };
1725
+ if (align === "end") {
1726
+ baseStyle.right = window.innerWidth - portalPosition.left;
1727
+ } else if (align === "center") {
1728
+ baseStyle.left = portalPosition.left;
1729
+ baseStyle.transform = "translateX(-50%)";
1730
+ } else {
1731
+ baseStyle.left = portalPosition.left;
1732
+ }
1733
+ return baseStyle;
1734
+ };
1693
1735
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
1694
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1736
+ const content = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1695
1737
  "div",
1696
1738
  {
1697
- ref,
1739
+ ref: portal ? contentRef : ref,
1698
1740
  role: "menu",
1741
+ "data-dropdown-content": "true",
1699
1742
  className: `
1700
1743
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
1701
1744
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -1704,15 +1747,21 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
1704
1747
  ${className}
1705
1748
  `,
1706
1749
  style: {
1707
- marginTop: side === "bottom" ? sideOffset : void 0,
1708
- marginBottom: side === "top" ? sideOffset : void 0,
1709
- marginLeft: side === "right" ? sideOffset : void 0,
1710
- marginRight: side === "left" ? sideOffset : void 0
1750
+ ...portal ? getPortalAlignStyle() : {
1751
+ marginTop: side === "bottom" ? sideOffset : void 0,
1752
+ marginBottom: side === "top" ? sideOffset : void 0,
1753
+ marginLeft: side === "right" ? sideOffset : void 0,
1754
+ marginRight: side === "left" ? sideOffset : void 0
1755
+ }
1711
1756
  },
1712
1757
  ...props,
1713
1758
  children
1714
1759
  }
1715
1760
  );
1761
+ if (portal && typeof document !== "undefined") {
1762
+ return (0, import_react_dom.createPortal)(content, document.body);
1763
+ }
1764
+ return content;
1716
1765
  }
1717
1766
  );
1718
1767
  DropdownMenuContent.displayName = "DropdownMenuContent";
@@ -4482,6 +4531,8 @@ var CardAccordation = (0, import_react13.forwardRef)(
4482
4531
  onToggleExpanded,
4483
4532
  value,
4484
4533
  disabled = false,
4534
+ triggerClassName,
4535
+ contentClassName,
4485
4536
  ...props
4486
4537
  }, ref) => {
4487
4538
  const [internalExpanded, setInternalExpanded] = (0, import_react13.useState)(defaultExpanded);
@@ -4530,7 +4581,8 @@ var CardAccordation = (0, import_react13.forwardRef)(
4530
4581
  disabled,
4531
4582
  className: cn(
4532
4583
  "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",
4533
- disabled && "cursor-not-allowed text-text-400"
4584
+ disabled && "cursor-not-allowed text-text-400",
4585
+ triggerClassName
4534
4586
  ),
4535
4587
  "aria-expanded": isExpanded,
4536
4588
  "aria-controls": contentId,
@@ -4565,7 +4617,7 @@ var CardAccordation = (0, import_react13.forwardRef)(
4565
4617
  ),
4566
4618
  "data-testid": "accordion-content",
4567
4619
  "data-value": value,
4568
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "p-4 pt-0", children })
4620
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: cn("p-4 pt-0", contentClassName), children })
4569
4621
  }
4570
4622
  )
4571
4623
  ]