@moderneinc/neo-styled-components 2.0.3-next.901bb3 → 2.0.3-next.9b94c6

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.
@@ -37,6 +37,10 @@ export interface NeoButtonProps extends Omit<ButtonBaseProps, 'children'> {
37
37
  * Button content
38
38
  */
39
39
  children?: ReactNode;
40
+ /**
41
+ * URL to link to. When provided, the button renders as a link element.
42
+ */
43
+ href?: string;
40
44
  }
41
45
  /**
42
46
  * NeoButton - Text button component based on MUI ButtonBase
@@ -65,9 +65,12 @@ export interface NeoMarketplaceCardProps extends Omit<CardProps, 'children'> {
65
65
  * - Property 1="Default" → Base state (no props)
66
66
  *
67
67
  * Design Tokens Used:
68
- * - semanticColors.surfaces.card (#FFFFFF) - Card background
68
+ * - semanticColors.surfaces.card (#FFFFFF) - Default card background
69
+ * - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
69
70
  * - semanticColors.border.card (#d1d5db) - Default border
70
71
  * - semanticColors.border.tabActive (#2f42ff) - Active/focused border
72
+ * - shadows.focusWhite1 - Inner white focus ring (2px spread)
73
+ * - shadows.focusBlue2 - Outer blue focus ring (4px spread)
71
74
  * - colors.grey[800] (#1F2937) - Text color
72
75
  * - typography.fontSize.xxs (10px) - Recipe count
73
76
  * - typography.fontSize.xs (12px) - Description
package/dist/index.d.ts CHANGED
@@ -515,6 +515,10 @@ interface NeoButtonProps extends Omit<ButtonBaseProps, 'children'> {
515
515
  * Button content
516
516
  */
517
517
  children?: ReactNode;
518
+ /**
519
+ * URL to link to. When provided, the button renders as a link element.
520
+ */
521
+ href?: string;
518
522
  }
