@ornikar/kitt-universal 27.0.1-canary.01819bc93ab006bfbaa4e1335cd8afa2380068a0.0 → 27.0.1-canary.e2bc67122aa41f65986d23f21317b442b05d8963.0

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 (70) hide show
  1. package/CHANGELOG.md +3 -13
  2. package/dist/definitions/Button/AnimatedContainer.d.ts +2 -1
  3. package/dist/definitions/Button/AnimatedContainer.d.ts.map +1 -1
  4. package/dist/definitions/Button/Button.d.ts +2 -17
  5. package/dist/definitions/Button/Button.d.ts.map +1 -1
  6. package/dist/definitions/Button/ButtonContent.d.ts +10 -8
  7. package/dist/definitions/Button/ButtonContent.d.ts.map +1 -1
  8. package/dist/definitions/Button/ButtonPadding.d.ts +1 -1
  9. package/dist/definitions/Button/ButtonPadding.d.ts.map +1 -1
  10. package/dist/definitions/Button/FocusBorder.d.ts +1 -4
  11. package/dist/definitions/Button/FocusBorder.d.ts.map +1 -1
  12. package/dist/definitions/Button/hooks/useNativeAnimation.d.ts +1 -1
  13. package/dist/definitions/Button/hooks/useNativeAnimation.d.ts.map +1 -1
  14. package/dist/definitions/Button/utils/getButtonTextColorByType.d.ts +12 -3
  15. package/dist/definitions/Button/utils/getButtonTextColorByType.d.ts.map +1 -1
  16. package/dist/definitions/Button/utils/getCurrentBackgroundColorForNativeBaseTheme.d.ts +3 -2
  17. package/dist/definitions/Button/utils/getCurrentBackgroundColorForNativeBaseTheme.d.ts.map +1 -1
  18. package/dist/definitions/ButtonBadge/ButtonBadge.d.ts +2 -1
  19. package/dist/definitions/ButtonBadge/ButtonBadge.d.ts.map +1 -1
  20. package/dist/definitions/native-base/KittNativeBaseProvider.d.ts +30 -23
  21. package/dist/definitions/native-base/KittNativeBaseProvider.d.ts.map +1 -1
  22. package/dist/definitions/story-components/StoryBlock.d.ts +1 -1
  23. package/dist/definitions/themes/late-ocean/button.d.ts +26 -52
  24. package/dist/definitions/themes/late-ocean/button.d.ts.map +1 -1
  25. package/dist/definitions/themes/late-ocean/buttonBadge.d.ts +4 -1
  26. package/dist/definitions/themes/late-ocean/buttonBadge.d.ts.map +1 -1
  27. package/dist/definitions/themes/late-ocean/iconButton.d.ts +0 -1
  28. package/dist/definitions/themes/late-ocean/iconButton.d.ts.map +1 -1
  29. package/dist/definitions/typography/Typography.d.ts +7 -19
  30. package/dist/definitions/typography/Typography.d.ts.map +1 -1
  31. package/dist/index-metro.es.android.js +238 -306
  32. package/dist/index-metro.es.android.js.map +1 -1
  33. package/dist/index-metro.es.ios.js +238 -306
  34. package/dist/index-metro.es.ios.js.map +1 -1
  35. package/dist/index-node-22.17.cjs.js +232 -300
  36. package/dist/index-node-22.17.cjs.js.map +1 -1
  37. package/dist/index-node-22.17.cjs.web.js +231 -284
  38. package/dist/index-node-22.17.cjs.web.js.map +1 -1
  39. package/dist/index-node-22.17.es.mjs +232 -300
  40. package/dist/index-node-22.17.es.mjs.map +1 -1
  41. package/dist/index-node-22.17.es.web.mjs +231 -284
  42. package/dist/index-node-22.17.es.web.mjs.map +1 -1
  43. package/dist/index.es.js +352 -414
  44. package/dist/index.es.js.map +1 -1
  45. package/dist/index.es.web.js +322 -370
  46. package/dist/index.es.web.js.map +1 -1
  47. package/dist/linaria-themes-metro.es.android.js +130 -116
  48. package/dist/linaria-themes-metro.es.android.js.map +1 -1
  49. package/dist/linaria-themes-metro.es.ios.js +130 -116
  50. package/dist/linaria-themes-metro.es.ios.js.map +1 -1
  51. package/dist/linaria-themes-node-22.17.cjs.js +130 -116
  52. package/dist/linaria-themes-node-22.17.cjs.js.map +1 -1
  53. package/dist/linaria-themes-node-22.17.cjs.web.js +130 -116
  54. package/dist/linaria-themes-node-22.17.cjs.web.js.map +1 -1
  55. package/dist/linaria-themes-node-22.17.es.mjs +130 -116
  56. package/dist/linaria-themes-node-22.17.es.mjs.map +1 -1
  57. package/dist/linaria-themes-node-22.17.es.web.mjs +130 -116
  58. package/dist/linaria-themes-node-22.17.es.web.mjs.map +1 -1
  59. package/dist/linaria-themes.es.js +131 -117
  60. package/dist/linaria-themes.es.js.map +1 -1
  61. package/dist/linaria-themes.es.web.js +131 -117
  62. package/dist/linaria-themes.es.web.js.map +1 -1
  63. package/dist/tsbuildinfo +1 -1
  64. package/package.json +28 -28
  65. package/dist/definitions/Button/DisabledBorder.d.ts +0 -3
  66. package/dist/definitions/Button/DisabledBorder.d.ts.map +0 -1
  67. package/dist/definitions/Button/getVariantValuesIfExist.d.ts +0 -5
  68. package/dist/definitions/Button/getVariantValuesIfExist.d.ts.map +0 -1
  69. package/dist/definitions/Button/utils/getButtonSize.d.ts +0 -3
  70. package/dist/definitions/Button/utils/getButtonSize.d.ts.map +0 -1
