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
@@ -1661,6 +1661,7 @@ var Radio_default = Radio;
1661
1661
  // src/components/DropdownMenu/DropdownMenu.tsx
1662
1662
  var import_phosphor_react5 = require("phosphor-react");
1663
1663
  var import_react8 = require("react");
1664
+ var import_react_dom = require("react-dom");
1664
1665
  var import_zustand3 = require("zustand");
1665
1666
 
1666
1667
  // src/components/ThemeToggle/ThemeToggle.tsx
@@ -1925,7 +1926,7 @@ var DropdownMenu = ({
1925
1926
  ).filter((el) => el instanceof HTMLElement);
1926
1927
  if (items.length === 0) return;
1927
1928
  const focusedItem = document.activeElement;
1928
- const currentIndex = items.findIndex((item) => item === focusedItem);
1929
+ const currentIndex = items.indexOf(focusedItem);
1929
1930
  let nextIndex;
1930
1931
  if (event.key === "ArrowDown") {
1931
1932
  nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
@@ -1943,9 +1944,14 @@ var DropdownMenu = ({
1943
1944
  }
1944
1945
  };
1945
1946
  const handleClickOutside = (event) => {
1946
- if (menuRef.current && !menuRef.current.contains(event.target)) {
1947
- setOpen(false);
1947
+ const target = event.target;
1948
+ if (menuRef.current?.contains(target)) {
1949
+ return;
1948
1950
  }
1951
+ if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
1952
+ return;
1953
+ }
1954
+ setOpen(false);
1949
1955
  };
1950
1956
  (0, import_react8.useEffect)(() => {
1951
1957
  if (open) {
@@ -1967,40 +1973,30 @@ var DropdownMenu = ({
1967
1973
  }, [propOpen]);
1968
1974
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "relative", ref: menuRef, children: injectStore2(children, store) });
1969
1975
  };
1970
- var DropdownMenuTrigger = ({
1971
- className,
1972
- children,
1973
- onClick,
1974
- store: externalStore,
1975
- ...props
1976
- }) => {
1976
+ var DropdownMenuTrigger = (0, import_react8.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
1977
1977
  const store = useDropdownStore(externalStore);
1978
1978
  const open = (0, import_zustand3.useStore)(store, (s) => s.open);
1979
1979
  const toggleOpen = () => store.setState({ open: !open });
1980
1980
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1981
- "div",
1981
+ "button",
1982
1982
  {
1983
+ ref,
1984
+ type: "button",
1983
1985
  onClick: (e) => {
1984
1986
  e.stopPropagation();
1985
1987
  toggleOpen();
1986
- if (onClick) onClick(e);
1987
- },
1988
- role: "button",
1989
- onKeyDown: (e) => {
1990
- if (e.key === "Enter" || e.key === " ") {
1991
- e.preventDefault();
1992
- toggleOpen();
1993
- if (onClick) onClick(e);
1994
- }
1988
+ onClick?.(e);
1995
1989
  },
1996
- tabIndex: 0,
1997
1990
  "aria-expanded": open,
1998
- className: cn(className),
1991
+ className: cn(
1992
+ "appearance-none bg-transparent border-none p-0",
1993
+ className
1994
+ ),
1999
1995
  ...props,
2000
1996
  children
2001
1997
  }
2002
1998
  );
2003
- };
1999
+ });
2004
2000
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
2005
2001
  var ITEM_SIZE_CLASSES = {
2006
2002
  small: "text-sm",
@@ -2041,11 +2037,15 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
2041
2037
  sideOffset = 4,
2042
2038
  children,
2043
2039
  store: externalStore,
2040
+ portal = false,
2041
+ triggerRef,
2044
2042
  ...props
2045
2043
  }, ref) => {
2046
2044
  const store = useDropdownStore(externalStore);
2047
2045
  const open = (0, import_zustand3.useStore)(store, (s) => s.open);
2048
2046
  const [isVisible, setIsVisible] = (0, import_react8.useState)(open);
2047
+ const [portalPosition, setPortalPosition] = (0, import_react8.useState)({ top: 0, left: 0 });
2048
+ const contentRef = (0, import_react8.useRef)(null);
2049
2049
  (0, import_react8.useEffect)(() => {
2050
2050
  if (open) {
2051
2051
  setIsVisible(true);
@@ -2054,18 +2054,61 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
2054
2054
  return () => clearTimeout(timer);
2055
2055
  }
2056
2056
  }, [open]);
2057
+ (0, import_react8.useLayoutEffect)(() => {
2058
+ if (portal && open && triggerRef?.current) {
2059
+ const rect = triggerRef.current.getBoundingClientRect();
2060
+ let top = rect.bottom + sideOffset;
2061
+ let left = rect.left;
2062
+ if (side === "left") {
2063
+ left = rect.left - sideOffset;
2064
+ top = rect.top;
2065
+ } else if (side === "right") {
2066
+ left = rect.right + sideOffset;
2067
+ top = rect.top;
2068
+ } else {
2069
+ if (align === "end") {
2070
+ left = rect.right;
2071
+ } else if (align === "center") {
2072
+ left = rect.left + rect.width / 2;
2073
+ }
2074
+ if (side === "top") {
2075
+ top = rect.top - sideOffset;
2076
+ }
2077
+ }
2078
+ setPortalPosition({ top, left });
2079
+ }
2080
+ }, [portal, open, triggerRef, align, side, sideOffset]);
2057
2081
  if (!isVisible) return null;
2058
2082
  const getPositionClasses = () => {
2083
+ if (portal) {
2084
+ return "fixed";
2085
+ }
2059
2086
  const vertical = SIDE_CLASSES[side];
2060
2087
  const horizontal = ALIGN_CLASSES[align];
2061
2088
  return `absolute ${vertical} ${horizontal}`;
2062
2089
  };
2090
+ const getPortalAlignStyle = () => {
2091
+ if (!portal) return {};
2092
+ const baseStyle = {
2093
+ top: portalPosition.top
2094
+ };
2095
+ if (align === "end") {
2096
+ baseStyle.right = window.innerWidth - portalPosition.left;
2097
+ } else if (align === "center") {
2098
+ baseStyle.left = portalPosition.left;
2099
+ baseStyle.transform = "translateX(-50%)";
2100
+ } else {
2101
+ baseStyle.left = portalPosition.left;
2102
+ }
2103
+ return baseStyle;
2104
+ };
2063
2105
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
2064
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2106
+ const content = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2065
2107
  "div",
2066
2108
  {
2067
- ref,
2109
+ ref: portal ? contentRef : ref,
2068
2110
  role: "menu",
2111
+ "data-dropdown-content": "true",
2069
2112
  className: `
2070
2113
  bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
2071
2114
  ${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
@@ -2074,15 +2117,21 @@ var DropdownMenuContent = (0, import_react8.forwardRef)(
2074
2117
  ${className}
2075
2118
  `,
2076
2119
  style: {
2077
- marginTop: side === "bottom" ? sideOffset : void 0,
2078
- marginBottom: side === "top" ? sideOffset : void 0,
2079
- marginLeft: side === "right" ? sideOffset : void 0,
2080
- marginRight: side === "left" ? sideOffset : void 0
2120
+ ...portal ? getPortalAlignStyle() : {
2121
+ marginTop: side === "bottom" ? sideOffset : void 0,
2122
+ marginBottom: side === "top" ? sideOffset : void 0,
2123
+ marginLeft: side === "right" ? sideOffset : void 0,
2124
+ marginRight: side === "left" ? sideOffset : void 0
2125
+ }
2081
2126
  },
2082
2127
  ...props,
2083
2128
  children
2084
2129
  }
2085
2130
  );