519
523
  /**
520
524
  * NeoButton - Text button component based on MUI ButtonBase
@@ -2561,9 +2565,12 @@ interface NeoMarketplaceCardProps extends Omit<CardProps, 'children'> {
2561
2565
  * - Property 1="Default" → Base state (no props)
2562
2566
  *
2563
2567
  * Design Tokens Used:
2564
- * - semanticColors.surfaces.card (#FFFFFF) - Card background
2568
+ * - semanticColors.surfaces.card (#FFFFFF) - Default card background
2569
+ * - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
2565
2570
  * - semanticColors.border.card (#d1d5db) - Default border
2566
2571
  * - semanticColors.border.tabActive (#2f42ff) - Active/focused border
2572
+ * - shadows.focusWhite1 - Inner white focus ring (2px spread)
2573
+ * - shadows.focusBlue2 - Outer blue focus ring (4px spread)
2567
2574
  * - colors.grey[800] (#1F2937) - Text color
2568
2575
  * - typography.fontSize.xxs (10px) - Recipe count
2569
2576
  * - typography.fontSize.xs (12px) - Description
package/dist/index.esm.js CHANGED
@@ -499,7 +499,7 @@ const NeoActivityIndicatorCell = ({ event = 'commit-job', secondaryEvent, scene
499
499
  NeoActivityIndicatorCell.displayName = 'NeoActivityIndicatorCell';
500
500
 
501
501
  /**
502
- * @license lucide-react v0.552.0 - ISC
502
+ * @license lucide-react v0.562.0 - ISC
503
503
  *
504
504
  * This source code is licensed under the ISC license.
505
505
  * See the LICENSE file in the root directory of this source tree.
@@ -526,7 +526,7 @@ const hasA11yProp = (props) => {
526
526
  };
527
527
 
528
528
  /**
529
- * @license lucide-react v0.552.0 - ISC
529
+ * @license lucide-react v0.562.0 - ISC
530
530
  *
531
531
  * This source code is licensed under the ISC license.
532
532
  * See the LICENSE file in the root directory of this source tree.
@@ -545,7 +545,7 @@ var defaultAttributes = {
545
545
  };
546
546
 
547
547
  /**
548
- * @license lucide-react v0.552.0 - ISC
548
+ * @license lucide-react v0.562.0 - ISC
549
549
  *
550
550
  * This source code is licensed under the ISC license.
551
551
  * See the LICENSE file in the root directory of this source tree.
@@ -583,7 +583,7 @@ const Icon = forwardRef(
583
583
  );
584
584
 
585
585
  /**
586
- * @license lucide-react v0.552.0 - ISC
586
+ * @license lucide-react v0.562.0 - ISC
587
587
  *
588
588
  * This source code is licensed under the ISC license.
589
589
  * See the LICENSE file in the root directory of this source tree.
@@ -608,7 +608,7 @@ const createLucideIcon = (iconName, iconNode) => {
608
608
  };
609
609
 
610
610
  /**
611
- * @license lucide-react v0.552.0 - ISC
611
+ * @license lucide-react v0.562.0 - ISC
612
612
  *
613
613
  * This source code is licensed under the ISC license.
614
614
  * See the LICENSE file in the root directory of this source tree.
@@ -622,7 +622,7 @@ const __iconNode$h = [
622
622
  const ArrowDown = createLucideIcon("arrow-down", __iconNode$h);
623
623
 
624
624
  /**
625
- * @license lucide-react v0.552.0 - ISC
625
+ * @license lucide-react v0.562.0 - ISC
626
626
  *
627
627
  * This source code is licensed under the ISC license.
628
628
  * See the LICENSE file in the root directory of this source tree.
@@ -636,7 +636,7 @@ const __iconNode$g = [
636
636
  const ArrowUp = createLucideIcon("arrow-up", __iconNode$g);
637
637
 
638
638
  /**
639
- * @license lucide-react v0.552.0 - ISC
639
+ * @license lucide-react v0.562.0 - ISC
640
640
  *
641
641
  * This source code is licensed under the ISC license.
642
642
  * See the LICENSE file in the root directory of this source tree.
@@ -658,7 +658,7 @@ const __iconNode$f = [
658
658
  const CalendarDays = createLucideIcon("calendar-days", __iconNode$f);
659
659
 
660
660
  /**
661
- * @license lucide-react v0.552.0 - ISC
661
+ * @license lucide-react v0.562.0 - ISC
662
662
  *
663
663
  * This source code is licensed under the ISC license.
664
664
  * See the LICENSE file in the root directory of this source tree.
@@ -669,7 +669,7 @@ const __iconNode$e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
669
669
  const ChevronDown = createLucideIcon("chevron-down", __iconNode$e);
670
670
 
671
671
  /**
672
- * @license lucide-react v0.552.0 - ISC
672
+ * @license lucide-react v0.562.0 - ISC
673
673
  *
674
674
  * This source code is licensed under the ISC license.
675
675
  * See the LICENSE file in the root directory of this source tree.
@@ -680,7 +680,7 @@ const __iconNode$d = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
680
680
  const ChevronLeft = createLucideIcon("chevron-left", __iconNode$d);
681
681
 
682
682
  /**
683
- * @license lucide-react v0.552.0 - ISC
683
+ * @license lucide-react v0.562.0 - ISC
684
684
  *
685
685
  * This source code is licensed under the ISC license.
686
686
  * See the LICENSE file in the root directory of this source tree.
@@ -691,7 +691,7 @@ const __iconNode$c = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
691
691
  const ChevronRight = createLucideIcon("chevron-right", __iconNode$c);
692
692
 
693
693
  /**
694
- * @license lucide-react v0.552.0 - ISC
694
+ * @license lucide-react v0.562.0 - ISC
695
695
  *
696
696
  * This source code is licensed under the ISC license.
697
697
  * See the LICENSE file in the root directory of this source tree.
@@ -702,7 +702,7 @@ const __iconNode$b = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
702
702
  const ChevronUp = createLucideIcon("chevron-up", __iconNode$b);
703
703
 
704
704
  /**
705
- * @license lucide-react v0.552.0 - ISC
705
+ * @license lucide-react v0.562.0 - ISC
706
706
  *
707
707
  * This source code is licensed under the ISC license.
708
708
  * See the LICENSE file in the root directory of this source tree.
@@ -716,7 +716,7 @@ const __iconNode$a = [
716
716
  const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$a);
717
717
 
718
718
  /**
719
- * @license lucide-react v0.552.0 - ISC
719
+ * @license lucide-react v0.562.0 - ISC
720
720
  *
721
721
  * This source code is licensed under the ISC license.
722
722
  * See the LICENSE file in the root directory of this source tree.
@@ -731,7 +731,7 @@ const __iconNode$9 = [
731
731
  const CircleAlert = createLucideIcon("circle-alert", __iconNode$9);
732
732
 
733
733
  /**
734
- * @license lucide-react v0.552.0 - ISC
734
+ * @license lucide-react v0.562.0 - ISC
735
735
  *
736
736
  * This source code is licensed under the ISC license.
737
737
  * See the LICENSE file in the root directory of this source tree.
@@ -745,7 +745,7 @@ const __iconNode$8 = [
745
745
  const CircleCheck = createLucideIcon("circle-check", __iconNode$8);
746
746
 
747
747
  /**
748
- * @license lucide-react v0.552.0 - ISC
748
+ * @license lucide-react v0.562.0 - ISC
749
749
  *
750
750
  * This source code is licensed under the ISC license.
751
751
  * See the LICENSE file in the root directory of this source tree.
@@ -760,7 +760,7 @@ const __iconNode$7 = [
760
760
  const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$7);
761
761
 
762
762
  /**
763
- * @license lucide-react v0.552.0 - ISC
763
+ * @license lucide-react v0.562.0 - ISC
764
764
  *
765
765
  * This source code is licensed under the ISC license.
766
766
  * See the LICENSE file in the root directory of this source tree.
@@ -775,7 +775,7 @@ const __iconNode$6 = [
775
775
  const Columns3 = createLucideIcon("columns-3", __iconNode$6);
776
776
 
777
777
  /**
778
- * @license lucide-react v0.552.0 - ISC
778
+ * @license lucide-react v0.562.0 - ISC
779
779
  *
780
780
  * This source code is licensed under the ISC license.
781
781
  * See the LICENSE file in the root directory of this source tree.
@@ -790,7 +790,7 @@ const __iconNode$5 = [
790
790
  const ListFilter = createLucideIcon("list-filter", __iconNode$5);
791
791
 
792
792
  /**
793
- * @license lucide-react v0.552.0 - ISC
793
+ * @license lucide-react v0.562.0 - ISC
794
794
  *
795
795
  * This source code is licensed under the ISC license.
796
796
  * See the LICENSE file in the root directory of this source tree.
@@ -804,7 +804,7 @@ const __iconNode$4 = [
804
804
  const Plus = createLucideIcon("plus", __iconNode$4);
805
805
 
806
806
  /**
807
- * @license lucide-react v0.552.0 - ISC
807
+ * @license lucide-react v0.562.0 - ISC
808
808
  *
809
809
  * This source code is licensed under the ISC license.
810
810
  * See the LICENSE file in the root directory of this source tree.
@@ -818,7 +818,7 @@ const __iconNode$3 = [
818
818
  const Search = createLucideIcon("search", __iconNode$3);
819
819
 
820
820
  /**
821
- * @license lucide-react v0.552.0 - ISC
821
+ * @license lucide-react v0.562.0 - ISC
822
822
  *
823
823
  * This source code is licensed under the ISC license.
824
824
  * See the LICENSE file in the root directory of this source tree.
@@ -835,7 +835,7 @@ const __iconNode$2 = [
835
835
  const Trash2 = createLucideIcon("trash-2", __iconNode$2);
836
836
 
837
837
  /**
838
- * @license lucide-react v0.552.0 - ISC
838
+ * @license lucide-react v0.562.0 - ISC
839
839
  *
840
840
  * This source code is licensed under the ISC license.
841
841
  * See the LICENSE file in the root directory of this source tree.
@@ -854,7 +854,7 @@ const __iconNode$1 = [
854
854
  const WifiOff = createLucideIcon("wifi-off", __iconNode$1);
855
855
 
856
856
  /**
857
- * @license lucide-react v0.552.0 - ISC
857
+ * @license lucide-react v0.562.0 - ISC
858
858
  *
859
859
  * This source code is licensed under the ISC license.
860
860
  * See the LICENSE file in the root directory of this source tree.
@@ -3982,11 +3982,11 @@ NeoInputField.displayName = 'NeoInputField';
3982
3982
  // Size configuration for consistent styling
3983
3983
  const sizeConfig = {
3984
3984
  small: {
3985
- height: 36,
3986
- paddingTop: spacing.spacing_1,
3987
- paddingRight: spacing.spacing_1_1_4,
3988
- paddingBottom: spacing.spacing_1,
3989
- paddingLeft: spacing.spacing_1_1_4,
3985
+ height: spacing.spacing_3_1_2,
3986
+ paddingTop: 1,
3987
+ paddingRight: spacing.spacing_3_4,
3988
+ paddingBottom: 1,
3989
+ paddingLeft: spacing.spacing_3_4,
3990
3990
  gap: spacing.spacing_1,
3991
3991
  iconSize: typography.fontSize.h4,
3992
3992
  fontSize: typography.fontSize.sm,
@@ -3994,10 +3994,10 @@ const sizeConfig = {
3994
3994
  },
3995
3995
  medium: {
3996
3996
  height: spacing.spacing_5,
3997
- paddingTop: spacing.spacing_1,
3998
- paddingRight: spacing.spacing_1_1_4,
3999
- paddingBottom: spacing.spacing_1,
4000
- paddingLeft: spacing.spacing_1,
3997
+ paddingTop: 1,
3998
+ paddingRight: spacing.spacing_3_4,
3999
+ paddingBottom: 1,
4000
+ paddingLeft: spacing.spacing_3_4,
4001
4001
  gap: spacing.spacing_1,
4002
4002
  iconSize: typography.fontSize.h4,
4003
4003
  fontSize: typography.fontSize.default,
@@ -4005,10 +4005,10 @@ const sizeConfig = {
4005
4005
  },
4006
4006
  large: {
4007
4007
  height: spacing.spacing_6,
4008
- paddingTop: spacing.spacing_1,
4009
- paddingRight: spacing.spacing_1_1_4,
4010
- paddingBottom: spacing.spacing_1,
4011
- paddingLeft: spacing.spacing_1_1_4,
4008
+ paddingTop: 1,
4009
+ paddingRight: spacing.spacing_3_4,
4010
+ paddingBottom: 1,
4011
+ paddingLeft: spacing.spacing_3_4,
4012
4012
  gap: spacing.spacing_1_1_2,
4013
4013
  iconSize: typography.fontSize.h2,
4014
4014
  fontSize: typography.fontSize.default,
@@ -4017,10 +4017,10 @@ const sizeConfig = {
4017
4017
  },
4018
4018
  xlarge: {
4019
4019
  height: spacing.spacing_8,
4020
- paddingTop: spacing.spacing_1,
4021
- paddingRight: spacing.spacing_1_1_4,
4022
- paddingBottom: spacing.spacing_1,
4023
- paddingLeft: spacing.spacing_1_1_4,
4020
+ paddingTop: 1,
4021
+ paddingRight: spacing.spacing_3_4,
4022
+ paddingBottom: 1,
4023
+ paddingLeft: spacing.spacing_3_4,
4024
4024
  gap: spacing.spacing_2,
4025
4025
  iconSize: typography.fontSize.h2,
4026
4026
  fontSize: typography.fontSize.default,
@@ -4029,10 +4029,10 @@ const sizeConfig = {
4029
4029
  },
4030
4030
  xxlarge: {
4031
4031
  height: spacing.spacing_10,
4032
- paddingTop: spacing.spacing_1,
4033
- paddingRight: spacing.spacing_1_1_2,
4034
- paddingBottom: spacing.spacing_1,
4035
- paddingLeft: spacing.spacing_1_1_2,
4032
+ paddingTop: 1,
4033
+ paddingRight: spacing.spacing_3_4,
4034
+ paddingBottom: 1,
4035
+ paddingLeft: spacing.spacing_3_4,
4036
4036
  gap: spacing.spacing_2,
4037
4037
  iconSize: spacing.spacing_5,
4038
4038
  fontSize: typography.fontSize.h5,
@@ -4077,10 +4077,17 @@ const StyledListItemButton$1 = styled(ListItemButton, {
4077
4077
  }),
4078
4078
  },
4079
4079
  // Primary text styling
4080
+ // Font weight varies by size per Figma:
4081
+ // - Default: small/medium use 400, large/xlarge/xxlarge use 500
4082
+ // - Link: xxlarge uses 600, others use their default weight
4080
4083
  '& .list-item-primary': {
4081
4084
  fontSize: theme.typography.pxToRem(config.fontSize),
4082
4085
  lineHeight: config.lineHeight,
4083
- fontWeight: typography.fontWeight.medium,
4086
+ fontWeight: isLink && size === 'xxlarge'
4087
+ ? typography.fontWeight.semiBold
4088
+ : size === 'small' || size === 'medium'
4089
+ ? typography.fontWeight.regular
4090
+ : typography.fontWeight.medium,
4084
4091
  color: isLink
4085
4092
  ? semanticColors.typography.link.primary
4086
4093
  : semanticColors.typography.navigation.default,
@@ -4112,6 +4119,9 @@ const StyledListItemButton$1 = styled(ListItemButton, {
4112
4119
  backgroundColor: semanticColors.input.background,
4113
4120
  },
4114
4121
  // Selected/Active state
4122
+ // Font weights per Figma:
4123
+ // - Primary: small/medium/xxlarge use 500, large/xlarge use 600
4124
+ // - Secondary: large/xlarge use 500, xxlarge uses 400
4115
4125
  [`&.${listItemButtonClasses.selected}`]: {
4116
4126
  backgroundColor: semanticColors.buttons.secondary.hoverBackground,
4117
4127
  '&:hover': {
@@ -4121,11 +4131,15 @@ const StyledListItemButton$1 = styled(ListItemButton, {
4121
4131
  color: semanticColors.icons.pressed,
4122
4132
  },
4123
4133
  '& .list-item-primary': {
4124
- fontWeight: typography.fontWeight.semiBold,
4134
+ fontWeight: size === 'large' || size === 'xlarge'
4135
+ ? typography.fontWeight.semiBold
4136
+ : typography.fontWeight.medium,
4125
4137
  color: semanticColors.typography.navigation.default,
4126
4138
  },
4127
4139
  '& .list-item-secondary': {
4128
- fontWeight: typography.fontWeight.medium,
4140
+ fontWeight: size === 'large' || size === 'xlarge'
4141
+ ? typography.fontWeight.medium
4142
+ : typography.fontWeight.regular,
4129
4143
  },
4130
4144
  },
4131
4145
  // Disabled state
@@ -4313,6 +4327,15 @@ const NeoListItemButton = ({ children, selected = false, disabled = false, ...pr
4313
4327
  };
4314
4328
  NeoListItemButton.displayName = 'NeoListItemButton';
4315
4329
 
4330
+ /**
4331
+ * Focus ring box-shadow using Neo design tokens
4332
+ * Combines focusWhite1 (inner white ring) and focusBlue2 (outer blue ring)
4333
+ */
4334
+ const focusRingShadow = `${shadows.focusWhite1.x}px ${shadows.focusWhite1.y}px ${shadows.focusWhite1.blur}px ${shadows.focusWhite1.spread}px ${shadows.focusWhite1.shadow}, ${shadows.focusBlue2.x}px ${shadows.focusBlue2.y}px ${shadows.focusBlue2.blur}px ${shadows.focusBlue2.spread}px ${shadows.focusBlue2.shadow}`;
4335
+ /**
4336
+ * Card box-shadow using Neo design tokens for hover and selected states
4337
+ */
4338
+ const activeShadow = `${shadows.card.x}px ${shadows.card.y}px ${shadows.card.blur}px ${shadows.card.spread}px ${shadows.card.shadow}`;
4316
4339
  /**
4317
4340
  * Styled Card component with Neo design tokens
4318
4341
  */