@@ -541,15 +541,18 @@ const bottomSheet = {
541
541
  }
542
542
  };
543
543
 
544
+ // Strongly typed theme so every new type/variant/size can't be added
545
+ // without defined color & backgroundColor or icon size
546
+
544
547
  const button = {
545
- borderRadius: 30,
548
+ borderRadius: 4,
546
549
  borderWidth: {
547
- disabled: 2,
548
550
  focus: 3
549
551
  },
550
552
  minHeight: 40,
551
553
  minWidth: 40,
552
554
  maxWidth: 335,
555
+ maxHeight: 48,
553
556
  scale: {
554
557
  base: {
555
558
  default: 1,
@@ -560,148 +563,160 @@ const button = {
560
563
  hover: 1.05
561
564
  }
562
565
  },
563
- contentPadding: {
564
- default: '7px 16px 7px',
565
- large: '11px 24px 11px',
566
- xLarge: '15px 24px 15px',
567
- disabled: '5px 14px 5px'
566
+ icon: {
567
+ medium: {
568
+ size: 24
569
+ },
570
+ default: {
571
+ size: 20
572
+ }
568
573
  },
569
574
  padding: {
570
575
  default: {
571
- hasBadge: {
572
- right: 8
573
- },
574
576
  horizontal: 16,
575
- vertical: 7
576
- },
577
- large: {
578
- hasBadge: {
579
- right: 12
580
- },
581
- horizontal: 24,
582
- vertical: 11
577
+ vertical: 8
583
578
  },
584
- xLarge: {
585
- hasBadge: {
586
- right: 12
587
- },
579
+ medium: {
588
580
  horizontal: 24,
589
- vertical: 15
581
+ vertical: 12
590
582
  }
591
583
  },
592
584
  transition: {
593
585
  duration: '200ms',
594
586
  timingFunction: 'cubic-bezier(0.645, 0.045, 0.355, 1)'
595
587
  },
596
- default: {
597
- default: {
598
- backgroundColor: 'rgba(0, 0, 0, 0.05)',
599
- pressedBackgroundColor: 'rgba(0, 0, 0, 0.1)',
600
- hoverBackgroundColor: 'rgba(0, 0, 0, 0.1)',
601
- focusBorderColor: 'rgba(0, 0, 0, 0.1)'
602
- },
603
- ghost: {
604
- backgroundColor: 'rgba(255, 255, 255, 0.1)',
605
- pressedBackgroundColor: 'rgba(255, 255, 255, 0.05)',
606
- hoverBackgroundColor: 'rgba(255, 255, 255, 0.05)',
607
- focusBorderColor: 'rgba(255, 255, 255, 0.4)',
608
- color: deepPurpleColorPalette.white,
609
- hoverColor: deepPurpleColorPalette.white,
610
- activeColor: deepPurpleColorPalette.white
611
- }
612
- },
588
+ focusBorderColor: deepPurpleColorPalette['blue.2'],
613
589
  primary: {
614
590
  default: {
615
- backgroundColor: colors.primary,
616
- pressedBackgroundColor: colors.primaryLight,
617
- hoverBackgroundColor: colors.primaryLight,
618
- focusBorderColor: 'rgba(76, 52, 224, 0.2)'
591
+ backgroundColor: {
592
+ default: colors.primary,
593
+ hover: deepPurpleColorPalette['deepPurple.7'],
594
+ pressed: deepPurpleColorPalette['deepPurple.7'],
595
+ disabled: deepPurpleColorPalette['grey.3'],
596
+ focus: colors.primary
597
+ },
598
+ color: {
599
+ default: colors.white,
600
+ hover: colors.white,
601
+ pressed: colors.white,
602
+ disabled: colors.disabled,
603
+ focus: colors.white
604
+ }
619
605
  },
620
- ghost: {
621
- backgroundColor: colors.uiBackgroundLight,
622
- pressedBackgroundColor: colors.uiBackground,
623
- hoverBackgroundColor: deepPurpleColorPalette['beige.2'],
624
- focusBorderColor: 'rgba(255,255,255, 0.4)',
625
- color: colors.primary,
626
- hoverColor: deepPurpleColorPalette['beige.2'],
627
- activeColor: deepPurpleColorPalette['beige.2']
628
- }
629
- },
630
- dark: {
631
- default: {
632
- backgroundColor: colors.black,
633
- pressedBackgroundColor: 'rgba(0, 0, 0, 0.8)',
634
- hoverBackgroundColor: 'rgba(0, 0, 0, 0.8)',
635
- focusBorderColor: 'rgba(0, 0, 0, 0.8)'
606
+ revert: {
607
+ backgroundColor: {
608
+ default: colors.white,
609
+ hover: deepPurpleColorPalette['white-alpha.80'],
610
+ pressed: deepPurpleColorPalette['white-alpha.80'],
611
+ disabled: deepPurpleColorPalette['grey.3'],
612
+ focus: colors.white
613
+ },
614
+ color: {
615
+ default: colors.black,
616
+ hover: colors.black,
617
+ pressed: colors.black,
618
+ disabled: colors.disabled,
619
+ focus: colors.black
620
+ }
636
621
  }
637
622
  },
638
- danger: {
623
+ secondary: {
639
624
  default: {
640
- backgroundColor: deepPurpleColorPalette['red.1'],
641
- pressedBackgroundColor: deepPurpleColorPalette['red.2'],
642
- hoverBackgroundColor: deepPurpleColorPalette['red.2'],
643
- focusBorderColor: deepPurpleColorPalette['red.2']
625
+ backgroundColor: {
626
+ default: deepPurpleColorPalette['beige-alpha.25'],
627
+ hover: deepPurpleColorPalette['beige-alpha.40'],
628
+ pressed: deepPurpleColorPalette['beige-alpha.40'],
629
+ disabled: colors.disabled,
630
+ focus: deepPurpleColorPalette['beige-alpha.25']
631
+ },
632
+ color: {
633
+ default: colors.black,
634
+ hover: colors.black,
635
+ pressed: colors.black,
636
+ disabled: deepPurpleColorPalette['grey.3'],
637
+ focus: colors.black
638
+ }
644
639
  },
645
- ghost: {
646
- backgroundColor: colors.uiBackgroundLight,
647
- pressedBackgroundColor: colors.uiBackground,
648
- hoverBackgroundColor: deepPurpleColorPalette['beige.2'],
649
- focusBorderColor: 'rgba(255, 255, 255, 0.4)',
650
- color: deepPurpleColorPalette['red.6'],
651
- hoverColor: deepPurpleColorPalette['red.6'],
652
- activeColor: deepPurpleColorPalette['red.6']
653
- }
654
- },
655
- subtle: {
656
- default: {
657
- backgroundColor: colors.transparent,
658
- pressedBackgroundColor: colors.transparent,
659
- hoverBackgroundColor: colors.transparent,
660
- focusBorderColor: 'rgba(76, 52, 224, 0.2)',
661
- color: colors.primary,
662
- hoverColor: 'rgba(76, 52, 224, 0.8)',
663
- activeColor: 'rgba(76, 52, 224, 0.8)'
664
- }
665
- },
666
- 'subtle-dark': {
667
- default: {
668
- backgroundColor: colors.transparent,
669
- pressedBackgroundColor: colors.transparent,
670
- hoverBackgroundColor: colors.transparent,
671
- focusBorderColor: 'rgba(0, 0, 0, 0.1)',
672
- color: colors.black,
673
- hoverColor: 'rgba(0, 0, 0, 0.8)',
674
- activeColor: 'rgba(0, 0, 0, 0.8)'
640
+ revert: {
641
+ backgroundColor: {
642
+ default: deepPurpleColorPalette['white-alpha.10'],
643
+ hover: deepPurpleColorPalette['white-alpha.20'],
644
+ pressed: deepPurpleColorPalette['white-alpha.20'],
645
+ disabled: colors.disabled,
646
+ focus: deepPurpleColorPalette['white-alpha.10']
647
+ },
648
+ color: {
649
+ default: colors.white,
650
+ hover: deepPurpleColorPalette['white-alpha.80'],
651
+ pressed: deepPurpleColorPalette['white-alpha.80'],
652
+ disabled: deepPurpleColorPalette['grey.3'],
653
+ focus: colors.white
654
+ }
675
655
  }
676
656
  },
677
- 'subtle-revert': {
657
+ tertiary: {
678
658
  default: {
679
- backgroundColor: colors.transparent,
680
- pressedBackgroundColor: colors.transparent,
681
- hoverBackgroundColor: colors.transparent,
682
- focusBorderColor: colors.white,
683
- color: colors.white,
684
- hoverColor: colors.white,
685
- activeColor: colors.white
659
+ backgroundColor: {
660
+ default: 'transparent',
661
+ hover: 'transparent',
662
+ pressed: 'transparent',
663
+ disabled: 'transparent',
664
+ focus: 'transparent'
665
+ },
666
+ color: {
667
+ default: colors.black,
668
+ hover: colors.blackAnthracite,
669
+ pressed: colors.blackAnthracite,
670
+ disabled: deepPurpleColorPalette['grey.3'],
671
+ focus: colors.black
672
+ }
673
+ },
674
+ revert: {
675
+ backgroundColor: {
676
+ default: 'transparent',
677
+ hover: 'transparent',
678
+ pressed: 'transparent',
679
+ disabled: 'transparent',
680
+ focus: 'transparent'
681
+ },
682
+ color: {
683
+ default: colors.white,
684
+ hover: deepPurpleColorPalette['white-alpha.80'],
685
+ pressed: deepPurpleColorPalette['white-alpha.80'],
686
+ disabled: deepPurpleColorPalette['white-alpha.20'],
687
+ focus: colors.white
688
+ }
686
689
  }
687
690
  },
688
- disabled: {
691
+ 'tertiary-danger': {
689
692
  default: {
690
- backgroundColor: colors.disabled,
691
- pressedBackgroundColor: colors.disabled,
692
- hoverBackgroundColor: colors.disabled,
693
- focusBorderColor: deepPurpleColorPalette['beige.2'],
694
- borderColor: deepPurpleColorPalette['beige.2']
693
+ backgroundColor: {
694
+ default: 'transparent',
695
+ hover: 'transparent',
696
+ pressed: 'transparent',
697
+ disabled: 'transparent',
698
+ focus: 'transparent'
699
+ },
700
+ color: {
701
+ default: colors.danger,
702
+ hover: deepPurpleColorPalette['red.2'],
703
+ pressed: deepPurpleColorPalette['red.2'],
704
+ disabled: deepPurpleColorPalette['grey.3'],
705
+ focus: colors.danger
706
+ }
695
707
  }
696
708
  }
697
709
  };
698
710
 
699
711
  const buttonBadge = {
700
- backgroundColor: deepPurpleColorPalette['red.6'],
712
+ backgroundColor: {
713
+ default: colors.danger,
714
+ disabled: colors.blackLight
715
+ },
701
716
  dimensions: {
702
717
  withBadge: {
703
- width: 10,
704
- height: 10
718
+ width: 8,
719
+ height: 8
705
720
  },
706
721
  badgeCount: {
707
722
  width: 20,
@@ -1898,14 +1913,13 @@ const iconButton = {
1898
1913
  },
1899
1914
  disabled: {
1900
1915
  scale: 1,
1901
- backgroundColor: button.disabled.default.backgroundColor,
1902
- borderColor: button.disabled.default.borderColor
1916
+ backgroundColor: button.primary.default.backgroundColor.disabled
1903
1917
  },
1904
1918
  default: {
1905
- pressedBackgroundColor: button.default.default.pressedBackgroundColor
1919
+ pressedBackgroundColor: button.primary.default.backgroundColor.disabled
1906
1920
  },
1907
1921
  ghost: {
1908
- pressedBackgroundColor: button.default.ghost.pressedBackgroundColor
1922
+ pressedBackgroundColor: button.primary.default.backgroundColor.disabled
1909
1923
  },
1910
1924
  primary: {
1911
1925
  pressedBackgroundColor: deepPurpleColorPalette['beige.1']
@@ -2794,32 +2808,28 @@ function createResponsiveStyleFromProp(responsiveBooleanValue, valueIfTrue, valu
2794
2808
  return responsiveValue;
2795
2809
  }
2796
2810
 
2797
- function warn(message) {
2798
- if (process.env.NODE_ENV !== 'production') {
2799
- console.warn(message);
2800
- }
2801
- }
2802
- function deprecatedMessage(symbol, deprecation, replaceBy) {
2803
- const replaceMessage = replaceBy === undefined ? '' : `, please use ${replaceBy} instead`;
2804
- warn(`[Deprecation] in ${symbol}: ${deprecation} is deprecated${replaceMessage}.`);
2805
- }
2806
- function deprecatedInComponent(component, deprecation, replaceBy) {
2807
- deprecatedMessage(`<${component} />`, deprecation, replaceBy);
2808
- }
2809
-
2810
2811
  function getCurrentBackgroundColorForNativeBaseTheme({
2811
2812
  type,
2812
2813
  variant,
2813
2814
  isDisabled,
2814
2815
  isHovered,
2815
- isPressed
2816
+ isPressed,
2817
+ isFocused
2816
2818
  }) {
2817
- if (isDisabled) return 'kitt.button.disabled.default.backgroundColor';
2818
- const baseKey = `kitt.button.${type}.${variant}`;
2819
- if (isHovered || isPressed) {
2820
- return `${baseKey}.hoverBackgroundColor`;
2819
+ const baseKey = `kitt.button.${type}.${variant}.backgroundColor`;
2820
+ if (isDisabled) {
2821
+ return `${baseKey}.disabled`;
2822
+ }
2823
+ if (isHovered) {
2824
+ return `${baseKey}.hover`;
2825
+ }
2826
+ if (isPressed) {
2827
+ return `${baseKey}.pressed`;
2828
+ }
2829
+ if (isFocused) {
2830
+ return `${baseKey}.focused`;
2821
2831
  }
2822
- return `${baseKey}.backgroundColor`;
2832
+ return `${baseKey}.default`;
2823
2833
  }
2824
2834
 
2825
2835
  function AnimatedContainer$2({
@@ -2886,7 +2896,7 @@ const getTypographyFamilyWithAncestorValue = (type, typographyFamilyInContext) =
2886
2896
  throw new Error('You must set a "base" prop or wrap this Typography in one that does.');
2887
2897
  };
2888
2898
 
2889
- const _excluded$S = ["accessibilityRole", "base", "small", "medium", "large", "wide", "type", "variant", "color", "underline"];
2899
+ const _excluded$S = ["accessibilityRole", "base", "small", "medium", "large", "wide", "type", "variant", "color"];
2890
2900
  const TypographyFamilyContext = /*#__PURE__*/createContext(null);
2891
2901
  const TypographyTypeContext = /*#__PURE__*/createContext(null);
2892
2902
  const TypographyColorContext = /*#__PURE__*/createContext('black');
@@ -3014,8 +3024,7 @@ function Typography(_ref) {
3014
3024
  wide: legacyWide
3015
3025
  },
3016
3026
  variant,
3017
- color,
3018
- underline
3027
+ color
3019
3028
  } = _ref,
3020
3029
  otherProps = _objectWithoutProperties(_ref, _excluded$S);
3021
3030
  const sx = useSx();
@@ -3046,21 +3055,14 @@ function Typography(_ref) {
3046
3055
  }
3047
3056
  });
3048
3057
  }
3049
- const text = /*#__PURE__*/jsx(Text, _objectSpread(_objectSpread(_objectSpread({
3058
+ const text = /*#__PURE__*/jsx(Text, _objectSpread(_objectSpread({
3050
3059
  accessibilityRole: accessibilityRole || undefined,
3051
3060
  fontSize: fontSizeForNativeBase,
3052
3061
  lineHeight: hasTypographyAncestor ? undefined : fontSizeForNativeBase,
3053
3062
  fontWeight: webFontWeight,
3054
3063
  fontFamily: nativeFontFamily,
3055
- borderBottomWidth: underline ? 1 : undefined,
3056
- borderBottomColor: underline ? currentColorValue : undefined,
3057
3064
  textTransform: typographyFamily === 'contentCaps' ? 'uppercase' : undefined
3058
- }, colorStyles), otherProps), {}, {
3059
- // The property text-underline-offset is not on native.
3060
- // To add an underline with an offset, we use a custom borderBottomWidth and color.
3061
- // and we set underline to undefined to avoid a double underline
3062
- underline: undefined
3063
- }));
3065
+ }, colorStyles), otherProps));
3064
3066
  const content = baseOrDefaultToBody ? /*#__PURE__*/jsx(TypographyFamilyContext.Provider, {
3065
3067
  value: typographyFamily,
3066
3068
  children: /*#__PURE__*/jsx(TypographyTypeContext.Provider, {
@@ -3109,13 +3111,15 @@ Typography.Header6 = createHeading(6);
3109
3111
 
3110
3112
  function ButtonBadge({
3111
3113
  withBadge,
3112
- badgeCount
3114
+ badgeCount,
3115
+ disabled
3113
3116
  }) {
3117
+ const backgroundColor = disabled ? 'kitt.buttonBadge.backgroundColor.disabled' : 'kitt.buttonBadge.backgroundColor.default';
3114
3118
  if (withBadge) {
3115
3119
  return /*#__PURE__*/jsx(View, {
3116
3120
  height: "kitt.buttonBadge.dimensions.withBadge.height",
3117
3121
  width: "kitt.buttonBadge.dimensions.withBadge.width",
3118
- backgroundColor: "kitt.buttonBadge.backgroundColor",
3122
+ backgroundColor: backgroundColor,
3119
3123
  borderRadius: "kitt.buttonBadge.borderRadius.withBadge"
3120
3124
  });
3121
3125
  }
@@ -3125,7 +3129,7 @@ function ButtonBadge({
3125
3129
  justifyContent: "center",
3126
3130
  height: "kitt.buttonBadge.dimensions.badgeCount.height",
3127
3131
  width: "kitt.buttonBadge.dimensions.badgeCount.width",
3128
- backgroundColor: "kitt.buttonBadge.backgroundColor",
3132
+ backgroundColor: backgroundColor,
3129
3133
  borderRadius: "kitt.buttonBadge.borderRadius.badgeCount",
3130
3134
  children: /*#__PURE__*/jsx(Typography.Text, {
3131
3135
  base: "body-xs",
@@ -3218,102 +3222,77 @@ function TypographyIcon(_ref2) {
3218
3222
  return /*#__PURE__*/jsx(TypographyIconInheritColor, _objectSpread({}, props));
3219
3223
  }
3220
3224
 
3221
- const getButtonTextColorByType = (type, variant, isHovered, isPressed) => {
3222
- const isButtonInteractedWith = isHovered || isPressed;
3223
- switch (type) {
3224
- case 'primary':
3225
- return variant === 'ghost' ? 'primary' : 'white';
3226
- case 'dark':
3227
- return 'white';
3228
- case 'danger':
3229
- return 'danger';
3230
- case 'subtle':
3231
- return isButtonInteractedWith ? 'primary-light' : 'primary';
3232
- case 'subtle-dark':
3233
- return isButtonInteractedWith ? 'black-light' : 'black';
3234
- case 'subtle-revert':
3235
- return 'white';
3236
- case 'default':
3237
- return variant === 'ghost' ? 'white' : 'black';
3238
- default:
3239
- return 'black';
3225
+ const getButtonTextColorByType = (type, variant, isHovered, isPressed, isDisabled) => {
3226
+ const baseKey = `kitt.button.${type}.${variant}.color`;
3227
+ if (isDisabled) {
3228
+ return `${baseKey}.disabled`;
3229
+ }
3230
+ if (isHovered || isPressed) {
3231
+ return `${baseKey}.hover`;
3240
3232
  }
3233
+ return `${baseKey}.default`;
3241
3234
  };
3242
3235
 
3243
- const _excluded$Q = ["type", "variant", "isDisabled", "icon", "children", "isHovered", "isPressed", "isFocused", "innerSpacing"];
3244
- function ButtonIcon({
3245
- icon,
3246
- color,
3247
- iconPosition,
3248
- testID
3249
- }) {
3250
- return /*#__PURE__*/jsx(View, {
3251
- marginRight: iconPosition === 'left' ? 'kitt.2' : 0,
3252
- marginLeft: iconPosition === 'right' ? 'kitt.2' : 0,
3253
- children: /*#__PURE__*/jsx(TypographyIcon, {
3254
- icon: icon,
3255
- testID: testID,
3256
- color: color
3257
- })
3258
- });
3259
- }
3236
+ const _excluded$Q = ["type", "variant", "isDisabled", "icon", "children", "isHovered", "isPressed", "isFocused", "innerSpacing", "size"];
3260
3237
  function ButtonContentChildren({
3261
3238
  type,
3262
3239
  icon,
3263
3240
  iconPosition,
3264
3241
  innerSpacing,
3242
+ isDisabled,
3265
3243
  withBadge,
3266
3244
  badgeCount,
3267
3245
  color,
3268
- children
3246
+ children,
3247
+ isPressed,
3248
+ isHovered,
3249
+ size = 'default'
3269
3250
  }) {
3270
3251
  if ((process.env.NODE_ENV !== "production")) {
3271
3252
  if (!(children || icon)) {
3272
3253
  throw new Error('kitt(Button): You should provide at least a children or a icon');
3273
3254
  }
3274
3255
  }
3275
- if (!children) {
3276
- return /*#__PURE__*/jsx(TypographyIcon
3277
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3278
- , {
3256
+ if (!children && icon) {
3257
+ return /*#__PURE__*/jsx(TypographyIcon, {
3279
3258
  icon: icon,
3280
3259
  color: color
3281
3260
  });
3282
3261
  }
3283
- const buttonIconSharedProps = {
3284
- type,
3285
- iconPosition,
3286
- color
3287
- };
3288
-
3289
3262
  // Make the multilines case work properly on native - Breaks the web implem
3290
3263
  const sharedNativeStyle = {
3291
3264
  flexShrink: 1
3292
3265
  };
3293
- return /*#__PURE__*/jsxs(View, {
3266
+ return /*#__PURE__*/jsxs(HStack$1, {
3294
3267
  alignItems: "center",
3295
3268
  justifyContent: innerSpacing,
3296
- flexDirection: "row",
3297
- children: [icon && iconPosition === 'left' ? /*#__PURE__*/jsx(ButtonIcon, _objectSpread(_objectSpread({}, buttonIconSharedProps), {}, {
3269
+ space: "kitt.2",
3270
+ children: [icon && iconPosition === 'left' ? /*#__PURE__*/jsx(TypographyIcon, _objectSpread(_objectSpread({}, {
3271
+ type,
3272
+ color
3273
+ }), {}, {
3298
3274
  testID: "button.ButtonContent.leftButtonIcon",
3299
- icon: icon
3275
+ icon: icon,
3276
+ color: color,
3277
+ size: `kitt.button.icon.${size}.size`
3300
3278
  })) : null, /*#__PURE__*/jsx(Typography.Text, {
3301
3279
  /* On native code, this is the only way to ensure that the text is centered */
3302
3280
  textAlign: "center",
3303
3281
  _android: sharedNativeStyle,
3304
3282
  _ios: sharedNativeStyle,
3305
- base: "body-m",
3306
- variant: "bold",
3283
+ base: "label-large",
3284
+ variant: "semibold",
3285
+ underline: (type === 'tertiary' || type === 'tertiary-danger') && !isHovered && !isPressed,
3307
3286
  color: color,
3308
3287
  children: children
3309
- }), icon && iconPosition === 'right' ? /*#__PURE__*/jsx(ButtonIcon, _objectSpread(_objectSpread({}, buttonIconSharedProps), {}, {
3310
- icon: icon
3311
- })) : null, withBadge || badgeCount && badgeCount > 0 ? /*#__PURE__*/jsx(View, {
3312
- marginLeft: "kitt.2",
3313
- children: /*#__PURE__*/jsx(ButtonBadge, {
3314
- withBadge: withBadge,
3315
- badgeCount: badgeCount
3316
- })
3288
+ }), icon && iconPosition === 'right' ? /*#__PURE__*/jsx(TypographyIcon, {
3289
+ icon: icon,
3290
+ color: color,
3291
+ size: `kitt.button.icon.${size}.size`
3292
+ }) : null, withBadge || badgeCount && badgeCount > 0 ? /*#__PURE__*/jsx(ButtonBadge, {
3293
+ disabled: isDisabled,
3294
+ withBadge: withBadge,
3295
+ badgeCount: badgeCount
3317
3296
  }) : null]
3318
3297
  });
3319
3298
  }
@@ -3327,10 +3306,11 @@ function ButtonContent(_ref) {
3327
3306
  isHovered,
3328
3307
  isPressed,
3329
3308
  isFocused,
3330
- innerSpacing
3309
+ innerSpacing,
3310
+ size
3331
3311
  } = _ref,
3332
3312
  props = _objectWithoutProperties(_ref, _excluded$Q);
3333
- const color = isDisabled ? 'black-light' : getButtonTextColorByType(type, variant, isHovered, isPressed);
3313
+ const color = getButtonTextColorByType(type, variant, isHovered, isPressed, isDisabled);
3334
3314
  return /*#__PURE__*/jsx(View, {
3335
3315
  _web: {
3336
3316
  // Make the multilines case work properly on web
@@ -3344,57 +3324,34 @@ function ButtonContent(_ref) {
3344
3324
  type: type,
3345
3325
  isDisabled: isDisabled,
3346
3326
  color: color,
3347
- innerSpacing: innerSpacing
3327
+ innerSpacing: innerSpacing,
3328
+ isHovered: isHovered,
3329
+ isPressed: isPressed,
3330
+ size: size
3348
3331
  }, props), {}, {
3349
3332
  children: children
3350
3333
  }))
3351
3334
  });
3352
3335
  }
3353
3336
 
3354
- function getCurrentPaddingConfig({
3355
- size
3356
- }) {
3357
- if (size === 'large') return 'large';
3358
- if (size === 'xLarge') return 'xLarge';
3359
- return 'default';
3360
- }
3361
3337
  function ButtonPadding({
3362
3338
  children,
3363
3339
  size,
3364
3340
  hasBadge
3365
3341
  }) {
3366
- const currentPaddingKey = getCurrentPaddingConfig({
3367
- size
3368
- });
3369
3342
  return /*#__PURE__*/jsx(View, {
3370
3343
  position: "relative",
3371
3344
  flexDirection: "row",
3372
3345
  alignItems: "center",
3373
3346
  justifyContent: "center",
3374
- paddingX: `kitt.button.padding.${currentPaddingKey}.horizontal`,
3375
- paddingY: `kitt.button.padding.${currentPaddingKey}.vertical`,
3376
- paddingRight: hasBadge ? `kitt.button.padding.${currentPaddingKey}.hasBadge.right` : undefined,
3347
+ paddingX: `kitt.button.padding.${size}.horizontal`,
3348
+ paddingY: `kitt.button.padding.${size}.vertical`,
3377
3349
  minHeight: "kitt.button.minHeight",
3378
3350
  children: children
3379
3351
  });
3380
3352
  }
3381
3353
 
3382
- function DisabledBorder() {
3383
- return /*#__PURE__*/jsx(View, {
3384
- position: "absolute",
3385
- top: 0,
3386
- left: 0,
3387
- right: 0,
3388
- bottom: 0,
3389
- borderWidth: "kitt.button.borderWidth.disabled",
3390
- borderColor: "kitt.button.disabled.default.borderColor",
3391
- borderRadius: "kitt.button.borderRadius"
3392
- });
3393
- }
3394
-
3395
3354
  function FocusBorder({
3396
- type,
3397
- variant,
3398
3355
  isFocused,
3399
3356
  isHovered,
3400
3357
  isPressed
@@ -3404,11 +3361,13 @@ function FocusBorder({
3404
3361
  button: buttonTheme
3405
3362
  }
3406
3363
  } = useTheme();
3364
+ const outerBorderRadius = buttonTheme.borderRadius + buttonTheme.borderWidth.focus;
3365
+ const innerBorderRadius = buttonTheme.borderRadius;
3407
3366
  return /*#__PURE__*/jsx(View, {
3408
3367
  _web: {
3409
3368
  style: {
3410
- width: `calc(100% + ${buttonTheme.borderWidth.focus * 2}px)`,
3411
- height: `calc(100% + ${buttonTheme.borderWidth.focus * 2}px)`,
3369
+ width: `calc(100% + ${buttonTheme.borderRadius}px)`,
3370
+ height: `calc(100% + ${buttonTheme.borderRadius}px)`,
3412
3371
  transitionProperty: 'opacity',
3413
3372
  transitionDuration: buttonTheme.transition.duration,
3414
3373
  transitionTimingFunction: buttonTheme.transition.timingFunction
@@ -3416,25 +3375,15 @@ function FocusBorder({
3416
3375
  },
3417
3376
  opacity: isFocused && !(isPressed || isHovered) ? 1 : 0,
3418
3377
  position: "absolute",
3419
- left: -buttonTheme.borderWidth.focus,
3420
- top: -buttonTheme.borderWidth.focus,
3421
3378
  borderWidth: "kitt.button.borderWidth.focus",
3422
- borderColor: `kitt.button.${type}.${variant}.focusBorderColor`,
3423
- borderRadius: "kitt.button.borderRadius"
3379
+ borderColor: "kitt.button.focusBorderColor",
3380
+ borderRadius: outerBorderRadius,
3381
+ children: /*#__PURE__*/jsx(View, {
3382
+ borderRadius: innerBorderRadius
3383
+ })
3424
3384
  });
3425
3385
  }
3426
3386
 
3427
- const hasVariant = (button, variant) => {
3428
- return variant in button;
3429
- };
3430
- function getVariantValuesIfExist(theme, type, variant) {
3431
- const button = theme.kitt.button[type];
3432
- if (hasVariant(button, variant)) {
3433
- return button[variant];
3434
- }
3435
- return theme.kitt.button[type].default;
3436
- }
3437
-
3438
3387
  const useNativeAnimation$5 = ({
3439
3388
  type,
3440
3389
  variant,
@@ -3443,16 +3392,12 @@ const useNativeAnimation$5 = ({
3443
3392
  const theme = useTheme();
3444
3393
  const pressed = useSharedValue(isPressedInternal ? 1 : 0);
3445
3394
  const color = useSharedValue(0);
3446
- const {
3447
- backgroundColor,
3448
- pressedBackgroundColor
3449
- } = getVariantValuesIfExist(theme, type, variant);
3450
3395
  const {
3451
3396
  scale
3452
3397
  } = theme.kitt.button;
3453
3398
  const animatedStyles = useAnimatedStyle(() => {
3454
3399
  return {
3455
- backgroundColor: interpolateColor(color.value, [0, 1], [backgroundColor, pressedBackgroundColor]),
3400
+ backgroundColor: interpolateColor(color.value, [0, 1], [type === 'tertiary-danger' ? theme.kitt.button['tertiary-danger'].default.backgroundColor.default : theme.kitt.button[type][variant].backgroundColor.default, type === 'tertiary-danger' ? theme.kitt.button['tertiary-danger'].default.backgroundColor.pressed : theme.kitt.button[type][variant].backgroundColor.pressed]),
3456
3401
  transform: [{
3457
3402
  scale: withSpring(pressed.value ? scale.base.active : scale.base.default)
3458
3403
  }]
@@ -3471,27 +3416,14 @@ const useNativeAnimation$5 = ({
3471
3416
  };
3472
3417
  };
3473
3418
 
3474
- const getButtonSize = ({
3475
- large,
3476
- xLarge,
3477
- size
3478
- }) => {
3479
- if (large) return 'large';
3480
- if (xLarge) return 'xLarge';
3481
- return size;
3482
- };
3483
-
3484
- const allowedGhostTypes = ['primary', 'default', 'danger'];
3485
3419
  const Button = /*#__PURE__*/forwardRef(({
3486
3420
  children,
3487
- type: _type = 'default',
3421
+ type: _type = 'secondary',
3488
3422
  variant: _variant = 'default',
3489
3423
  disabled,
3490
3424
  stretch,
3491
- large,
3492
- xLarge,
3493
3425
  icon,
3494
- size: sizeProp,
3426
+ size: _size = 'default',
3495
3427
  iconPosition: _iconPosition = 'left',
3496
3428
  testID,
3497
3429
  href,
@@ -3517,18 +3449,9 @@ const Button = /*#__PURE__*/forwardRef(({
3517
3449
  type: _type,
3518
3450
  variant: _variant
3519
3451
  });
3520
- if ((process.env.NODE_ENV !== "production") && _variant === 'ghost' && !allowedGhostTypes.includes(_type)) {
3521
- throw new Error('variant=ghost is only allowed with type=primary or default');
3452
+ if (process.env.NODE_ENV !== 'production' && _variant === 'revert' && _type === 'tertiary-danger') {
3453
+ throw new Error('Invalid revert variant for tertiary-danger button type. Only default variant is allowed.');
3522
3454
  }
3523
- if (large || xLarge) {
3524
- const deprecatedProp = large ? 'large' : 'xLarge';
3525
- deprecatedInComponent('Button', `${deprecatedProp} prop`, 'size');
3526
- }
3527
- const size = getButtonSize({
3528
- large,
3529
- xLarge,
3530
- size: sizeProp
3531
- });
3532
3455
  return /*#__PURE__*/jsx(Pressable, {
3533
3456
  ref: ref,
3534
3457
  disabled: disabled,
@@ -3540,6 +3463,7 @@ const Button = /*#__PURE__*/forwardRef(({
3540
3463
  alignSelf: createResponsiveStyleFromProp(stretch, undefined, 'flex-start'),
3541
3464
  minWidth: "kitt.button.minWidth",
3542
3465
  maxWidth: createResponsiveStyleFromProp(stretch, '100%', 'kitt.button.maxWidth'),
3466
+ maxHeight: "kitt.button.maxHeight",
3543
3467
  width: createResponsiveStyleFromProp(stretch, '100%', 'auto'),
3544
3468
  onPress: onPress,
3545
3469
  onPressIn: onPressIn,
@@ -3561,7 +3485,7 @@ const Button = /*#__PURE__*/forwardRef(({
3561
3485
  variant: _variant,
3562
3486
  isStretch: stretch,
3563
3487
  children: /*#__PURE__*/jsxs(ButtonPadding, {
3564
- size: size,
3488
+ size: _size,
3565
3489
  hasBadge: Boolean(withBadge || badgeCount && badgeCount > 0),
3566
3490
  children: [/*#__PURE__*/jsx(ButtonContent, {
3567
3491
  type: _type,
@@ -3575,10 +3499,9 @@ const Button = /*#__PURE__*/forwardRef(({
3575
3499
  isPressed: isPressed,
3576
3500
  isFocused: isFocused,
3577
3501
  innerSpacing: _innerSpacing,
3502
+ size: _size,
3578
3503
  children: children
3579
- }), disabled ? /*#__PURE__*/jsx(DisabledBorder, {}) : null, /*#__PURE__*/jsx(FocusBorder, {
3580
- type: _type,
3581
- variant: _variant,
3504
+ }), /*#__PURE__*/jsx(FocusBorder, {
3582
3505
  isFocused: isFocused || isFocusedInternal,
3583
3506
  isHovered: isHovered,
3584
3507
  isPressed: isPressed
@@ -3748,7 +3671,7 @@ function Actions(_ref) {
3748
3671
  flexGrow: 1,
3749
3672
  reversed: isReversed
3750
3673
  }, props), {}, {
3751
- space: "kitt.3",
3674
+ space: "kitt.2",
3752
3675
  children: children
3753
3676
  }));
3754
3677
  }
@@ -8695,7 +8618,8 @@ function InfoCard({
8695
8618
  icon: /*#__PURE__*/jsx(CaretRightRegularIcon, {})
8696
8619
  }) : /*#__PURE__*/jsx(View$1, {
8697
8620
  children: /*#__PURE__*/jsx(Button, {
8698
- type: isContrastReversed ? 'subtle-revert' : 'subtle-dark',
8621
+ type: "tertiary",
8622
+ variant: isContrastReversed ? 'revert' : undefined,
8699
8623
  onPress: onPress,
8700
8624
  children: action === null || action === void 0 ? void 0 : action.label
8701
8625
  })
@@ -9232,14 +9156,11 @@ function createKittNativeBaseCustomTheme(theme, appTheme) {
9232
9156
  }
9233
9157
  },
9234
9158
  button: {
9235
- default: theme.button.default,
9236
- dark: theme.button.dark,
9237
9159
  primary: theme.button.primary,
9238
- danger: theme.button.danger,
9239
- subtle: theme.button.subtle,
9240
- 'subtle-revert': theme.button['subtle-revert'],
9241
- 'subtle-dark': theme.button['subtle-dark'],
9242
- disabled: theme.button.disabled
9160
+ secondary: theme.button.secondary,
9161
+ tertiary: theme.button.tertiary,
9162
+ 'tertiary-danger': theme.button['tertiary-danger'],
9163
+ focusBorderColor: theme.button.focusBorderColor
9243
9164
  },
9244
9165
  choices: {
9245
9166
  item: {
@@ -9668,7 +9589,6 @@ function createKittNativeBaseCustomTheme(theme, appTheme) {
9668
9589
  iconButton: {
9669
9590
  borderColor: theme.iconButton.borderColor,
9670
9591
  disabled: {
9671
- borderColor: theme.iconButton.disabled.borderColor,
9672
9592
  backgroundColor: theme.iconButton.disabled.backgroundColor
9673
9593
  },
9674
9594
  black: {
@@ -10218,7 +10138,16 @@ function createKittNativeBaseCustomTheme(theme, appTheme) {
10218
10138
  button: {
10219
10139
  minWidth: theme.button.minWidth,
10220
10140
  maxWidth: theme.button.maxWidth,
10221
- minHeight: theme.button.minHeight
10141
+ minHeight: theme.button.minHeight,
10142
+ maxHeight: theme.button.maxHeight,
10143
+ icon: {
10144
+ default: {
10145
+ size: theme.button.icon.default.size
10146
+ },
10147
+ medium: {
10148
+ size: theme.button.icon.medium.size
10149
+ }
10150
+ }
10222
10151
  },
10223
10152
  buttonBadge: {
10224
10153
  dimensions: {
@@ -10611,7 +10540,10 @@ function createKittNativeBaseCustomTheme(theme, appTheme) {
10611
10540
  }
10612
10541
  },
10613
10542
  button: {
10614
- padding: theme.button.padding
10543
+ padding: {
10544
+ default: theme.button.padding.default,
10545
+ medium: theme.button.padding.medium
10546
+ }
10615
10547
  },
10616
10548
  cardModal: {
10617
10549
  overlayPadding: theme.cardModal.overlayPadding