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

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.js CHANGED
@@ -501,7 +501,7 @@ const NeoActivityIndicatorCell = ({ event = 'commit-job', secondaryEvent, scene
501
501
  NeoActivityIndicatorCell.displayName = 'NeoActivityIndicatorCell';
502
502
 
503
503
  /**
504
- * @license lucide-react v0.552.0 - ISC
504
+ * @license lucide-react v0.562.0 - ISC
505
505
  *
506
506
  * This source code is licensed under the ISC license.
507
507
  * See the LICENSE file in the root directory of this source tree.
@@ -528,7 +528,7 @@ const hasA11yProp = (props) => {
528
528
  };
529
529
 
530
530
  /**
531
- * @license lucide-react v0.552.0 - ISC
531
+ * @license lucide-react v0.562.0 - ISC
532
532
  *
533
533
  * This source code is licensed under the ISC license.
534
534
  * See the LICENSE file in the root directory of this source tree.
@@ -547,7 +547,7 @@ var defaultAttributes = {
547
547
  };
548
548
 
549
549
  /**
550
- * @license lucide-react v0.552.0 - ISC
550
+ * @license lucide-react v0.562.0 - ISC
551
551
  *
552
552
  * This source code is licensed under the ISC license.
553
553
  * See the LICENSE file in the root directory of this source tree.
@@ -585,7 +585,7 @@ const Icon = react.forwardRef(
585
585
  );
586
586
 
587
587
  /**
588
- * @license lucide-react v0.552.0 - ISC
588
+ * @license lucide-react v0.562.0 - ISC
589
589
  *
590
590
  * This source code is licensed under the ISC license.
591
591
  * See the LICENSE file in the root directory of this source tree.
@@ -610,7 +610,7 @@ const createLucideIcon = (iconName, iconNode) => {
610
610
  };
611
611
 
612
612
  /**
613
- * @license lucide-react v0.552.0 - ISC
613
+ * @license lucide-react v0.562.0 - ISC
614
614
  *
615
615
  * This source code is licensed under the ISC license.
616
616
  * See the LICENSE file in the root directory of this source tree.
@@ -624,7 +624,7 @@ const __iconNode$h = [
624
624
  const ArrowDown = createLucideIcon("arrow-down", __iconNode$h);
625
625
 
626
626
  /**
627
- * @license lucide-react v0.552.0 - ISC
627
+ * @license lucide-react v0.562.0 - ISC
628
628
  *
629
629
  * This source code is licensed under the ISC license.
630
630
  * See the LICENSE file in the root directory of this source tree.
@@ -638,7 +638,7 @@ const __iconNode$g = [
638
638
  const ArrowUp = createLucideIcon("arrow-up", __iconNode$g);
639
639
 
640
640
  /**
641
- * @license lucide-react v0.552.0 - ISC
641
+ * @license lucide-react v0.562.0 - ISC
642
642
  *
643
643
  * This source code is licensed under the ISC license.
644
644
  * See the LICENSE file in the root directory of this source tree.
@@ -660,7 +660,7 @@ const __iconNode$f = [
660
660
  const CalendarDays = createLucideIcon("calendar-days", __iconNode$f);
661
661
 
662
662
  /**
663
- * @license lucide-react v0.552.0 - ISC
663
+ * @license lucide-react v0.562.0 - ISC
664
664
  *
665
665
  * This source code is licensed under the ISC license.
666
666
  * See the LICENSE file in the root directory of this source tree.
@@ -671,7 +671,7 @@ const __iconNode$e = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
671
671
  const ChevronDown = createLucideIcon("chevron-down", __iconNode$e);
672
672
 
673
673
  /**
674
- * @license lucide-react v0.552.0 - ISC
674
+ * @license lucide-react v0.562.0 - ISC
675
675
  *
676
676
  * This source code is licensed under the ISC license.
677
677
  * See the LICENSE file in the root directory of this source tree.
@@ -682,7 +682,7 @@ const __iconNode$d = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
682
682
  const ChevronLeft = createLucideIcon("chevron-left", __iconNode$d);
683
683
 
684
684
  /**
685
- * @license lucide-react v0.552.0 - ISC
685
+ * @license lucide-react v0.562.0 - ISC
686
686
  *
687
687
  * This source code is licensed under the ISC license.
688
688
  * See the LICENSE file in the root directory of this source tree.
@@ -693,7 +693,7 @@ const __iconNode$c = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
693
693
  const ChevronRight = createLucideIcon("chevron-right", __iconNode$c);
694
694
 
695
695
  /**
696
- * @license lucide-react v0.552.0 - ISC
696
+ * @license lucide-react v0.562.0 - ISC
697
697
  *
698
698
  * This source code is licensed under the ISC license.
699
699
  * See the LICENSE file in the root directory of this source tree.
@@ -704,7 +704,7 @@ const __iconNode$b = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
704
704
  const ChevronUp = createLucideIcon("chevron-up", __iconNode$b);
705
705
 
706
706
  /**
707
- * @license lucide-react v0.552.0 - ISC
707
+ * @license lucide-react v0.562.0 - ISC
708
708
  *
709
709
  * This source code is licensed under the ISC license.
710
710
  * See the LICENSE file in the root directory of this source tree.
@@ -718,7 +718,7 @@ const __iconNode$a = [
718
718
  const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$a);
719
719
 
720
720
  /**
721
- * @license lucide-react v0.552.0 - ISC
721
+ * @license lucide-react v0.562.0 - ISC
722
722
  *
723
723
  * This source code is licensed under the ISC license.
724
724
  * See the LICENSE file in the root directory of this source tree.
@@ -733,7 +733,7 @@ const __iconNode$9 = [
733
733
  const CircleAlert = createLucideIcon("circle-alert", __iconNode$9);
734
734
 
735
735
  /**
736
- * @license lucide-react v0.552.0 - ISC
736
+ * @license lucide-react v0.562.0 - ISC
737
737
  *
738
738
  * This source code is licensed under the ISC license.
739
739
  * See the LICENSE file in the root directory of this source tree.
@@ -747,7 +747,7 @@ const __iconNode$8 = [
747
747
  const CircleCheck = createLucideIcon("circle-check", __iconNode$8);
748
748
 
749
749
  /**
750
- * @license lucide-react v0.552.0 - ISC
750
+ * @license lucide-react v0.562.0 - ISC
751
751
  *
752
752
  * This source code is licensed under the ISC license.
753
753
  * See the LICENSE file in the root directory of this source tree.
@@ -762,7 +762,7 @@ const __iconNode$7 = [
762
762
  const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode$7);
763
763
 
764
764
  /**
765
- * @license lucide-react v0.552.0 - ISC
765
+ * @license lucide-react v0.562.0 - ISC
766
766
  *
767
767
  * This source code is licensed under the ISC license.
768
768
  * See the LICENSE file in the root directory of this source tree.
@@ -777,7 +777,7 @@ const __iconNode$6 = [
777
777
  const Columns3 = createLucideIcon("columns-3", __iconNode$6);
778
778
 
779
779
  /**
780
- * @license lucide-react v0.552.0 - ISC
780
+ * @license lucide-react v0.562.0 - ISC
781
781
  *
782
782
  * This source code is licensed under the ISC license.
783
783
  * See the LICENSE file in the root directory of this source tree.
@@ -792,7 +792,7 @@ const __iconNode$5 = [
792
792
  const ListFilter = createLucideIcon("list-filter", __iconNode$5);
793
793
 
794
794
  /**
795
- * @license lucide-react v0.552.0 - ISC
795
+ * @license lucide-react v0.562.0 - ISC
796
796
  *
797
797
  * This source code is licensed under the ISC license.
798
798
  * See the LICENSE file in the root directory of this source tree.
@@ -806,7 +806,7 @@ const __iconNode$4 = [
806
806
  const Plus = createLucideIcon("plus", __iconNode$4);
807
807
 
808
808
  /**
809
- * @license lucide-react v0.552.0 - ISC
809
+ * @license lucide-react v0.562.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$3 = [
820
820
  const Search = createLucideIcon("search", __iconNode$3);
821
821
 
822
822
  /**
823
- * @license lucide-react v0.552.0 - ISC
823
+ * @license lucide-react v0.562.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.
@@ -837,7 +837,7 @@ const __iconNode$2 = [
837
837
  const Trash2 = createLucideIcon("trash-2", __iconNode$2);
838
838
 
839
839
  /**
840
- * @license lucide-react v0.552.0 - ISC
840
+ * @license lucide-react v0.562.0 - ISC
841
841
  *
842
842
  * This source code is licensed under the ISC license.
843
843
  * See the LICENSE file in the root directory of this source tree.
@@ -856,7 +856,7 @@ const __iconNode$1 = [
856
856
  const WifiOff = createLucideIcon("wifi-off", __iconNode$1);
857
857
 
858
858
  /**
859
- * @license lucide-react v0.552.0 - ISC
859
+ * @license lucide-react v0.562.0 - ISC
860
860
  *
861
861
  * This source code is licensed under the ISC license.
862
862
  * See the LICENSE file in the root directory of this source tree.
@@ -3984,11 +3984,11 @@ NeoInputField.displayName = 'NeoInputField';
3984
3984
  // Size configuration for consistent styling
3985
3985
  const sizeConfig = {
3986
3986
  small: {
3987
- height: 36,
3988
- paddingTop: neoDesign.spacing.spacing_1,
3989
- paddingRight: neoDesign.spacing.spacing_1_1_4,
3990
- paddingBottom: neoDesign.spacing.spacing_1,
3991
- paddingLeft: neoDesign.spacing.spacing_1_1_4,
3987
+ height: neoDesign.spacing.spacing_3_1_2,
3988
+ paddingTop: 1,
3989
+ paddingRight: neoDesign.spacing.spacing_3_4,
3990
+ paddingBottom: 1,
3991
+ paddingLeft: neoDesign.spacing.spacing_3_4,
3992
3992
  gap: neoDesign.spacing.spacing_1,
3993
3993
  iconSize: neoDesign.typography.fontSize.h4,
3994
3994
  fontSize: neoDesign.typography.fontSize.sm,
@@ -3996,10 +3996,10 @@ const sizeConfig = {
3996
3996
  },
3997
3997
  medium: {
3998
3998
  height: neoDesign.spacing.spacing_5,
3999
- paddingTop: neoDesign.spacing.spacing_1,
4000
- paddingRight: neoDesign.spacing.spacing_1_1_4,
4001
- paddingBottom: neoDesign.spacing.spacing_1,
4002
- paddingLeft: neoDesign.spacing.spacing_1,
3999
+ paddingTop: 1,
4000
+ paddingRight: neoDesign.spacing.spacing_3_4,
4001
+ paddingBottom: 1,
4002
+ paddingLeft: neoDesign.spacing.spacing_3_4,
4003
4003
  gap: neoDesign.spacing.spacing_1,
4004
4004
  iconSize: neoDesign.typography.fontSize.h4,
4005
4005
  fontSize: neoDesign.typography.fontSize.default,
@@ -4007,10 +4007,10 @@ const sizeConfig = {
4007
4007
  },
4008
4008
  large: {
4009
4009
  height: neoDesign.spacing.spacing_6,
4010
- paddingTop: neoDesign.spacing.spacing_1,
4011
- paddingRight: neoDesign.spacing.spacing_1_1_4,
4012
- paddingBottom: neoDesign.spacing.spacing_1,
4013
- paddingLeft: neoDesign.spacing.spacing_1_1_4,
4010
+ paddingTop: 1,
4011
+ paddingRight: neoDesign.spacing.spacing_3_4,
4012
+ paddingBottom: 1,
4013
+ paddingLeft: neoDesign.spacing.spacing_3_4,
4014
4014
  gap: neoDesign.spacing.spacing_1_1_2,
4015
4015
  iconSize: neoDesign.typography.fontSize.h2,
4016
4016
  fontSize: neoDesign.typography.fontSize.default,
@@ -4019,10 +4019,10 @@ const sizeConfig = {
4019
4019
  },
4020
4020
  xlarge: {
4021
4021
  height: neoDesign.spacing.spacing_8,
4022
- paddingTop: neoDesign.spacing.spacing_1,
4023
- paddingRight: neoDesign.spacing.spacing_1_1_4,
4024
- paddingBottom: neoDesign.spacing.spacing_1,
4025
- paddingLeft: neoDesign.spacing.spacing_1_1_4,
4022
+ paddingTop: 1,
4023
+ paddingRight: neoDesign.spacing.spacing_3_4,
4024
+ paddingBottom: 1,
4025
+ paddingLeft: neoDesign.spacing.spacing_3_4,
4026
4026
  gap: neoDesign.spacing.spacing_2,
4027
4027
  iconSize: neoDesign.typography.fontSize.h2,
4028
4028
  fontSize: neoDesign.typography.fontSize.default,
@@ -4031,10 +4031,10 @@ const sizeConfig = {
4031
4031
  },
4032
4032
  xxlarge: {
4033
4033
  height: neoDesign.spacing.spacing_10,
4034
- paddingTop: neoDesign.spacing.spacing_1,
4035
- paddingRight: neoDesign.spacing.spacing_1_1_2,
4036
- paddingBottom: neoDesign.spacing.spacing_1,
4037
- paddingLeft: neoDesign.spacing.spacing_1_1_2,
4034
+ paddingTop: 1,
4035
+ paddingRight: neoDesign.spacing.spacing_3_4,
4036
+ paddingBottom: 1,
4037
+ paddingLeft: neoDesign.spacing.spacing_3_4,
4038
4038
  gap: neoDesign.spacing.spacing_2,
4039
4039
  iconSize: neoDesign.spacing.spacing_5,
4040
4040
  fontSize: neoDesign.typography.fontSize.h5,
@@ -4079,10 +4079,17 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
4079
4079
  }),
4080
4080
  },
4081
4081
  // Primary text styling
4082
+ // Font weight varies by size per Figma:
4083
+ // - Default: small/medium use 400, large/xlarge/xxlarge use 500
4084
+ // - Link: xxlarge uses 600, others use their default weight
4082
4085
  '& .list-item-primary': {
4083
4086
  fontSize: theme.typography.pxToRem(config.fontSize),
4084
4087
  lineHeight: config.lineHeight,
4085
- fontWeight: neoDesign.typography.fontWeight.medium,
4088
+ fontWeight: isLink && size === 'xxlarge'
4089
+ ? neoDesign.typography.fontWeight.semiBold
4090
+ : size === 'small' || size === 'medium'
4091
+ ? neoDesign.typography.fontWeight.regular
4092
+ : neoDesign.typography.fontWeight.medium,
4086
4093
  color: isLink
4087
4094
  ? neoDesign.semanticColors.typography.link.primary
4088
4095
  : neoDesign.semanticColors.typography.navigation.default,
@@ -4114,6 +4121,9 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
4114
4121
  backgroundColor: neoDesign.semanticColors.input.background,
4115
4122
  },
4116
4123
  // Selected/Active state
4124
+ // Font weights per Figma:
4125
+ // - Primary: small/medium/xxlarge use 500, large/xlarge use 600
4126
+ // - Secondary: large/xlarge use 500, xxlarge uses 400
4117
4127
  [`&.${ListItemButton.listItemButtonClasses.selected}`]: {
4118
4128
  backgroundColor: neoDesign.semanticColors.buttons.secondary.hoverBackground,
4119
4129
  '&:hover': {
@@ -4123,11 +4133,15 @@ const StyledListItemButton$1 = styles.styled(ListItemButton, {
4123
4133
  color: neoDesign.semanticColors.icons.pressed,
4124
4134
  },
4125
4135
  '& .list-item-primary': {
4126
- fontWeight: neoDesign.typography.fontWeight.semiBold,
4136
+ fontWeight: size === 'large' || size === 'xlarge'
4137
+ ? neoDesign.typography.fontWeight.semiBold
4138
+ : neoDesign.typography.fontWeight.medium,
4127
4139
  color: neoDesign.semanticColors.typography.navigation.default,
4128
4140
  },
4129
4141
  '& .list-item-secondary': {
4130
- fontWeight: neoDesign.typography.fontWeight.medium,
4142
+ fontWeight: size === 'large' || size === 'xlarge'
4143
+ ? neoDesign.typography.fontWeight.medium
4144
+ : neoDesign.typography.fontWeight.regular,
4131
4145
  },
4132
4146
  },
4133
4147
  // Disabled state
@@ -4315,6 +4329,11 @@ const NeoListItemButton = ({ children, selected = false, disabled = false, ...pr
4315
4329
  };
4316
4330
  NeoListItemButton.displayName = 'NeoListItemButton';
4317
4331
 
4332
+ /**
4333
+ * Focus ring box-shadow using Neo design tokens
4334
+ * Combines focusWhite1 (inner white ring) and focusBlue2 (outer blue ring)
4335
+ */
4336
+ const focusRingShadow = `${neoDesign.shadows.focusWhite1.x}px ${neoDesign.shadows.focusWhite1.y}px ${neoDesign.shadows.focusWhite1.blur}px ${neoDesign.shadows.focusWhite1.spread}px ${neoDesign.shadows.focusWhite1.shadow}, ${neoDesign.shadows.focusBlue2.x}px ${neoDesign.shadows.focusBlue2.y}px ${neoDesign.shadows.focusBlue2.blur}px ${neoDesign.shadows.focusBlue2.spread}px ${neoDesign.shadows.focusBlue2.shadow}`;
4318
4337
  /**
4319
4338
  * Styled Card component with Neo design tokens
4320
4339
  */
@@ -4327,19 +4346,20 @@ const StyledCard = styles.styled(MuiCard, {
4327
4346
  display: 'flex',
4328
4347
  flexDirection: 'column',
4329
4348
  gap: theme.spacing(2), // 16px
4330
- backgroundColor: neoDesign.semanticColors.surfaces.card,
4349
+ backgroundColor: selected ? neoDesign.semanticColors.status.info.light : neoDesign.semanticColors.surfaces.card,
4331
4350
  border: `1px solid ${selected ? neoDesign.semanticColors.border.tabActive : neoDesign.semanticColors.border.card}`,
4332
4351
  borderRadius: theme.typography.pxToRem(4),
4333
4352
  boxShadow: 'none',
4334
- transition: theme.transitions.create(['border-color']),
4353
+ transition: theme.transitions.create(['border-color', 'background-color', 'box-shadow']),
4335
4354
  cursor: 'pointer',
4336
4355
  '&:hover': {
4337
4356
  borderColor: selected ? neoDesign.semanticColors.border.tabActive : neoDesign.semanticColors.border.card,
4338
4357
  },
4339
4358
  '&:focus-visible': {
4340
- outline: `2px solid ${neoDesign.semanticColors.border.tabActive}`,
4341
- outlineOffset: '2px',
4359
+ backgroundColor: neoDesign.semanticColors.status.info.light,
4342
4360
  borderColor: neoDesign.semanticColors.border.tabActive,
4361
+ boxShadow: focusRingShadow,
4362
+ outline: 'none',
4343
4363
  },
4344
4364
  ...(disabled && {
4345
4365
  opacity: 0.5,
@@ -4434,9 +4454,12 @@ const Description = styles.styled('p')(({ theme }) => ({
4434
4454
  * - Property 1="Default" → Base state (no props)
4435
4455
  *
4436
4456
  * Design Tokens Used:
4437
- * - semanticColors.surfaces.card (#FFFFFF) - Card background
4457
+ * - semanticColors.surfaces.card (#FFFFFF) - Default card background
4458
+ * - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
4438
4459
  * - semanticColors.border.card (#d1d5db) - Default border
4439
4460
  * - semanticColors.border.tabActive (#2f42ff) - Active/focused border
4461
+ * - shadows.focusWhite1 - Inner white focus ring (2px spread)
4462
+ * - shadows.focusBlue2 - Outer blue focus ring (4px spread)
4440
4463
  * - colors.grey[800] (#1F2937) - Text color
4441
4464
  * - typography.fontSize.xxs (10px) - Recipe count
4442
4465
  * - typography.fontSize.xs (12px) - Description
@@ -4828,7 +4851,19 @@ function NeoPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky = fal
4828
4851
  pb: `${neoDesign.spacing.spacing_2_1_2}px`,
4829
4852
  height: '100%',
4830
4853
  overflow: 'auto',
4831
- }, children: [sticky ? (jsxRuntime.jsx(StickyHeader, { ref: headerRef, sx: { pt: `${neoDesign.spacing.spacing_2}px` }, children: headerContent })) : (jsxRuntime.jsx(Box, { ref: headerRef, sx: { mb: `${neoDesign.spacing.spacing_1}px` }, children: headerContent })), jsxRuntime.jsx(Box, { sx: {
4854
+ }, children: [sticky ? (jsxRuntime.jsx(StickyHeader, { ref: headerRef, sx: {
4855
+ pt: `${neoDesign.spacing.spacing_2}px`,
4856
+ ...(contentMaxWidth !== false && {
4857
+ maxWidth: theme => theme.breakpoints.values[contentMaxWidth],
4858
+ width: '100%',
4859
+ }),
4860
+ }, children: headerContent })) : (jsxRuntime.jsx(Box, { ref: headerRef, sx: {
4861
+ mb: `${neoDesign.spacing.spacing_1}px`,
4862
+ ...(contentMaxWidth !== false && {
4863
+ maxWidth: theme => theme.breakpoints.values[contentMaxWidth],
4864
+ width: '100%',
4865
+ }),
4866
+ }, children: headerContent })), jsxRuntime.jsx(Box, { sx: {
4832
4867
  flexGrow: 1,
4833
4868
  minHeight: 0,
4834
4869
  display: 'flex',