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
@@ -973,12 +973,14 @@ import { CaretRight as CaretRight2, SignOut, User } from "phosphor-react";
973
973
  import {
974
974
  forwardRef as forwardRef4,
975
975
  useEffect as useEffect6,
976
+ useLayoutEffect,
976
977
  useRef,
977
978
  isValidElement as isValidElement2,
978
979
  Children as Children2,
979
980
  cloneElement,
980
981
  useState as useState4
981
982
  } from "react";
983
+ import { createPortal } from "react-dom";
982
984
  import { create as create2, useStore } from "zustand";
983
985
 
984
986
  // src/components/Modal/Modal.tsx
@@ -1542,7 +1544,7 @@ var DropdownMenu = ({
1542
1544
  ).filter((el) => el instanceof HTMLElement);
1543
1545
  if (items.length === 0) return;
1544
1546
  const focusedItem = document.activeElement;
1545
- const currentIndex = items.findIndex((item) => item === focusedItem);
1547
+ const currentIndex = items.indexOf(focusedItem);
1546
1548
  let nextIndex;
1547
1549
  if (event.key === "ArrowDown") {
1548
1550
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -1560,9 +1562,14 @@ var DropdownMenu = ({
1560
1562
  }
1561
1563
  };
1562
1564
  const handleClickOutside = (event) => {
1563
- if (menuRef.current && !menuRef.current.contains(event.target)) {
1564
- setOpen(false);
1565
+ const target = event.target;
1566
+ if (menuRef.current?.contains(target)) {
1567
+ return;
1565
1568
  }
1569
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
1570
+ return;
1571
+ }
1572
+ setOpen(false);
1566
1573
  };
1567
1574
  useEffect6(() => {
1568
1575
  if (open) {
@@ -1584,40 +1591,30 @@ var DropdownMenu = ({
1584
1591
  }, [propOpen]);
1585
1592
  return /* @__PURE__ */ jsx11("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
1586
1593
  };
1587
- var DropdownMenuTrigger = ({
1588
- className,
1589
- children,
1590
- onClick,
1591
- store: externalStore,
1592
- ...props
1593
- }) => {
1594
+ var DropdownMenuTrigger = forwardRef4(({ className, children, onClick, store: externalStore, ...props }, ref) => {
1594
1595
  const store = useDropdownStore(externalStore);
1595
1596
  const open = useStore(store, (s) => s.open);
1596
1597
  const toggleOpen = () => store.setState({ open: !open });
1597
1598
  return /* @__PURE__ */ jsx11(
1598
- "div",
1599
+ "button",
1599
1600
  {
1601
+ ref,
1602
+ type: "button",
1600
1603
  onClick: (e) => {
1601
1604
  e.stopPropagation();
1602
1605
  toggleOpen();
1603
- if (onClick) onClick(e);
1604
- },
1605
- role: "button",
1606
- onKeyDown: (e) => {
1607
- if (e.key === "Enter" || e.key === " ") {
1608
- e.preventDefault();
1609
- toggleOpen();
1610
- if (onClick) onClick(e);
1611
- }
1606
+ onClick?.(e);
1612
1607
  },
1613
- tabIndex: 0,
1614
1608
  "aria-expanded": open,
1615
- className: cn(className),
1609
+ className: cn(
1610
+ "appearance-none bg-transparent border-none p-0",
1611
+ className
1612
+ ),
1616
1613
  ...props,
1617
1614
  children
1618
1615
  }
1619
1616
  );
1620
- };
1617
+ });
1621
1618
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
1622
1619
  var ITEM_SIZE_CLASSES = {
1623
1620
  small: "text-sm",
@@ -1658,11 +1655,15 @@ var DropdownMenuContent = forwardRef4(
1658
1655
  sideOffset = 4,
1659
1656
  children,
1660
1657
  store: externalStore,
1658
+ portal = false,
1659
+ triggerRef,
1661
1660
  ...props
1662
1661
  }, ref) => {
1663
1662
  const store = useDropdownStore(externalStore);
1664
1663
  const open = useStore(store, (s) => s.open);
1665
1664
  const [isVisible, setIsVisible] = useState4(open);
1665
+ const [portalPosition, setPortalPosition] = useState4({ top: 0, left: 0 });
1666
+ const contentRef = useRef(null);
1666
1667
  useEffect6(() => {
1667
1668
  if (open) {
1668
1669
  setIsVisible(true);
@@ -1671,18 +1672,61 @@ var DropdownMenuContent = forwardRef4(
1671
1672
  return () => clearTimeout(timer);
1672
1673
  }
1673
1674
  }, [open]);
1675
+ useLayoutEffect(() => {
1676
+ if (portal && open && triggerRef?.current) {
1677
+ const rect = triggerRef.current.getBoundingClientRect();
1678
+ let top = rect.bottom + sideOffset;
1679
+ let left = rect.left;
1680
+ if (side === "left") {
1681
+ left = rect.left - sideOffset;
1682
+ top = rect.top;
1683
+ } else if (side === "right") {
1684
+ left = rect.right + sideOffset;
1685
+ top = rect.top;
1686
+ } else {
1687
+ if (align === "end") {
1688
+ left = rect.right;
1689
+ } else if (align === "center") {
1690
+ left = rect.left + rect.width / 2;
1691
+ }
1692
+ if (side === "top") {
1693
+ top = rect.top - sideOffset;
1694
+ }
1695
+ }
1696
+ setPortalPosition({ top, left });
1697
+ }
1698
+ }, [portal, open, triggerRef, align, side, sideOffset]);
1674
1699
  if (!isVisible) return null;
1675
1700
  const getPositionClasses = () => {
1701
+ if (portal) {
1702
+ return "fixed";
1703
+ }
1676
1704
  const vertical = SIDE_CLASSES[side];
1677
1705
  const horizontal = ALIGN_CLASSES[align];
1678
1706
  return `absolute ${vertical} ${horizontal}`;
1679
1707
  };
1708
+ const getPortalAlignStyle = () => {
1709
+ if (!portal) return {};
1710
+ const baseStyle = {
1711
+ top: portalPosition.top
1712
+ };
1713
+ if (align === "end") {
1714
+ baseStyle.right = window.innerWidth - portalPosition.left;
1715
+ } else if (align === "center") {
1716
+ baseStyle.left = portalPosition.left;
1717
+ baseStyle.transform = "translateX(-50%)";
1718
+ } else {
1719
+ baseStyle.left = portalPosition.left;
1720
+ }
1721
+ return baseStyle;
1722
+ };
1680
1723
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
1681
- return /* @__PURE__ */ jsx11(
1724
+ const content = /* @__PURE__ */ jsx11(
1682
1725
  "div",
1683
1726
  {
1684
- ref,
1727
+ ref: portal ? contentRef : ref,
1685
1728
  role: "menu",
1729
+ "data-dropdown-content": "true",
1686
1730
  className: `
1687
1731
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
1688
1732
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -1691,15 +1735,21 @@ var DropdownMenuContent = forwardRef4(
1691
1735
  ${className}
1692
1736
  `,
1693
1737
  style: {
1694
- marginTop: side === "bottom" ? sideOffset : void 0,
1695
- marginBottom: side === "top" ? sideOffset : void 0,
1696
- marginLeft: side === "right" ? sideOffset : void 0,
1697
- marginRight: side === "left" ? sideOffset : void 0
1738
+ ...portal ? getPortalAlignStyle() : {
1739
+ marginTop: side === "bottom" ? sideOffset : void 0,
1740
+ marginBottom: side === "top" ? sideOffset : void 0,
1741
+ marginLeft: side === "right" ? sideOffset : void 0,
1742
+ marginRight: side === "left" ? sideOffset : void 0
1743
+ }
1698
1744
  },
1699
1745
  ...props,
1700
1746
  children
1701
1747
  }
1702
1748
  );
1749
+ if (portal && typeof document !== "undefined") {
1750
+ return createPortal(content, document.body);
1751
+ }
1752
+ return content;
1703
1753
  }
1704
1754
  );
1705
1755
  DropdownMenuContent.displayName = "DropdownMenuContent";
@@ -4495,6 +4545,8 @@ var CardAccordation = forwardRef8(
4495
4545
  onToggleExpanded,
4496
4546
  value,
4497
4547
  disabled = false,
4548
+ triggerClassName,
4549
+ contentClassName,
4498
4550
  ...props
4499
4551
  }, ref) => {
4500
4552
  const [internalExpanded, setInternalExpanded] = useState8(defaultExpanded);
@@ -4543,7 +4595,8 @@ var CardAccordation = forwardRef8(
4543
4595
  disabled,
4544
4596
  className: cn(
4545
4597
  "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",
4546
- disabled && "cursor-not-allowed text-text-400"
4598
+ disabled && "cursor-not-allowed text-text-400",
4599
+ triggerClassName
4547
4600
  ),
4548
4601
  "aria-expanded": isExpanded,
4549
4602
  "aria-controls": contentId,
@@ -4578,7 +4631,7 @@ var CardAccordation = forwardRef8(
4578
4631
  ),
4579
4632
  "data-testid": "accordion-content",
4580
4633
  "data-value": value,
4581
- children: /* @__PURE__ */ jsx22("div", { className: "p-4 pt-0", children })
4634
+ children: /* @__PURE__ */ jsx22("div", { className: cn("p-4 pt-0", contentClassName), children })
4582
4635
  }
4583
4636
  )
4584
4637
  ]