analytica-frontend-lib 1.0.52 → 1.0.54

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.
package/dist/index.mjs CHANGED
@@ -971,6 +971,7 @@ import {
971
971
  useState as useState3,
972
972
  useId as useId3
973
973
  } from "react";
974
+ import { WarningCircle as WarningCircle2 } from "phosphor-react";
974
975
  import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
975
976
  var SIZE_CLASSES5 = {
976
977
  small: {
@@ -1085,7 +1086,11 @@ var TextArea = forwardRef7(
1085
1086
  ...props
1086
1087
  }
1087
1088
  ),
1088
- errorMessage && /* @__PURE__ */ jsx12(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-error-600", children: errorMessage }),
1089
+ errorMessage && /* @__PURE__ */ jsxs9("p", { className: "flex gap-1 items-center text-sm text-indicator-error mt-1.5", children: [
1090
+ /* @__PURE__ */ jsx12(WarningCircle2, { size: 16 }),
1091
+ " ",
1092
+ errorMessage
1093
+ ] }),
1089
1094
  helperMessage && !errorMessage && /* @__PURE__ */ jsx12(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
1090
1095
  ] });
1091
1096
  }
@@ -1094,7 +1099,7 @@ TextArea.displayName = "TextArea";
1094
1099
  var TextArea_default = TextArea;
1095
1100
 
1096
1101
  // src/components/Toast/Toast.tsx
1097
- import { CheckCircle as CheckCircle2, WarningCircle as WarningCircle2, Info as Info2, X } from "phosphor-react";
1102
+ import { CheckCircle as CheckCircle2, WarningCircle as WarningCircle3, Info as Info2, X } from "phosphor-react";
1098
1103
  import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
