@moderneinc/neo-styled-components 5.0.0-next.03345c → 5.0.0-next.036ce4

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.
@@ -1,4 +1,5 @@
1
1
  import { type TooltipProps } from '@mui/material/Tooltip';
2
+ import type { ReactNode } from 'react';
2
3
  /**
3
4
  * Variant type for NeoTooltip
4
5
  */
@@ -14,13 +15,15 @@ export interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'>
14
15
  */
15
16
  variant?: TooltipVariant;
16
17
  /**
17
- * The main tooltip text
18
+ * The main tooltip content. Accepts a string or any ReactNode, so callers can
19
+ * compose richer content when the `description` variant isn't enough.
18
20
  * @figma text (literal content, not a variant property)
19
21
  */
20
- title: string;
22
+ title: ReactNode;
21
23
  /**
22
- * Optional supporting description text
23
- * When provided, shows a larger tooltip with title (semibold) + description (medium)
24
+ * Optional supporting description text. When provided, shows a larger tooltip
25
+ * with a heading + body hierarchy: title (13px semibold) above a muted
26
+ * description (12px medium).
24
27
  * @default undefined
25
28
  * @figma Supporting text
26
29
  */
@@ -45,7 +48,7 @@ export interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'>
45
48
  * - Dark: grey[50] (#f9fafb), grey[800] (#1f2937)
46
49
  * - Brand: digitalBlue[800] (#131e7a), typography.tooltip (#ffffff)
47
50
  * - Shadow: neutralMedium (0px 8px 15px 0px rgba(31,41,55,0.1))
48
- * - Typography: fontSize.xs (12), fontWeight.medium (500), fontWeight.semiBold (600)
51
+ * - Typography: fontSize.xs (12), fontSize.caption (13), fontWeight.medium (500), fontWeight.semiBold (600)
49
52
  */
50
53
  export declare const NeoTooltip: {
51
54
  ({ variant, title, description, children, arrow, placement, ...props }: NeoTooltipProps): import("react/jsx-runtime").JSX.Element;
package/dist/index.d.ts CHANGED
@@ -3053,13 +3053,15 @@ interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'> {
3053
3053
  */
3054
3054
  variant?: TooltipVariant;
3055
3055
  /**
3056
- * The main tooltip text
3056
+ * The main tooltip content. Accepts a string or any ReactNode, so callers can
3057
+ * compose richer content when the `description` variant isn't enough.
3057
3058
  * @figma text (literal content, not a variant property)
3058
3059
  */
3059
- title: string;
3060
+ title: ReactNode;
3060
3061
  /**
3061
- * Optional supporting description text
3062
- * When provided, shows a larger tooltip with title (semibold) + description (medium)
3062
+ * Optional supporting description text. When provided, shows a larger tooltip
3063
+ * with a heading + body hierarchy: title (13px semibold) above a muted
3064
+ * description (12px medium).
3063
3065
  * @default undefined
3064
3066
  * @figma Supporting text
3065
3067
  */
@@ -3084,7 +3086,7 @@ interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'> {
3084
3086
  * - Dark: grey[50] (#f9fafb), grey[800] (#1f2937)
3085
3087
  * - Brand: digitalBlue[800] (#131e7a), typography.tooltip (#ffffff)
3086
3088
  * - Shadow: neutralMedium (0px 8px 15px 0px rgba(31,41,55,0.1))
3087
- * - Typography: fontSize.xs (12), fontWeight.medium (500), fontWeight.semiBold (600)
3089
+ * - Typography: fontSize.xs (12), fontSize.caption (13), fontWeight.medium (500), fontWeight.semiBold (600)
3088
3090
  */
3089
3091
  declare const NeoTooltip: {
3090
3092
  ({ variant, title, description, children, arrow, placement, ...props }: NeoTooltipProps): react_jsx_runtime.JSX.Element;
package/dist/index.esm.js CHANGED
@@ -453,7 +453,7 @@ const NeoActivityIndicatorCell = ({ event = 'commit-job', secondaryEvent, scene
453
453
  NeoActivityIndicatorCell.displayName = 'NeoActivityIndicatorCell';
454
454
 
455
455
  /**
456
- * @license lucide-react v1.7.0 - ISC
456
+ * @license lucide-react v1.16.0 - ISC
457
457
  *
458
458
  * This source code is licensed under the ISC license.
459
459
  * See the LICENSE file in the root directory of this source tree.
@@ -464,7 +464,7 @@ const mergeClasses = (...classes) => classes.filter((className, index, array) =>
464
464
  }).join(" ").trim();
465
465
 
466
466
  /**
467
- * @license lucide-react v1.7.0 - ISC
467
+ * @license lucide-react v1.16.0 - ISC
468
468
  *
469
469
  * This source code is licensed under the ISC license.
470
470
  * See the LICENSE file in the root directory of this source tree.
@@ -473,7 +473,7 @@ const mergeClasses = (...classes) => classes.filter((className, index, array) =>
473
473
  const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
474
474
 
475
475
  /**
476
- * @license lucide-react v1.7.0 - ISC
476
+ * @license lucide-react v1.16.0 - ISC
477
477
  *
478
478
  * This source code is licensed under the ISC license.
479
479
  * See the LICENSE file in the root directory of this source tree.
@@ -485,7 +485,7 @@ const toCamelCase = (string) => string.replace(
485
485
  );
486
486
 
487
487
  /**
488
- * @license lucide-react v1.7.0 - ISC
488
+ * @license lucide-react v1.16.0 - ISC
489
489
  *
490
490
  * This source code is licensed under the ISC license.
491
491
  * See the LICENSE file in the root directory of this source tree.
@@ -498,7 +498,7 @@ const toPascalCase = (string) => {
498
498
  };
499
499
 
500
500
  /**
501
- * @license lucide-react v1.7.0 - ISC
501
+ * @license lucide-react v1.16.0 - ISC
502
502
  *
503
503
  * This source code is licensed under the ISC license.
504
504
  * See the LICENSE file in the root directory of this source tree.
@@ -517,7 +517,7 @@ var defaultAttributes = {
517
517
  };
518
518
 
519
519
  /**
520
- * @license lucide-react v1.7.0 - ISC
520
+ * @license lucide-react v1.16.0 - ISC
521
521
  *
522
522
  * This source code is licensed under the ISC license.
523
523
  * See the LICENSE file in the root directory of this source tree.
@@ -567,7 +567,7 @@ const Icon = forwardRef(
567
567
  );
568
568
 
569
569
  /**
570
- * @license lucide-react v1.7.0 - ISC
570
+ * @license lucide-react v1.16.0 - ISC
571
571
  *
572
572
  * This source code is licensed under the ISC license.
573
573
  * See the LICENSE file in the root directory of this source tree.
@@ -592,7 +592,7 @@ const createLucideIcon = (iconName, iconNode) => {
592
592
  };
593
593
 
594
594
  /**
595
- * @license lucide-react v1.7.0 - ISC
595
+ * @license lucide-react v1.16.0 - ISC
596
596
  *
597
597
  * This source code is licensed under the ISC license.
598
598
  * See the LICENSE file in the root directory of this source tree.
@@ -606,7 +606,7 @@ const __iconNode$k = [
606
606
  const ArrowDown = createLucideIcon("arrow-down", __iconNode$k);
607
607
 
608
608
  /**
609
- * @license lucide-react v1.7.0 - ISC
609
+ * @license lucide-react v1.16.0 - ISC
610
610
  *
611
611
  * This source code is licensed under the ISC license.
612
612
  * See the LICENSE file in the root directory of this source tree.
@@ -620,7 +620,7 @@ const __iconNode$j = [
620
620
  const ArrowUp = createLucideIcon("arrow-up", __iconNode$j);
621
621
 
622
622
  /**
623
- * @license lucide-react v1.7.0 - ISC
623
+ * @license lucide-react v1.16.0 - ISC
624
624
  *
625
625
  * This source code is licensed under the ISC license.
626
626
  * See the LICENSE file in the root directory of this source tree.
@@ -641,7 +641,7 @@ const __iconNode$i = [
641
641
  const BadgeInfo = createLucideIcon("badge-info", __iconNode$i);
642
642
 
643
643
  /**
644
- * @license lucide-react v1.7.0 - ISC
644
+ * @license lucide-react v1.16.0 - ISC
645
645
  *
646
646
  * This source code is licensed under the ISC license.
647
647
  * See the LICENSE file in the root directory of this source tree.
@@ -663,7 +663,7 @@ const __iconNode$h = [
663
663
  const CalendarDays = createLucideIcon("calendar-days", __iconNode$h);
664
664
 
665
665
  /**
666
- * @license lucide-react v1.7.0 - ISC
666
+ * @license lucide-react v1.16.0 - ISC
667
667
  *
668
668
  * This source code is licensed under the ISC license.
669
669
  * See the LICENSE file in the root directory of this source tree.
@@ -674,7 +674,7 @@ const __iconNode$g = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
674
674
  const ChevronDown = createLucideIcon("chevron-down", __iconNode$g);
675
675
 
676
676
  /**
677
- * @license lucide-react v1.7.0 - ISC
677
+ * @license lucide-react v1.16.0 - ISC
678
678
  *
679
679
  * This source code is licensed under the ISC license.
680
680
  * See the LICENSE file in the root directory of this source tree.
@@ -685,7 +685,7 @@ const __iconNode$f = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
685
685
  const ChevronLeft = createLucideIcon("chevron-left", __iconNode$f);
686
686
 
687
687
  /**
688
- * @license lucide-react v1.7.0 - ISC
688
+ * @license lucide-react v1.16.0 - ISC
689
689
  *
690
690
  * This source code is licensed under the ISC license.
691
691
  * See the LICENSE file in the root directory of this source tree.
@@ -696,7 +696,7 @@ const __iconNode$e = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
696
696
  const ChevronRight = createLucideIcon("chevron-right", __iconNode$e);
697
697
 
698
698
  /**
699
- * @license lucide-react v1.7.0 - ISC
699
+ * @license lucide-react v1.16.0 - ISC
700
700
  *
701
701
  * This source code is licensed under the ISC license.
702
702
  * See the LICENSE file in the root directory of this source tree.
@@ -707,7 +707,7 @@ const __iconNode$d = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
707
707
  const ChevronUp = createLucideIcon("chevron-up", __iconNode$d);
708
708
 
709
709
  /**
710
- * @license lucide-react v1.7.0 - ISC
710
+ * @license lucide-react v1.16.0 - ISC
711
711
  *
712
712
  * This source code is licensed under the ISC license.
713
713
  * See the LICENSE file in the root directory of this source tree.
@@ -721,7 +721,7 @@ const __iconNode$c = [
721
721
  const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$c);
722
722
 
723
723
  /**
724
- * @license lucide-react v1.7.0 - ISC
724
+ * @license lucide-react v1.16.0 - ISC
725
725
  *
726
726
  * This source code is licensed under the ISC license.
727
727
  * See the LICENSE file in the root directory of this source tree.
@@ -736,7 +736,7 @@ const __iconNode$b = [
736
736
  const CircleAlert = createLucideIcon("circle-alert", __iconNode$b);
737
737
 
738
738
  /**
739
- * @license lucide-react v1.7.0 - ISC
739
+ * @license lucide-react v1.16.0 - ISC
740
740
  *
741
741
  * This source code is licensed under the ISC license.
742
742
  * See the LICENSE file in the root directory of this source tree.
@@ -750,7 +750,7 @@ const __iconNode$a = [
750
750
  const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$a);
751
751
 
752
752
  /**
753
- * @license lucide-react v1.7.0 - ISC
753
+ * @license lucide-react v1.16.0 - ISC
754
754
  *
755
755
  * This source code is licensed under the ISC license.
756
756
  * See the LICENSE file in the root directory of this source tree.
@@ -765,7 +765,7 @@ const __iconNode$9 = [
765
765
  const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$9);
766
766
 
767
767
  /**
768
- * @license lucide-react v1.7.0 - ISC
768
+ * @license lucide-react v1.16.0 - ISC
769
769
  *
770
770
  * This source code is licensed under the ISC license.
771
771
  * See the LICENSE file in the root directory of this source tree.
@@ -780,7 +780,7 @@ const __iconNode$8 = [
780
780
  const Columns3 = createLucideIcon("columns-3", __iconNode$8);
781
781
 
782
782
  /**
783
- * @license lucide-react v1.7.0 - ISC
783
+ * @license lucide-react v1.16.0 - ISC
784
784
  *
785
785
  * This source code is licensed under the ISC license.
786
786
  * See the LICENSE file in the root directory of this source tree.
@@ -795,7 +795,7 @@ const __iconNode$7 = [
795
795
  const ListFilter = createLucideIcon("list-filter", __iconNode$7);
796
796
 
797
797
  /**
798
- * @license lucide-react v1.7.0 - ISC
798
+ * @license lucide-react v1.16.0 - ISC
799
799
  *
800
800
  * This source code is licensed under the ISC license.
801
801
  * See the LICENSE file in the root directory of this source tree.
@@ -806,7 +806,7 @@ const __iconNode$6 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
806
806
  const Minus = createLucideIcon("minus", __iconNode$6);
807
807
 
808
808
  /**
809
- * @license lucide-react v1.7.0 - ISC
809
+ * @license lucide-react v1.16.0 - ISC
810
810
  *
811
811
  * This source code is licensed under the ISC license.
812
812
  * See the LICENSE file in the root directory of this source tree.
@@ -820,7 +820,7 @@ const __iconNode$5 = [
820
820
  const Plus = createLucideIcon("plus", __iconNode$5);
821
821
 
822
822
  /**
823
- * @license lucide-react v1.7.0 - ISC
823
+ * @license lucide-react v1.16.0 - ISC
824
824
  *
825
825
  * This source code is licensed under the ISC license.
826
826
  * See the LICENSE file in the root directory of this source tree.
@@ -834,7 +834,7 @@ const __iconNode$4 = [
834
834
  const Search = createLucideIcon("search", __iconNode$4);
835
835
 
836
836
  /**
837
- * @license lucide-react v1.7.0 - ISC
837
+ * @license lucide-react v1.16.0 - ISC
838
838
  *
839
839
  * This source code is licensed under the ISC license.
840
840
  * See the LICENSE file in the root directory of this source tree.
@@ -851,7 +851,7 @@ const __iconNode$3 = [
851
851
  const Trash2 = createLucideIcon("trash-2", __iconNode$3);
852
852
 
853
853
  /**
854
- * @license lucide-react v1.7.0 - ISC
854
+ * @license lucide-react v1.16.0 - ISC
855
855
  *
856
856
  * This source code is licensed under the ISC license.
857
857
  * See the LICENSE file in the root directory of this source tree.
@@ -872,7 +872,7 @@ const __iconNode$2 = [
872
872
  const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$2);
873
873
 
874
874
  /**
875
- * @license lucide-react v1.7.0 - ISC
875
+ * @license lucide-react v1.16.0 - ISC
876
876
  *
877
877
  * This source code is licensed under the ISC license.
878
878
  * See the LICENSE file in the root directory of this source tree.
@@ -891,7 +891,7 @@ const __iconNode$1 = [
891
891
  const WifiOff = createLucideIcon("wifi-off", __iconNode$1);
892
892
 
893
893
  /**
894
- * @license lucide-react v1.7.0 - ISC
894
+ * @license lucide-react v1.16.0 - ISC
895
895
  *
896
896
  * This source code is licensed under the ISC license.
897
897
  * See the LICENSE file in the root directory of this source tree.
@@ -1020,38 +1020,43 @@ const StyledAlert$1 = styled(Alert, {
1020
1020
  };
1021
1021
  return {
1022
1022
  width: '100%',
1023
- minHeight: 52,
1024
- paddingTop: spacing.spacing_3_4,
1025
- paddingBottom: spacing.spacing_3_4,
1026
- paddingLeft: spacing.spacing_3,
1027
- paddingRight: spacing.spacing_3,
1028
- gap: spacing.spacing_2,
1023
+ // Include padding in the width so the full-width banner never overflows its
1024
+ // container (don't rely on a global border-box reset being present).
1025
+ boxSizing: 'border-box',
1026
+ // Square corners by default: banners are full-width and typically sit flush
1027
+ // against the top of the viewport, so rounded corners would break the seam.
1028
+ borderRadius: 0,
1029
+ minHeight: 32,
1030
+ paddingTop: spacing.spacing_1_2,
1031
+ paddingBottom: spacing.spacing_1_2,
1032
+ paddingLeft: spacing.spacing_2,
1033
+ paddingRight: spacing.spacing_2,
1034
+ gap: spacing.spacing_1,
1029
1035
  alignItems: 'center',
1030
1036
  justifyContent: messagePosition === 'center' ? 'center' : 'flex-start',
1031
1037
  ...(messagePosition === 'center' && { position: 'relative' }),
1032
- boxShadow: `${shadows.neutral.small.x}px ${shadows.neutral.small.y}px ${shadows.neutral.small.blur}px ${shadows.neutral.small.spread}px ${shadows.neutral.small.shadow}`,
1033
- fontSize: typography.fontSize.default,
1038
+ fontSize: typography.fontSize.sm,
1034
1039
  fontWeight: typography.fontWeight.medium,
1035
1040
  lineHeight: 1.5,
1036
1041
  ...typeStyles,
1037
1042
  [`& .${alertClasses.icon}`]: {
1038
1043
  padding: 0,
1039
1044
  opacity: 1,
1040
- fontSize: typography.fontSize.h2,
1045
+ fontSize: typography.fontSize.default,
1041
1046
  color: 'inherit',
1042
1047
  },
1043
1048
  [`& .${alertClasses.message}`]: {
1044
1049
  padding: 0,
1045
1050
  display: 'flex',
1046
1051
  alignItems: 'center',
1047
- gap: spacing.spacing_2,
1052
+ gap: spacing.spacing_1,
1048
1053
  ...(messagePosition === 'left' && { flex: 1 }),
1049
1054
  },
1050
1055
  [`& .${alertClasses.action}`]: {
1051
1056
  padding: 0,
1052
1057
  ...(messagePosition === 'center' && {
1053
1058
  position: 'absolute',
1054
- right: spacing.spacing_3,
1059
+ right: spacing.spacing_2,
1055
1060
  }),
1056
1061
  },
1057
1062
  };
@@ -1069,6 +1074,8 @@ const LinkText = styled('span')(({ bannerType = 'outlined' }) => ({
1069
1074
  },
1070
1075
  }));
1071
1076
  const StyledIconButton = styled(IconButton)(({ closeIconColor }) => ({
1077
+ minWidth: 24,
1078
+ minHeight: 24,
1072
1079
  padding: 0,
1073
1080
  color: closeIconColor,
1074
1081
  '&:hover': {
@@ -1085,7 +1092,7 @@ const NeoBanner = ({ intent = 'info', type = 'outlined', message, messagePositio
1085
1092
  return null;
1086
1093
  }
1087
1094
  const closeIconColor = type === 'filled' ? semanticColors.surfaces.white : intentColors$1[intent].default;
1088
- return (jsx(StyledAlert$1, { ...props, intent: intent, bannerType: type, messagePosition: messagePosition, icon: messagePosition === 'left' ? icon || false : false, action: showClose ? (jsx(StyledIconButton, { size: "small", onClick: handleClose, closeIconColor: closeIconColor, children: jsx(X, { size: 24 }) })) : undefined, children: messagePosition === 'center' ? (jsxs(Fragment, { children: [icon, jsx("span", { children: message }), linkText && (jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) : (jsxs(Fragment, { children: [jsx("span", { children: message }), linkText && (jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) }));
1095
+ return (jsx(StyledAlert$1, { ...props, intent: intent, bannerType: type, messagePosition: messagePosition, icon: messagePosition === 'left' ? icon || false : false, action: showClose ? (jsx(StyledIconButton, { size: "small", onClick: handleClose, closeIconColor: closeIconColor, children: jsx(X, { size: 16 }) })) : undefined, children: messagePosition === 'center' ? (jsxs(Fragment, { children: [icon, jsx("span", { children: message }), linkText && (jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) : (jsxs(Fragment, { children: [jsx("span", { children: message }), linkText && (jsx(LinkText, { bannerType: type, onClick: onLinkClick, children: linkText }))] })) }));
1089
1096
  };
1090
1097
  NeoBanner.displayName = 'NeoBanner';
1091
1098
 
@@ -6926,13 +6933,13 @@ const StyledTooltip = styled(Tooltip, {
6926
6933
  * - Dark: grey[50] (#f9fafb), grey[800] (#1f2937)
6927
6934
  * - Brand: digitalBlue[800] (#131e7a), typography.tooltip (#ffffff)
6928
6935
  * - Shadow: neutralMedium (0px 8px 15px 0px rgba(31,41,55,0.1))
6929
- * - Typography: fontSize.xs (12), fontWeight.medium (500), fontWeight.semiBold (600)
6936
+ * - Typography: fontSize.xs (12), fontSize.caption (13), fontWeight.medium (500), fontWeight.semiBold (600)
6930
6937
  */
6931
6938
  const NeoTooltip = ({ variant = 'light', title, description, children, arrow = false, placement, ...props }) => {
6932
6939
  // Build the title content
6933
6940
  // If description is provided, create a structured layout with title + description
6934
6941
  // Otherwise, just show the title text
6935
- const titleContent = description ? (jsxs(Stack, { gap: 0.25, children: [jsx(Typography, { fontWeight: typography.fontWeight.semiBold, children: title }), jsx(Typography, { fontWeight: typography.fontWeight.medium, children: description })] })) : (title);
6942
+ const titleContent = description ? (jsxs(Stack, { gap: 0.5, children: [jsx(Typography, { fontSize: typography.fontSize.caption, fontWeight: typography.fontWeight.semiBold, children: title }), jsx(Typography, { fontSize: typography.fontSize.xs, fontWeight: typography.fontWeight.medium, sx: { opacity: 0.75 }, children: description })] })) : (title);
6936
6943
  return (jsx(StyledTooltip, { variant: variant, description: description, title: titleContent, arrow: arrow, placement: placement, ...props, children: children }));
6937
6944
  };
6938
6945
  NeoTooltip.displayName = 'NeoTooltip';