@@ -4328,16 +4351,17 @@ const StyledCard = styled(MuiCard, {
4328
4351
  backgroundColor: semanticColors.surfaces.card,
4329
4352
  border: `1px solid ${selected ? semanticColors.border.tabActive : semanticColors.border.card}`,
4330
4353
  borderRadius: theme.typography.pxToRem(4),
4331
- boxShadow: 'none',
4332
- transition: theme.transitions.create(['border-color']),
4354
+ boxShadow: selected ? activeShadow : 'none',
4355
+ transition: theme.transitions.create(['border-color', 'background-color', 'box-shadow']),
4333
4356
  cursor: 'pointer',
4334
4357
  '&:hover': {
4335
- borderColor: selected ? semanticColors.border.tabActive : semanticColors.border.card,
4358
+ borderColor: semanticColors.border.tabActive,
4359
+ boxShadow: activeShadow,
4336
4360
  },
4337
4361
  '&:focus-visible': {
4338
- outline: `2px solid ${semanticColors.border.tabActive}`,
4339
- outlineOffset: '2px',
4340
4362
  borderColor: semanticColors.border.tabActive,
4363
+ boxShadow: focusRingShadow,
4364
+ outline: 'none',
4341
4365
  },
4342
4366
  ...(disabled && {
4343
4367
  opacity: 0.5,
@@ -4403,6 +4427,11 @@ const Description = styled('p')(({ theme }) => ({
4403
4427
  lineHeight: 1.5,
4404
4428
  color: colors.grey[800],
4405
4429
  width: '100%',
4430
+ display: '-webkit-box',
4431
+ WebkitLineClamp: 2,
4432
+ WebkitBoxOrient: 'vertical',
4433
+ overflow: 'hidden',
4434
+ textOverflow: 'ellipsis',
4406
4435
  }));
4407
4436
  /**
4408
4437
  * NeoMarketplaceCard - Selectable card component for marketplace items
@@ -4432,9 +4461,12 @@ const Description = styled('p')(({ theme }) => ({
4432
4461
  * - Property 1="Default" → Base state (no props)
4433
4462
  *
4434
4463
  * Design Tokens Used:
4435
- * - semanticColors.surfaces.card (#FFFFFF) - Card background
4464
+ * - semanticColors.surfaces.card (#FFFFFF) - Default card background
4465
+ * - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
4436
4466
  * - semanticColors.border.card (#d1d5db) - Default border
4437
4467
  * - semanticColors.border.tabActive (#2f42ff) - Active/focused border
4468
+ * - shadows.focusWhite1 - Inner white focus ring (2px spread)
4469
+ * - shadows.focusBlue2 - Outer blue focus ring (4px spread)
4438
4470
  * - colors.grey[800] (#1F2937) - Text color
4439
4471
  * - typography.fontSize.xxs (10px) - Recipe count
4440
4472
  * - typography.fontSize.xs (12px) - Description
@@ -4826,7 +4858,19 @@ function NeoPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky = fal
4826
4858
  pb: `${spacing.spacing_2_1_2}px`,
4827
4859
  height: '100%',
4828
4860
  overflow: 'auto',
4829
- }, children: [sticky ? (jsx(StickyHeader, { ref: headerRef, sx: { pt: `${spacing.spacing_2}px` }, children: headerContent })) : (jsx(Box, { ref: headerRef, sx: { mb: `${spacing.spacing_1}px` }, children: headerContent })), jsx(Box, { sx: {
4861
+ }, children: [sticky ? (jsx(StickyHeader, { ref: headerRef, sx: {
4862
+ pt: `${spacing.spacing_2}px`,
4863
+ ...(contentMaxWidth !== false && {
4864
+ maxWidth: theme => theme.breakpoints.values[contentMaxWidth],
4865
+ width: '100%',
4866
+ }),
4867
+ }, children: headerContent })) : (jsx(Box, { ref: headerRef, sx: {
4868
+ mb: `${spacing.spacing_1}px`,
4869
+ ...(contentMaxWidth !== false && {
4870
+ maxWidth: theme => theme.breakpoints.values[contentMaxWidth],
4871
+ width: '100%',
4872
+ }),
4873
+ }, children: headerContent })), jsx(Box, { sx: {
4830
4874
  flexGrow: 1,
4831
4875
  minHeight: 0,
4832
4876
  display: 'flex',
@@ -5664,10 +5708,10 @@ const NeoToastButton = ({ primary, variant = 'default', children, ...props }) =>
5664
5708
  NeoToast.displayName = 'NeoToast';
5665
5709
  NeoToastButton.displayName = 'NeoToastButton';
5666
5710
 
5667
- const ToggleContainer = styled('label')(({ disabled }) => ({
5711
+ const ToggleContainer = styled('label')(({ disabled, size = 'medium' }) => ({
5668
5712
  display: 'inline-flex',
5669
5713
  alignItems: 'flex-start',
5670
- gap: 12,
5714
+ gap: size === 'small' ? 8 : 12,
5671
5715
  cursor: disabled ? 'not-allowed' : 'pointer',
5672
5716
  userSelect: 'none',
5673
5717
  }));
@@ -5819,7 +5863,7 @@ const NeoToggle = ({ size = 'medium', label, helperText, disabled, ...props }) =
5819
5863
  return jsx(StyledSwitch, { size: size, disabled: disabled, ...props });
5820
5864
  }
5821
5865
  // With label, wrap in container for proper layout
5822
- return (jsxs(ToggleContainer, { disabled: disabled, children: [jsx(StyledSwitch, { size: size, disabled: disabled, ...props }), jsxs(LabelContainer, { children: [label && jsx(Label, { size: size, children: label }), helperText && jsx(HelperText, { size: size, children: helperText })] })] }));
5866
+ return (jsxs(ToggleContainer, { disabled: disabled, size: size, children: [jsx(StyledSwitch, { size: size, disabled: disabled, ...props }), jsxs(LabelContainer, { children: [label && jsx(Label, { size: size, children: label }), helperText && jsx(HelperText, { size: size, children: helperText })] })] }));
5823
5867
  };
5824
5868
  NeoToggle.displayName = 'NeoToggle';
5825
5869