1099
1104
  var VARIANT_ACTION_CLASSES4 = {
1100
1105
  solid: {
@@ -1111,7 +1116,7 @@ var VARIANT_ACTION_CLASSES4 = {
1111
1116
  var iconMap = {
1112
1117
  success: CheckCircle2,
1113
1118
  info: Info2,
1114
- warning: WarningCircle2
1119
+ warning: WarningCircle3
1115
1120
  };
1116
1121
  var Toast = ({
1117
1122
  variant = "outlined",
@@ -1228,7 +1233,7 @@ var Divider = ({
1228
1233
  var Divider_default = Divider;
1229
1234
 
1230
1235
  // src/components/Input/Input.tsx
1231
- import { WarningCircle as WarningCircle3, Eye, EyeSlash } from "phosphor-react";
1236
+ import { WarningCircle as WarningCircle4, Eye, EyeSlash } from "phosphor-react";
1232
1237
  import {
1233
1238
  forwardRef as forwardRef8,
1234
1239
  useState as useState4,
@@ -1385,7 +1390,7 @@ var Input = forwardRef8(
1385
1390
  /* @__PURE__ */ jsxs11("div", { className: "mt-1.5 gap-1.5", children: [
1386
1391
  helperText && /* @__PURE__ */ jsx16("p", { className: "text-sm text-text-500", children: helperText }),
1387
1392
  errorMessage && /* @__PURE__ */ jsxs11("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
1388
- /* @__PURE__ */ jsx16(WarningCircle3, { size: 16 }),
1393
+ /* @__PURE__ */ jsx16(WarningCircle4, { size: 16 }),
1389
1394
  " ",
1390
1395
  errorMessage
1391
1396
  ] })
@@ -2406,7 +2411,7 @@ var getDayStyles = (day, variant, showActivities) => {
2406
2411
  let textStyle = "";
2407
2412
  if (variant === "selection" && day.isSelected) {
2408
2413
  dayStyle = "bg-primary-800";
2409
- textStyle = "text-white";
2414
+ textStyle = "text-text";
2410
2415
  } else if (day.isToday) {
2411
2416
  textStyle = "text-primary-800";
2412
2417
  } else if (variant === "navigation" && showActivities && day.activities?.length) {
@@ -2778,7 +2783,7 @@ var Calendar = ({
2778
2783
  )
2779
2784
  ] })
2780
2785
  ] }),
2781
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 gap-1 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ jsx21(
2786
+ /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ jsx21(
2782
2787
  "div",
2783
2788
  {
2784
2789
  className: "h-4 flex items-center justify-center text-xs font-semibold text-text-500",
@@ -2786,7 +2791,7 @@ var Calendar = ({
2786
2791
  },
2787
2792
  day
2788
2793
  )) }),
2789
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 gap-1", children: calendarData.map((day) => {
2794
+ /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7", children: calendarData.map((day) => {
2790
2795
  if (!day.isCurrentMonth) {
2791
2796
  return /* @__PURE__ */ jsx21(
2792
2797
  "div",
@@ -2810,9 +2815,9 @@ var Calendar = ({
2810
2815
  "button",
2811
2816
  {
2812
2817
  className: `
2813
- w-10 h-10
2818
+ w-9 h-9
2814
2819
  flex items-center justify-center
2815
- text-xl font-normal
2820
+ text-lg font-normal
2816
2821
  cursor-pointer
2817
2822
  rounded-full
2818
2823
  focus:outline-none focus:ring-2 focus:ring-primary-600 focus:ring-offset-1
@@ -3089,7 +3094,7 @@ var MenuLabel = forwardRef9(({ className, inset, store: _store, ...props }, ref)
3089
3094
  );
3090
3095
  });
3091
3096
  MenuLabel.displayName = "MenuLabel";
3092
- var MenuContent = forwardRef9(
3097
+ var DropdownMenuContent = forwardRef9(
3093
3098
  ({
3094
3099
  className,
3095
3100
  align = "start",
@@ -3142,7 +3147,7 @@ var MenuContent = forwardRef9(
3142
3147
  );
3143
3148
  }
3144
3149
  );
3145
- MenuContent.displayName = "MenuContent";
3150
+ DropdownMenuContent.displayName = "DropdownMenuContent";
3146
3151
  var DropdownMenuItem = forwardRef9(
3147
3152
  ({
3148
3153
  className,
@@ -3315,7 +3320,7 @@ import {
3315
3320
  cloneElement as cloneElement2,
3316
3321
  useId as useId5
3317
3322
  } from "react";
3318
- import { CaretDown, Check as Check4, WarningCircle as WarningCircle4 } from "phosphor-react";
3323
+ import { CaretDown, Check as Check4, WarningCircle as WarningCircle5 } from "phosphor-react";
3319
3324
  import { Fragment as Fragment3, jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
3320
3325
  var VARIANT_CLASSES4 = {
3321
3326
  outlined: "border rounded-lg focus:border-primary-950",
@@ -3499,7 +3504,7 @@ var Select = ({
3499
3504
  /* @__PURE__ */ jsxs19("div", { className: "mt-1.5 gap-1.5", children: [
3500
3505
  helperText && /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-500", children: helperText }),
3501
3506
  errorMessage && /* @__PURE__ */ jsxs19("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
3502
- /* @__PURE__ */ jsx24(WarningCircle4, { size: 16 }),
3507
+ /* @__PURE__ */ jsx24(WarningCircle5, { size: 16 }),
3503
3508
  " ",
3504
3509
  errorMessage
3505
3510
  ] })
@@ -3671,7 +3676,7 @@ var useMenuStore = (externalStore) => {
3671
3676
  };
3672
3677
  var VARIANT_CLASSES5 = {
3673
3678
  menu: "bg-background shadow-soft-shadow-1",
3674
- menu2: "overflow-x-auto scroll-smooth",
3679
+ menu2: "",
3675
3680
  breadcrumb: ""
3676
3681
  };
3677
3682
  var Menu = forwardRef11(
@@ -3694,10 +3699,10 @@ var Menu = forwardRef11(
3694
3699
  useEffect5(() => {
3695
3700
  onValueChange?.(value);
3696
3701
  }, [value, onValueChange]);
3697
- const baseClasses = "w-full flex flex-row items-center gap-2 py-2 px-6";
3702
+ const baseClasses = "w-full py-2 px-6 flex flex-row items-center justify-center";
3698
3703
  const variantClasses = VARIANT_CLASSES5[variant];
3699
3704
  return /* @__PURE__ */ jsx25(
3700
- "ul",
3705
+ "div",
3701
3706
  {
3702
3707
  ref,
3703
3708
  className: `
@@ -3705,7 +3710,6 @@ var Menu = forwardRef11(
3705
3710
  ${variantClasses}
3706
3711
  ${className ?? ""}
3707
3712
  `,
3708
- style: variant === "menu2" ? { scrollbarWidth: "none", msOverflowStyle: "none" } : void 0,
3709
3713
  ...props,
3710
3714
  children: injectStore3(children, store)
3711
3715
  }
@@ -3713,6 +3717,27 @@ var Menu = forwardRef11(
3713
3717
  }
3714
3718
  );
3715
3719
  Menu.displayName = "Menu";
3720
+ var MenuContent = forwardRef11(
3721
+ ({ className, children, variant = "menu", ...props }, ref) => {
3722
+ const baseClasses = "w-full flex flex-row items-center gap-2";
3723
+ const variantClasses = variant === "menu2" ? "overflow-x-auto scroll-smooth" : "";
3724
+ return /* @__PURE__ */ jsx25(
3725
+ "ul",
3726
+ {
3727
+ ref,
3728
+ className: `
3729
+ ${baseClasses}
3730
+ ${variantClasses}
3731
+ ${className ?? ""}
3732
+ `,
3733
+ style: variant === "menu2" ? { scrollbarWidth: "none", msOverflowStyle: "none" } : void 0,
3734
+ ...props,
3735
+ children
3736
+ }
3737
+ );
3738
+ }
3739
+ );
3740
+ MenuContent.displayName = "MenuContent";
3716
3741
  var MenuItem = forwardRef11(
3717
3742
  ({
3718
3743
  className,
@@ -3813,6 +3838,90 @@ var MenuSeparator = forwardRef11(
3813
3838
  )
3814
3839
  );
3815
3840
  MenuSeparator.displayName = "MenuSeparator";
3841
+ var internalScroll = (container, direction) => {
3842
+ if (!container) return;
3843
+ container.scrollBy({
3844
+ left: direction === "left" ? -150 : 150,
3845
+ behavior: "smooth"
3846
+ });
3847
+ };
3848
+ var internalCheckScroll = (container, setShowLeftArrow, setShowRightArrow) => {
3849
+ if (!container) return;
3850
+ const { scrollLeft, scrollWidth, clientWidth } = container;
3851
+ setShowLeftArrow(scrollLeft > 0);
3852
+ setShowRightArrow(scrollLeft + clientWidth < scrollWidth);
3853
+ };
3854
+ var MenuOverflow = ({
3855
+ children,
3856
+ className,
3857
+ defaultValue,
3858
+ value,
3859
+ onValueChange,
3860
+ ...props
3861
+ }) => {
3862
+ const containerRef = useRef4(null);
3863
+ const [showLeftArrow, setShowLeftArrow] = useState7(false);
3864
+ const [showRightArrow, setShowRightArrow] = useState7(false);
3865
+ useEffect5(() => {
3866
+ const checkScroll = () => internalCheckScroll(
3867
+ containerRef.current,
3868
+ setShowLeftArrow,
3869
+ setShowRightArrow
3870
+ );
3871
+ checkScroll();
3872
+ const container = containerRef.current;
3873
+ container?.addEventListener("scroll", checkScroll);
3874
+ window.addEventListener("resize", checkScroll);
3875
+ return () => {
3876
+ container?.removeEventListener("scroll", checkScroll);
3877
+ window.removeEventListener("resize", checkScroll);
3878
+ };
3879
+ }, []);
3880
+ return /* @__PURE__ */ jsxs20(
3881
+ "div",
3882
+ {
3883
+ "data-testid": "menu-overflow-wrapper",
3884
+ className: `relative w-full overflow-hidden ${className ?? ""}`,
3885
+ children: [
3886
+ showLeftArrow && /* @__PURE__ */ jsxs20(
3887
+ "button",
3888
+ {
3889
+ onClick: () => internalScroll(containerRef.current, "left"),
3890
+ className: "absolute left-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
3891
+ "data-testid": "scroll-left-button",
3892
+ children: [
3893
+ /* @__PURE__ */ jsx25(CaretLeft, { size: 16 }),
3894
+ /* @__PURE__ */ jsx25("span", { className: "sr-only", children: "Scroll left" })
3895
+ ]
3896
+ }
3897
+ ),
3898
+ /* @__PURE__ */ jsx25(
3899
+ Menu,
3900
+ {
3901
+ defaultValue,
3902
+ onValueChange,
3903
+ value,
3904
+ variant: "menu2",
3905
+ ...props,
3906
+ children: /* @__PURE__ */ jsx25(MenuContent, { ref: containerRef, variant: "menu2", children })
3907
+ }
3908
+ ),
3909
+ showRightArrow && /* @__PURE__ */ jsxs20(
3910
+ "button",
3911
+ {
3912
+ onClick: () => internalScroll(containerRef.current, "right"),
3913
+ className: "absolute right-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
3914
+ "data-testid": "scroll-right-button",
3915
+ children: [
3916
+ /* @__PURE__ */ jsx25(CaretRight, { size: 16 }),
3917
+ /* @__PURE__ */ jsx25("span", { className: "sr-only", children: "Scroll right" })
3918
+ ]
3919
+ }
3920
+ )
3921
+ ]
3922
+ }
3923
+ );
3924
+ };
3816
3925
  var injectStore3 = (children, store) => Children3.map(children, (child) => {
3817
3926
  if (!isValidElement3(child)) return child;
3818
3927
  const typedChild = child;
@@ -4366,6 +4475,7 @@ export {
4366
4475
  Chips_default as Chips,
4367
4476
  Divider_default as Divider,
4368
4477
  DropdownMenu_default as DropdownMenu,
4478
+ DropdownMenuContent,
4369
4479
  DropdownMenuItem,
4370
4480
  DropdownMenuSeparator,
4371
4481
  DropdownMenuTrigger,
@@ -4376,6 +4486,7 @@ export {
4376
4486
  MenuContent,
4377
4487
  MenuItem,
4378
4488
  MenuLabel,
4489
+ MenuOverflow,
4379
4490
  MenuSeparator,
4380
4491
  Modal_default as Modal,
4381
4492
  NavButton_default as NavButton,