2131
+ if (portal && typeof document !== "undefined") {
2132
+ return (0, import_react_dom.createPortal)(content, document.body);
2133
+ }
2134
+ return content;
2086
2135
  }
2087
2136
  );
2088
2137
  DropdownMenuContent.displayName = "DropdownMenuContent";
@@ -4332,6 +4381,8 @@ var CardAccordation = (0, import_react11.forwardRef)(
4332
4381
  onToggleExpanded,
4333
4382
  value,
4334
4383
  disabled = false,
4384
+ triggerClassName,
4385
+ contentClassName,
4335
4386
  ...props
4336
4387
  }, ref) => {
4337
4388
  const [internalExpanded, setInternalExpanded] = (0, import_react11.useState)(defaultExpanded);
@@ -4380,7 +4431,8 @@ var CardAccordation = (0, import_react11.forwardRef)(
4380
4431
  disabled,
4381
4432
  className: cn(
4382
4433
  "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",
4383
- disabled && "cursor-not-allowed text-text-400"
4434
+ disabled && "cursor-not-allowed text-text-400",
4435
+ triggerClassName
4384
4436
  ),
4385
4437
  "aria-expanded": isExpanded,
4386
4438
  "aria-controls": contentId,
@@ -4415,7 +4467,7 @@ var CardAccordation = (0, import_react11.forwardRef)(
4415
4467
  ),
4416
4468
  "data-testid": "accordion-content",
4417
4469
  "data-value": value,
4418
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "p-4 pt-0", children })
4470
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("p-4 pt-0", contentClassName), children })
4419
4471
  }
4420
4472
  )
4421
4473
  ]