@pagopa/io-app-design-system 5.0.0-3 → 5.0.0-4

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 (96) hide show
  1. package/lib/commonjs/components/accordion/AccordionItem.js +1 -1
  2. package/lib/commonjs/components/accordion/AccordionItem.js.map +1 -1
  3. package/lib/commonjs/components/buttons/ButtonLink.js +23 -22
  4. package/lib/commonjs/components/buttons/ButtonLink.js.map +1 -1
  5. package/lib/commonjs/components/buttons/ButtonOutline.js +37 -65
  6. package/lib/commonjs/components/buttons/ButtonOutline.js.map +1 -1
  7. package/lib/commonjs/components/buttons/ButtonSolid.js +50 -43
  8. package/lib/commonjs/components/buttons/ButtonSolid.js.map +1 -1
  9. package/lib/commonjs/components/buttons/IconButton.js +28 -26
  10. package/lib/commonjs/components/buttons/IconButton.js.map +1 -1
  11. package/lib/commonjs/components/buttons/IconButtonSolid.js +26 -25
  12. package/lib/commonjs/components/buttons/IconButtonSolid.js.map +1 -1
  13. package/lib/commonjs/components/buttons/__test__/__snapshots__/button.test.tsx.snap +6 -8
  14. package/lib/commonjs/components/icons/svg/IconProductIOAppBlueBg.js +8 -20
  15. package/lib/commonjs/components/icons/svg/IconProductIOAppBlueBg.js.map +1 -1
  16. package/lib/commonjs/components/icons/svg/originals/IconProductIOAppBlueBg.svg +12 -9
  17. package/lib/commonjs/components/layout/HeaderFirstLevel.js +7 -9
  18. package/lib/commonjs/components/layout/HeaderFirstLevel.js.map +1 -1
  19. package/lib/commonjs/components/layout/HeaderSecondLevel.js +24 -14
  20. package/lib/commonjs/components/layout/HeaderSecondLevel.js.map +1 -1
  21. package/lib/commonjs/components/listitems/ListItemInfo.js +1 -1
  22. package/lib/commonjs/components/listitems/ListItemInfo.js.map +1 -1
  23. package/lib/commonjs/components/listitems/ListItemInfoCopy.js +1 -1
  24. package/lib/commonjs/components/listitems/ListItemInfoCopy.js.map +1 -1
  25. package/lib/commonjs/components/listitems/ListItemNav.js +4 -3
  26. package/lib/commonjs/components/listitems/ListItemNav.js.map +1 -1
  27. package/lib/commonjs/core/IOColors.js +17 -3
  28. package/lib/commonjs/core/IOColors.js.map +1 -1
  29. package/lib/module/components/accordion/AccordionItem.js +1 -1
  30. package/lib/module/components/accordion/AccordionItem.js.map +1 -1
  31. package/lib/module/components/buttons/ButtonLink.js +24 -23
  32. package/lib/module/components/buttons/ButtonLink.js.map +1 -1
  33. package/lib/module/components/buttons/ButtonOutline.js +38 -66
  34. package/lib/module/components/buttons/ButtonOutline.js.map +1 -1
  35. package/lib/module/components/buttons/ButtonSolid.js +53 -46
  36. package/lib/module/components/buttons/ButtonSolid.js.map +1 -1
  37. package/lib/module/components/buttons/IconButton.js +29 -27
  38. package/lib/module/components/buttons/IconButton.js.map +1 -1
  39. package/lib/module/components/buttons/IconButtonSolid.js +27 -26
  40. package/lib/module/components/buttons/IconButtonSolid.js.map +1 -1
  41. package/lib/module/components/buttons/__test__/__snapshots__/button.test.tsx.snap +6 -8
  42. package/lib/module/components/icons/svg/IconProductIOAppBlueBg.js +9 -21
  43. package/lib/module/components/icons/svg/IconProductIOAppBlueBg.js.map +1 -1
  44. package/lib/module/components/icons/svg/originals/IconProductIOAppBlueBg.svg +12 -9
  45. package/lib/module/components/layout/HeaderFirstLevel.js +8 -9
  46. package/lib/module/components/layout/HeaderFirstLevel.js.map +1 -1
  47. package/lib/module/components/layout/HeaderSecondLevel.js +26 -16
  48. package/lib/module/components/layout/HeaderSecondLevel.js.map +1 -1
  49. package/lib/module/components/listitems/ListItemInfo.js +1 -1
  50. package/lib/module/components/listitems/ListItemInfo.js.map +1 -1
  51. package/lib/module/components/listitems/ListItemInfoCopy.js +1 -1
  52. package/lib/module/components/listitems/ListItemInfoCopy.js.map +1 -1
  53. package/lib/module/components/listitems/ListItemNav.js +4 -3
  54. package/lib/module/components/listitems/ListItemNav.js.map +1 -1
  55. package/lib/module/core/IOColors.js +17 -3
  56. package/lib/module/core/IOColors.js.map +1 -1
  57. package/lib/typescript/components/buttons/ButtonLink.d.ts +1 -1
  58. package/lib/typescript/components/buttons/ButtonLink.d.ts.map +1 -1
  59. package/lib/typescript/components/buttons/ButtonOutline.d.ts +1 -1
  60. package/lib/typescript/components/buttons/ButtonOutline.d.ts.map +1 -1
  61. package/lib/typescript/components/buttons/ButtonSolid.d.ts.map +1 -1
  62. package/lib/typescript/components/buttons/IconButton.d.ts +2 -1
  63. package/lib/typescript/components/buttons/IconButton.d.ts.map +1 -1
  64. package/lib/typescript/components/buttons/IconButtonSolid.d.ts.map +1 -1
  65. package/lib/typescript/components/icons/svg/IconProductIOAppBlueBg.d.ts.map +1 -1
  66. package/lib/typescript/components/layout/HeaderFirstLevel.d.ts +3 -4
  67. package/lib/typescript/components/layout/HeaderFirstLevel.d.ts.map +1 -1
  68. package/lib/typescript/components/layout/HeaderSecondLevel.d.ts +1 -1
  69. package/lib/typescript/components/layout/HeaderSecondLevel.d.ts.map +1 -1
  70. package/lib/typescript/components/listitems/ListItemNav.d.ts.map +1 -1
  71. package/lib/typescript/core/IOColors.d.ts +1 -1
  72. package/lib/typescript/core/IOColors.d.ts.map +1 -1
  73. package/lib/typescript/utils/fonts.d.ts +1 -1
  74. package/package.json +1 -1
  75. package/src/components/accordion/AccordionItem.tsx +1 -1
  76. package/src/components/buttons/ButtonLink.tsx +34 -32
  77. package/src/components/buttons/ButtonOutline.tsx +48 -79
  78. package/src/components/buttons/ButtonSolid.tsx +73 -55
  79. package/src/components/buttons/IconButton.tsx +47 -28
  80. package/src/components/buttons/IconButtonSolid.tsx +33 -36
  81. package/src/components/buttons/__test__/__snapshots__/button.test.tsx.snap +6 -8
  82. package/src/components/icons/svg/IconProductIOAppBlueBg.tsx +12 -13
  83. package/src/components/icons/svg/originals/IconProductIOAppBlueBg.svg +12 -9
  84. package/src/components/layout/HeaderFirstLevel.tsx +15 -9
  85. package/src/components/layout/HeaderSecondLevel.tsx +45 -23
  86. package/src/components/listitems/ListItemInfo.tsx +1 -1
  87. package/src/components/listitems/ListItemInfoCopy.tsx +1 -1
  88. package/src/components/listitems/ListItemNav.tsx +5 -4
  89. package/src/core/IOColors.ts +23 -2
  90. package/lib/commonjs/components/layout/BlockButtons.js +0 -85
  91. package/lib/commonjs/components/layout/BlockButtons.js.map +0 -1
  92. package/lib/module/components/layout/BlockButtons.js +0 -76
  93. package/lib/module/components/layout/BlockButtons.js.map +0 -1
  94. package/lib/typescript/components/layout/BlockButtons.d.ts +0 -54
  95. package/lib/typescript/components/layout/BlockButtons.d.ts.map +0 -1
  96. package/src/components/layout/BlockButtons.tsx +0 -143
@@ -1,67 +1,10 @@
1
1
  import React, { forwardRef } from "react";
2
2
  import { Pressable, StyleSheet } from "react-native";
3
3
  import Animated, { interpolateColor, useAnimatedProps, useAnimatedStyle, useReducedMotion } from "react-native-reanimated";
4
- import { IOButtonStyles, IOColors, hexToRgba, useIONewTypeface } from "../../core/";
4
+ import { IOButtonStyles, IOColors, hexToRgba, useIONewTypeface, useIOTheme } from "../../core/";
5
5
  import { useScaleAnimation } from "../../hooks";
6
6
  import { AnimatedIcon, IconClassComponent } from "../icons";
7
7
  import { IOText, buttonTextFontSize } from "../typography";
8
- const mapColorStates = {
9
- // Primary button
10
- primary: {
11
- border: {
12
- default: IOColors["blueIO-500"],
13
- pressed: IOColors["blueIO-600"],
14
- disabled: IOColors["grey-200"]
15
- },
16
- background: {
17
- default: hexToRgba(IOColors["blueIO-50"], 0),
18
- pressed: hexToRgba(IOColors["blueIO-50"], 1),
19
- disabled: "transparent"
20
- },
21
- label: {
22
- default: IOColors["blueIO-500"],
23
- pressed: IOColors["blueIO-600"],
24
- disabled: IOColors["grey-700"]
25
- }
26
- },
27
- // Contrast button
28
- contrast: {
29
- border: {
30
- default: IOColors.white,
31
- pressed: IOColors.white,
32
- disabled: IOColors["blueIO-200"]
33
- },
34
- background: {
35
- default: hexToRgba(IOColors["blueIO-600"], 0),
36
- pressed: IOColors["blueIO-600"],
37
- disabled: "transparent"
38
- },
39
- label: {
40
- default: IOColors.white,
41
- pressed: IOColors.white,
42
- disabled: IOColors["blueIO-200"]
43
- }
44
- },
45
- // Danger button
46
- danger: {
47
- border: {
48
- default: IOColors["error-600"],
49
- pressed: IOColors["error-600"],
50
- disabled: IOColors["grey-200"]
51
- },
52
- background: {
53
- default: hexToRgba(IOColors["error-600"], 0),
54
- pressed: hexToRgba(IOColors["error-600"], 0.15),
55
- disabled: "transparent"
56
- },
57
- label: {
58
- default: IOColors["error-600"],
59
- pressed: IOColors["error-600"],
60
- disabled: IOColors["grey-450"]
61
- }
62
- }
63
- };
64
-
65
8
  // Icon size
66
9
  const iconSize = 20;
67
10
  const DISABLED_OPACITY = 0.5;
@@ -84,6 +27,7 @@ export const ButtonOutline = /*#__PURE__*/forwardRef(({
84
27
  testID
85
28
  }, ref) => {
86
29
  var _mapColorStates$color, _mapColorStates$color2, _mapColorStates$color3, _mapColorStates$color4, _mapColorStates$color5, _mapColorStates$color6, _mapColorStates$color7;
30
+ const theme = useIOTheme();
87
31
  const {
88
32
  newTypefaceEnabled
89
33
  } = useIONewTypeface();
@@ -95,24 +39,52 @@ export const ButtonOutline = /*#__PURE__*/forwardRef(({
95
39
  } = useScaleAnimation();
96
40
  const reducedMotion = useReducedMotion();
97
41
  const AnimatedIOText = Animated.createAnimatedComponent(IOText);
42
+ const mapColorStates = {
43
+ // Primary button
44
+ primary: {
45
+ foreground: {
46
+ default: IOColors[theme["interactiveElem-default"]],
47
+ pressed: IOColors[theme["interactiveElem-pressed"]],
48
+ disabled: IOColors[theme["interactiveOutline-disabled"]]
49
+ },
50
+ background: {
51
+ default: hexToRgba(IOColors[theme["interactiveElem-pressed"]], 0),
52
+ pressed: hexToRgba(IOColors[theme["interactiveElem-pressed"]], 0.1),
53
+ disabled: "transparent"
54
+ }
55
+ },
56
+ // Contrast button
57
+ contrast: {
58
+ foreground: {
59
+ default: IOColors.white,
60
+ pressed: IOColors.white,
61
+ disabled: IOColors["blueIO-200"]
62
+ },
63
+ background: {
64
+ default: hexToRgba(IOColors["blueIO-600"], 0),
65
+ pressed: hexToRgba(IOColors["blueIO-600"], 0.5),
66
+ disabled: "transparent"
67
+ }
68
+ }
69
+ };
98
70
 
99
71
  // Interpolate animation values from `isPressed` values
100
72
  const pressedAnimationStyle = useAnimatedStyle(() => {
101
73
  // Link color states to the pressed states
102
74
  const backgroundColor = interpolateColor(progress.value, [0, 1], [mapColorStates[color].background.default, mapColorStates[color].background.pressed]);
103
- const borderColor = interpolateColor(progress.value, [0, 1], [mapColorStates[color].border.default, mapColorStates[color].border.pressed]);
75
+ const borderColor = interpolateColor(progress.value, [0, 1], [mapColorStates[color].foreground.default, mapColorStates[color].foreground.pressed]);
104
76
  return {
105
77
  borderColor,
106
78
  backgroundColor
107
79
  };
108
80
  });
109
81
  const pressedColorLabelAnimationStyle = useAnimatedStyle(() => ({
110
- color: interpolateColor(progress.value, [0, 1], [mapColorStates[color].border.default, mapColorStates[color].border.pressed])
82
+ color: interpolateColor(progress.value, [0, 1], [mapColorStates[color].foreground.default, mapColorStates[color].foreground.pressed])
111
83
  }));
112
84
 
113
85
  // Animate the <Icon> color prop
114
86
  const pressedColorIconAnimationStyle = useAnimatedProps(() => ({
115
- color: interpolateColor(progress.value, [0, 1], [mapColorStates[color].label.default, mapColorStates[color].label.pressed])
87
+ color: interpolateColor(progress.value, [0, 1], [mapColorStates[color].foreground.default, mapColorStates[color].foreground.pressed])
116
88
  }));
117
89
  const AnimatedIconClassComponent = Animated.createAnimatedComponent(IconClassComponent);
118
90
  return /*#__PURE__*/React.createElement(Pressable, {
@@ -139,11 +111,11 @@ export const ButtonOutline = /*#__PURE__*/forwardRef(({
139
111
  flexDirection: "row-reverse"
140
112
  }, disabled ? {
141
113
  backgroundColor: (_mapColorStates$color = mapColorStates[color]) === null || _mapColorStates$color === void 0 || (_mapColorStates$color = _mapColorStates$color.background) === null || _mapColorStates$color === void 0 ? void 0 : _mapColorStates$color.disabled,
142
- borderColor: (_mapColorStates$color2 = mapColorStates[color]) === null || _mapColorStates$color2 === void 0 || (_mapColorStates$color2 = _mapColorStates$color2.border) === null || _mapColorStates$color2 === void 0 ? void 0 : _mapColorStates$color2.disabled,
114
+ borderColor: (_mapColorStates$color2 = mapColorStates[color]) === null || _mapColorStates$color2 === void 0 || (_mapColorStates$color2 = _mapColorStates$color2.foreground) === null || _mapColorStates$color2 === void 0 ? void 0 : _mapColorStates$color2.disabled,
143
115
  opacity: DISABLED_OPACITY
144
116
  } : {
145
117
  backgroundColor: (_mapColorStates$color3 = mapColorStates[color]) === null || _mapColorStates$color3 === void 0 || (_mapColorStates$color3 = _mapColorStates$color3.background) === null || _mapColorStates$color3 === void 0 ? void 0 : _mapColorStates$color3.default,
146
- borderColor: (_mapColorStates$color4 = mapColorStates[color]) === null || _mapColorStates$color4 === void 0 ? void 0 : _mapColorStates$color4.border.default
118
+ borderColor: (_mapColorStates$color4 = mapColorStates[color]) === null || _mapColorStates$color4 === void 0 ? void 0 : _mapColorStates$color4.foreground.default
147
119
  },
148
120
  /* Prevent Reanimated from overriding background colors
149
121
  if button is disabled */
@@ -152,12 +124,12 @@ export const ButtonOutline = /*#__PURE__*/forwardRef(({
152
124
  allowFontScaling: true,
153
125
  name: icon,
154
126
  animatedProps: pressedColorIconAnimationStyle,
155
- color: (_mapColorStates$color5 = mapColorStates[color]) === null || _mapColorStates$color5 === void 0 || (_mapColorStates$color5 = _mapColorStates$color5.label) === null || _mapColorStates$color5 === void 0 ? void 0 : _mapColorStates$color5.default,
127
+ color: (_mapColorStates$color5 = mapColorStates[color]) === null || _mapColorStates$color5 === void 0 || (_mapColorStates$color5 = _mapColorStates$color5.foreground) === null || _mapColorStates$color5 === void 0 ? void 0 : _mapColorStates$color5.default,
156
128
  size: iconSize
157
129
  }) : /*#__PURE__*/React.createElement(AnimatedIcon, {
158
130
  allowFontScaling: true,
159
131
  name: icon,
160
- color: (_mapColorStates$color6 = mapColorStates[color]) === null || _mapColorStates$color6 === void 0 || (_mapColorStates$color6 = _mapColorStates$color6.label) === null || _mapColorStates$color6 === void 0 ? void 0 : _mapColorStates$color6.disabled,
132
+ color: (_mapColorStates$color6 = mapColorStates[color]) === null || _mapColorStates$color6 === void 0 || (_mapColorStates$color6 = _mapColorStates$color6.foreground) === null || _mapColorStates$color6 === void 0 ? void 0 : _mapColorStates$color6.disabled,
161
133
  size: iconSize
162
134
  })), /*#__PURE__*/React.createElement(AnimatedIOText, {
163
135
  font: newTypefaceEnabled ? "Titillio" : "TitilliumSansPro",
@@ -169,7 +141,7 @@ export const ButtonOutline = /*#__PURE__*/forwardRef(({
169
141
  numberOfLines: 1,
170
142
  ellipsizeMode: "tail",
171
143
  style: [IOButtonStyles.label, disabled ? {
172
- color: (_mapColorStates$color7 = mapColorStates[color]) === null || _mapColorStates$color7 === void 0 || (_mapColorStates$color7 = _mapColorStates$color7.label) === null || _mapColorStates$color7 === void 0 ? void 0 : _mapColorStates$color7.disabled
144
+ color: (_mapColorStates$color7 = mapColorStates[color]) === null || _mapColorStates$color7 === void 0 || (_mapColorStates$color7 = _mapColorStates$color7.foreground) === null || _mapColorStates$color7 === void 0 ? void 0 : _mapColorStates$color7.disabled
173
145
  } : {
174
146
  ...pressedColorLabelAnimationStyle
175
147
  }]
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","Pressable","StyleSheet","Animated","interpolateColor","useAnimatedProps","useAnimatedStyle","useReducedMotion","IOButtonStyles","IOColors","hexToRgba","useIONewTypeface","useScaleAnimation","AnimatedIcon","IconClassComponent","IOText","buttonTextFontSize","mapColorStates","primary","border","default","pressed","disabled","background","label","contrast","white","danger","iconSize","DISABLED_OPACITY","ICON_MARGIN","IOButtonStylesLocal","create","buttonWithBorder","borderWidth","ButtonOutline","color","fullWidth","icon","iconPosition","onPress","accessibilityLabel","accessibilityHint","testID","ref","_mapColorStates$color","_mapColorStates$color2","_mapColorStates$color3","_mapColorStates$color4","_mapColorStates$color5","_mapColorStates$color6","_mapColorStates$color7","newTypefaceEnabled","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","AnimatedIOText","createAnimatedComponent","pressedAnimationStyle","backgroundColor","value","borderColor","pressedColorLabelAnimationStyle","pressedColorIconAnimationStyle","AnimatedIconClassComponent","createElement","accessibilityRole","accessibilityState","accessible","style","dimensionsDefault","View","button","buttonSizeDefault","paddingHorizontal","columnGap","flexDirection","opacity","allowFontScaling","name","animatedProps","size","font","weight","accessibilityElementsHidden","importantForAccessibility","numberOfLines","ellipsizeMode"],"sourceRoot":"../../../../src","sources":["components/buttons/ButtonOutline.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAoBC,UAAU,QAAQ,OAAO;AACzD,SAEEC,SAAS,EACTC,UAAU,QAEL,cAAc;AACrB,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,QACX,yBAAyB;AAChC,SACEC,cAAc,EACdC,QAAQ,EACRC,SAAS,EACTC,gBAAgB,QACX,aAAa;AACpB,SAASC,iBAAiB,QAAQ,aAAa;AAE/C,SACEC,YAAY,EAGZC,kBAAkB,QACb,UAAU;AACjB,SAASC,MAAM,EAAEC,kBAAkB,QAAQ,eAAe;AAqC1D,MAAMC,cAGL,GAAG;EACF;EACAC,OAAO,EAAE;IACPC,MAAM,EAAE;MACNC,OAAO,EAAEX,QAAQ,CAAC,YAAY,CAAC;MAC/BY,OAAO,EAAEZ,QAAQ,CAAC,YAAY,CAAC;MAC/Ba,QAAQ,EAAEb,QAAQ,CAAC,UAAU;IAC/B,CAAC;IACDc,UAAU,EAAE;MACVH,OAAO,EAAEV,SAAS,CAACD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;MAC5CY,OAAO,EAAEX,SAAS,CAACD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;MAC5Ca,QAAQ,EAAE;IACZ,CAAC;IACDE,KAAK,EAAE;MACLJ,OAAO,EAAEX,QAAQ,CAAC,YAAY,CAAC;MAC/BY,OAAO,EAAEZ,QAAQ,CAAC,YAAY,CAAC;MAC/Ba,QAAQ,EAAEb,QAAQ,CAAC,UAAU;IAC/B;EACF,CAAC;EACD;EACAgB,QAAQ,EAAE;IACRN,MAAM,EAAE;MACNC,OAAO,EAAEX,QAAQ,CAACiB,KAAK;MACvBL,OAAO,EAAEZ,QAAQ,CAACiB,KAAK;MACvBJ,QAAQ,EAAEb,QAAQ,CAAC,YAAY;IACjC,CAAC;IACDc,UAAU,EAAE;MACVH,OAAO,EAAEV,SAAS,CAACD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;MAC7CY,OAAO,EAAEZ,QAAQ,CAAC,YAAY,CAAC;MAC/Ba,QAAQ,EAAE;IACZ,CAAC;IACDE,KAAK,EAAE;MACLJ,OAAO,EAAEX,QAAQ,CAACiB,KAAK;MACvBL,OAAO,EAAEZ,QAAQ,CAACiB,KAAK;MACvBJ,QAAQ,EAAEb,QAAQ,CAAC,YAAY;IACjC;EACF,CAAC;EACD;EACAkB,MAAM,EAAE;IACNR,MAAM,EAAE;MACNC,OAAO,EAAEX,QAAQ,CAAC,WAAW,CAAC;MAC9BY,OAAO,EAAEZ,QAAQ,CAAC,WAAW,CAAC;MAC9Ba,QAAQ,EAAEb,QAAQ,CAAC,UAAU;IAC/B,CAAC;IACDc,UAAU,EAAE;MACVH,OAAO,EAAEV,SAAS,CAACD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;MAC5CY,OAAO,EAAEX,SAAS,CAACD,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;MAC/Ca,QAAQ,EAAE;IACZ,CAAC;IACDE,KAAK,EAAE;MACLJ,OAAO,EAAEX,QAAQ,CAAC,WAAW,CAAC;MAC9BY,OAAO,EAAEZ,QAAQ,CAAC,WAAW,CAAC;MAC9Ba,QAAQ,EAAEb,QAAQ,CAAC,UAAU;IAC/B;EACF;AACF,CAAC;;AAED;AACA,MAAMmB,QAAyB,GAAG,EAAE;AAEpC,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,WAAW,GAAG,CAAC;AAErB,MAAMC,mBAAmB,GAAG7B,UAAU,CAAC8B,MAAM,CAAC;EAC5CC,gBAAgB,EAAE;IAChBC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,aAAa,gBAAGnC,UAAU,CACrC,CACE;EACEoC,KAAK,GAAG,SAAS;EACjBZ,KAAK;EACLa,SAAS,GAAG,KAAK;EACjBf,QAAQ,GAAG,KAAK;EAChBgB,IAAI;EACJC,YAAY,GAAG,OAAO;EACtBC,OAAO;EACPC,kBAAkB;EAClBC,iBAAiB;EACjBC;AACF,CAAC,EACDC,GAAG,KACA;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACH,MAAM;IAAEC;EAAmB,CAAC,GAAGzC,gBAAgB,CAAC,CAAC;EACjD,MAAM;IAAE0C,QAAQ;IAAEC,SAAS;IAAEC,UAAU;IAAEC;EAAmB,CAAC,GAC3D5C,iBAAiB,CAAC,CAAC;EACrB,MAAM6C,aAAa,GAAGlD,gBAAgB,CAAC,CAAC;EAExC,MAAMmD,cAAc,GAAGvD,QAAQ,CAACwD,uBAAuB,CAAC5C,MAAM,CAAC;;EAE/D;EACA,MAAM6C,qBAAqB,GAAGtD,gBAAgB,CAAC,MAAM;IACnD;IACA,MAAMuD,eAAe,GAAGzD,gBAAgB,CACtCiD,QAAQ,CAACS,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CACE7C,cAAc,CAACmB,KAAK,CAAC,CAACb,UAAU,CAACH,OAAO,EACxCH,cAAc,CAACmB,KAAK,CAAC,CAACb,UAAU,CAACF,OAAO,CAE5C,CAAC;IAED,MAAM0C,WAAW,GAAG3D,gBAAgB,CAClCiD,QAAQ,CAACS,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CACE7C,cAAc,CAACmB,KAAK,CAAC,CAACjB,MAAM,CAACC,OAAO,EACpCH,cAAc,CAACmB,KAAK,CAAC,CAACjB,MAAM,CAACE,OAAO,CAExC,CAAC;IAED,OAAO;MACL0C,WAAW;MACXF;IACF,CAAC;EACH,CAAC,CAAC;EAEF,MAAMG,+BAA+B,GAAG1D,gBAAgB,CAAC,OAAO;IAC9D8B,KAAK,EAAEhC,gBAAgB,CACrBiD,QAAQ,CAACS,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CACE7C,cAAc,CAACmB,KAAK,CAAC,CAACjB,MAAM,CAACC,OAAO,EACpCH,cAAc,CAACmB,KAAK,CAAC,CAACjB,MAAM,CAACE,OAAO,CAExC;EACF,CAAC,CAAC,CAAC;;EAEH;EACA,MAAM4C,8BAA8B,GAAG5D,gBAAgB,CAAC,OAAO;IAC7D+B,KAAK,EAAEhC,gBAAgB,CACrBiD,QAAQ,CAACS,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CACE7C,cAAc,CAACmB,KAAK,CAAC,CAACZ,KAAK,CAACJ,OAAO,EACnCH,cAAc,CAACmB,KAAK,CAAC,CAACZ,KAAK,CAACH,OAAO,CAEvC;EACF,CAAC,CAAC,CAAC;EAEH,MAAM6C,0BAA0B,GAC9B/D,QAAQ,CAACwD,uBAAuB,CAAC7C,kBAAkB,CAAC;EAEtD,oBACEf,KAAA,CAAAoE,aAAA,CAAClE,SAAS;IACR2C,GAAG,EAAEA,GAAI;IACTH,kBAAkB,EAAEA,kBAAkB,IAAIjB,KAAM;IAChDkB,iBAAiB,EAAEA,iBAAkB;IACrC0B,iBAAiB,EAAE,QAAS;IAC5BC,kBAAkB,EAAE;MAAE/C,QAAQ,EAAEA,QAAQ,IAAI;IAAM,CAAE;IACpDqB,MAAM,EAAEA,MAAO;IACfH,OAAO,EAAEA,OAAQ;IACjBc,SAAS,EAAEA,SAAU;IACrBC,UAAU,EAAEA,UAAW;IACvBe,UAAU,EAAE,IAAK;IACjBhD,QAAQ,EAAEA,QAAS;IACnBiD,KAAK,EAAE,CAAClC,SAAS,GAAG7B,cAAc,CAACgE,iBAAiB,GAAG,CAAC;EAAE,gBAE1DzE,KAAA,CAAAoE,aAAA,CAAChE,QAAQ,CAACsE,IAAI;IACZF,KAAK,EAAE,CACL/D,cAAc,CAACkE,MAAM,EACrBlE,cAAc,CAACmE,iBAAiB,EAChC5C,mBAAmB,CAACE,gBAAgB,EACpCI,SAAS,IAAI;MAAEuC,iBAAiB,EAAE;IAAG,CAAC,EACtC;MAAEC,SAAS,EAAE/C;IAAY,CAAC,EAC1BS,YAAY,KAAK,KAAK,IAAI;MAAEuC,aAAa,EAAE;IAAc,CAAC,EAC1DxD,QAAQ,GACJ;MACEuC,eAAe,GAAAhB,qBAAA,GAAE5B,cAAc,CAACmB,KAAK,CAAC,cAAAS,qBAAA,gBAAAA,qBAAA,GAArBA,qBAAA,CAAuBtB,UAAU,cAAAsB,qBAAA,uBAAjCA,qBAAA,CAAmCvB,QAAQ;MAC5DyC,WAAW,GAAAjB,sBAAA,GAAE7B,cAAc,CAACmB,KAAK,CAAC,cAAAU,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuB3B,MAAM,cAAA2B,sBAAA,uBAA7BA,sBAAA,CAA+BxB,QAAQ;MACpDyD,OAAO,EAAElD;IACX,CAAC,GACD;MACEgC,eAAe,GAAAd,sBAAA,GAAE9B,cAAc,CAACmB,KAAK,CAAC,cAAAW,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuBxB,UAAU,cAAAwB,sBAAA,uBAAjCA,sBAAA,CAAmC3B,OAAO;MAC3D2C,WAAW,GAAAf,sBAAA,GAAE/B,cAAc,CAACmB,KAAK,CAAC,cAAAY,sBAAA,uBAArBA,sBAAA,CAAuB7B,MAAM,CAACC;IAC7C,CAAC;IACL;AACZ;IACY,CAACqC,aAAa,IAAI,CAACnC,QAAQ,IAAIkC,kBAAkB,EACjD,CAAClC,QAAQ,IAAIsC,qBAAqB;EAClC,GAEDtB,IAAI,KACF,CAAChB,QAAQ,gBACRvB,KAAA,CAAAoE,aAAA,CAACD,0BAA0B;IACzBc,gBAAgB;IAChBC,IAAI,EAAE3C,IAAK;IACX4C,aAAa,EAAEjB,8BAA+B;IAC9C7B,KAAK,GAAAa,sBAAA,GAAEhC,cAAc,CAACmB,KAAK,CAAC,cAAAa,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuBzB,KAAK,cAAAyB,sBAAA,uBAA5BA,sBAAA,CAA8B7B,OAAQ;IAC7C+D,IAAI,EAAEvD;EAAS,CAChB,CAAC,gBAEF7B,KAAA,CAAAoE,aAAA,CAACtD,YAAY;IACXmE,gBAAgB;IAChBC,IAAI,EAAE3C,IAAK;IACXF,KAAK,GAAAc,sBAAA,GAAEjC,cAAc,CAACmB,KAAK,CAAC,cAAAc,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuB1B,KAAK,cAAA0B,sBAAA,uBAA5BA,sBAAA,CAA8B5B,QAAS;IAC9C6D,IAAI,EAAEvD;EAAS,CAChB,CACF,CAAC,eACJ7B,KAAA,CAAAoE,aAAA,CAACT,cAAc;IACb0B,IAAI,EAAEhC,kBAAkB,GAAG,UAAU,GAAG,kBAAmB;IAC3DiC,MAAM,EAAE,UAAW;IACnBF,IAAI,EAAEnE,kBAAmB;IACzBsD,UAAU,EAAE,KAAM;IAClBgB,2BAA2B;IAC3BC,yBAAyB,EAAC,qBAAqB;IAC/CC,aAAa,EAAE,CAAE;IACjBC,aAAa,EAAC,MAAM;IACpBlB,KAAK,EAAE,CACL/D,cAAc,CAACgB,KAAK,EACpBF,QAAQ,GACJ;MAAEc,KAAK,GAAAe,sBAAA,GAAElC,cAAc,CAACmB,KAAK,CAAC,cAAAe,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuB3B,KAAK,cAAA2B,sBAAA,uBAA5BA,sBAAA,CAA8B7B;IAAS,CAAC,GACjD;MAAE,GAAG0C;IAAgC,CAAC;EAC1C,GAEDxC,KACa,CACH,CACN,CAAC;AAEhB,CACF,CAAC;AAED,eAAeW,aAAa"}
1
+ {"version":3,"names":["React","forwardRef","Pressable","StyleSheet","Animated","interpolateColor","useAnimatedProps","useAnimatedStyle","useReducedMotion","IOButtonStyles","IOColors","hexToRgba","useIONewTypeface","useIOTheme","useScaleAnimation","AnimatedIcon","IconClassComponent","IOText","buttonTextFontSize","iconSize","DISABLED_OPACITY","ICON_MARGIN","IOButtonStylesLocal","create","buttonWithBorder","borderWidth","ButtonOutline","color","label","fullWidth","disabled","icon","iconPosition","onPress","accessibilityLabel","accessibilityHint","testID","ref","_mapColorStates$color","_mapColorStates$color2","_mapColorStates$color3","_mapColorStates$color4","_mapColorStates$color5","_mapColorStates$color6","_mapColorStates$color7","theme","newTypefaceEnabled","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","AnimatedIOText","createAnimatedComponent","mapColorStates","primary","foreground","default","pressed","background","contrast","white","pressedAnimationStyle","backgroundColor","value","borderColor","pressedColorLabelAnimationStyle","pressedColorIconAnimationStyle","AnimatedIconClassComponent","createElement","accessibilityRole","accessibilityState","accessible","style","dimensionsDefault","View","button","buttonSizeDefault","paddingHorizontal","columnGap","flexDirection","opacity","allowFontScaling","name","animatedProps","size","font","weight","accessibilityElementsHidden","importantForAccessibility","numberOfLines","ellipsizeMode"],"sourceRoot":"../../../../src","sources":["components/buttons/ButtonOutline.tsx"],"mappings":"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"}
@@ -1,54 +1,18 @@
1
- import React, { useCallback, useEffect, useRef } from "react";
2
- import { Pressable, StyleSheet } from "react-native";
1
+ import React, { forwardRef, useCallback, useEffect, useRef } from "react";
2
+ import { Pressable } from "react-native";
3
3
  import ReactNativeHapticFeedback from "react-native-haptic-feedback";
4
4
  import Animated, { interpolateColor, useAnimatedStyle, useReducedMotion } from "react-native-reanimated";
5
- import { IOButtonStyles, IOColors, enterTransitionInnerContent, enterTransitionInnerContentSmall, exitTransitionInnerContent } from "../../core";
5
+ import { IOButtonStyles, IOColors, enterTransitionInnerContent, enterTransitionInnerContentSmall, exitTransitionInnerContent, useIOTheme } from "../../core";
6
6
  import { useScaleAnimation } from "../../hooks";
7
7
  import { Icon } from "../icons";
8
8
  import { LoadingSpinner } from "../loadingSpinner";
9
9
  import { ButtonText } from "../typography/ButtonText";
10
- const colorPrimaryButtonDisabled = "grey-200";
11
10
  const ICON_MARGIN = 8;
12
11
  const DISABLED_OPACITY = 0.5;
13
12
 
14
13
  // Icon size
15
14
  const iconSize = 20;
16
- const styles = StyleSheet.create({
17
- backgroundDisabled: {
18
- backgroundColor: IOColors[colorPrimaryButtonDisabled],
19
- opacity: DISABLED_OPACITY
20
- }
21
- });
22
- const mapColorStates = {
23
- // Primary button
24
- primary: {
25
- default: IOColors["blueIO-500"],
26
- pressed: IOColors["blueIO-600"],
27
- label: {
28
- default: "white",
29
- disabled: "grey-700"
30
- }
31
- },
32
- // Danger button
33
- danger: {
34
- default: IOColors["error-600"],
35
- pressed: IOColors["error-500"],
36
- label: {
37
- default: "white",
38
- disabled: "grey-700"
39
- }
40
- },
41
- // Contrast button
42
- contrast: {
43
- default: IOColors.white,
44
- pressed: IOColors["blueIO-50"],
45
- label: {
46
- default: "blueIO-500",
47
- disabled: "grey-700"
48
- }
49
- }
50
- };
51
- export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
15
+ export const ButtonSolid = /*#__PURE__*/forwardRef(({
52
16
  color = "primary",
53
17
  label,
54
18
  fullWidth = false,
@@ -61,7 +25,8 @@ export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
61
25
  accessibilityHint,
62
26
  testID
63
27
  }, ref) => {
64
- var _mapColorStates$color, _mapColorStates$color2, _mapColorStates$color3;
28
+ var _mapColorStates$color, _mapColorStates$color2, _mapColorStates$color3, _mapColorStates$color4;
29
+ const theme = useIOTheme();
65
30
  const {
66
31
  progress,
67
32
  onPressIn,
@@ -69,6 +34,44 @@ export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
69
34
  scaleAnimatedStyle
70
35
  } = useScaleAnimation();
71
36
  const reducedMotion = useReducedMotion();
37
+ const mapColorStates = {
38
+ // Primary button
39
+ primary: {
40
+ background: {
41
+ default: IOColors[theme["interactiveElem-default"]],
42
+ pressed: IOColors[theme["interactiveElem-pressed"]],
43
+ disabled: IOColors[theme["interactiveElem-disabled"]]
44
+ },
45
+ foreground: {
46
+ default: theme["buttonText-default"],
47
+ disabled: theme["buttonText-disabled"]
48
+ }
49
+ },
50
+ // Danger button
51
+ danger: {
52
+ background: {
53
+ default: IOColors["error-600"],
54
+ pressed: IOColors["error-500"],
55
+ disabled: IOColors[theme["interactiveElem-disabled"]]
56
+ },
57
+ foreground: {
58
+ default: theme["buttonText-default"],
59
+ disabled: theme["buttonText-disabled"]
60
+ }
61
+ },
62
+ // Contrast button
63
+ contrast: {
64
+ background: {
65
+ default: IOColors.white,
66
+ pressed: IOColors["blueIO-50"],
67
+ disabled: IOColors["blueIO-50"]
68
+ },
69
+ foreground: {
70
+ default: "blueIO-500",
71
+ disabled: "blueIO-500"
72
+ }
73
+ }
74
+ };
72
75
 
73
76
  /* Prevent the component from triggering the `isEntering' transition
74
77
  on the on the first render. Solution from this discussion:
@@ -83,7 +86,7 @@ export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
83
86
  // Interpolate animation values from `isPressed` values
84
87
  const pressedAnimationStyle = useAnimatedStyle(() => {
85
88
  // Link color states to the pressed states
86
- const backgroundColor = interpolateColor(progress.value, [0, 1], [mapColorStates[color].default, mapColorStates[color].pressed]);
89
+ const backgroundColor = interpolateColor(progress.value, [0, 1], [mapColorStates[color].background.default, mapColorStates[color].background.pressed]);
87
90
  return {
88
91
  backgroundColor
89
92
  };
@@ -98,8 +101,11 @@ export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
98
101
  onPress(event);
99
102
  }, [loading, onPress]);
100
103
 
104
+ // Background
105
+ const backgroundColor = disabled ? (_mapColorStates$color = mapColorStates[color]) === null || _mapColorStates$color === void 0 || (_mapColorStates$color = _mapColorStates$color.background) === null || _mapColorStates$color === void 0 ? void 0 : _mapColorStates$color.disabled : (_mapColorStates$color2 = mapColorStates[color]) === null || _mapColorStates$color2 === void 0 || (_mapColorStates$color2 = _mapColorStates$color2.background) === null || _mapColorStates$color2 === void 0 ? void 0 : _mapColorStates$color2.default;
106
+
101
107
  // Label & Icons colors
102
- const foregroundColor = disabled ? (_mapColorStates$color = mapColorStates[color]) === null || _mapColorStates$color === void 0 || (_mapColorStates$color = _mapColorStates$color.label) === null || _mapColorStates$color === void 0 ? void 0 : _mapColorStates$color.disabled : (_mapColorStates$color2 = mapColorStates[color]) === null || _mapColorStates$color2 === void 0 || (_mapColorStates$color2 = _mapColorStates$color2.label) === null || _mapColorStates$color2 === void 0 ? void 0 : _mapColorStates$color2.default;
108
+ const foregroundColor = disabled ? (_mapColorStates$color3 = mapColorStates[color]) === null || _mapColorStates$color3 === void 0 || (_mapColorStates$color3 = _mapColorStates$color3.foreground) === null || _mapColorStates$color3 === void 0 ? void 0 : _mapColorStates$color3.disabled : (_mapColorStates$color4 = mapColorStates[color]) === null || _mapColorStates$color4 === void 0 || (_mapColorStates$color4 = _mapColorStates$color4.foreground) === null || _mapColorStates$color4 === void 0 ? void 0 : _mapColorStates$color4.default;
103
109
  return /*#__PURE__*/React.createElement(Pressable, {
104
110
  testID: testID,
105
111
  ref: ref,
@@ -120,12 +126,13 @@ export const ButtonSolid = /*#__PURE__*/React.forwardRef(({
120
126
  style: !fullWidth ? IOButtonStyles.dimensionsDefault : {}
121
127
  }, /*#__PURE__*/React.createElement(Animated.View, {
122
128
  style: [IOButtonStyles.button, IOButtonStyles.buttonSizeDefault, {
129
+ backgroundColor,
123
130
  overflow: "hidden"
124
131
  }, fullWidth && {
125
132
  paddingHorizontal: 16
126
- }, disabled ? styles.backgroundDisabled : {
127
- backgroundColor: (_mapColorStates$color3 = mapColorStates[color]) === null || _mapColorStates$color3 === void 0 ? void 0 : _mapColorStates$color3.default
128
- },
133
+ }, disabled ? {
134
+ opacity: DISABLED_OPACITY
135
+ } : {},
129
136
  /* Prevent Reanimated from overriding background colors
130
137
  if button is disabled */
131
138
  !disabled && !reducedMotion && scaleAnimatedStyle, !disabled && pressedAnimationStyle]
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useRef","Pressable","StyleSheet","ReactNativeHapticFeedback","Animated","interpolateColor","useAnimatedStyle","useReducedMotion","IOButtonStyles","IOColors","enterTransitionInnerContent","enterTransitionInnerContentSmall","exitTransitionInnerContent","useScaleAnimation","Icon","LoadingSpinner","ButtonText","colorPrimaryButtonDisabled","ICON_MARGIN","DISABLED_OPACITY","iconSize","styles","create","backgroundDisabled","backgroundColor","opacity","mapColorStates","primary","default","pressed","label","disabled","danger","contrast","white","ButtonSolid","forwardRef","color","fullWidth","loading","icon","iconPosition","onPress","accessibilityLabel","accessibilityHint","testID","ref","_mapColorStates$color","_mapColorStates$color2","_mapColorStates$color3","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","isMounted","current","pressedAnimationStyle","value","handleOnPress","event","trigger","foregroundColor","createElement","accessible","accessibilityState","busy","accessibilityRole","style","dimensionsDefault","View","button","buttonSizeDefault","overflow","paddingHorizontal","buttonInner","entering","undefined","exiting","columnGap","flexDirection","allowFontScaling","name","size","numberOfLines","ellipsizeMode","accessibilityElementsHidden","importantForAccessibility"],"sourceRoot":"../../../../src","sources":["components/buttons/ButtonSolid.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAoBC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7E,SAEEC,SAAS,EACTC,UAAU,QAEL,cAAc;AACrB,OAAOC,yBAAyB,MAAM,8BAA8B;AACpE,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,QACX,yBAAyB;AAChC,SACEC,cAAc,EACdC,QAAQ,EACRC,2BAA2B,EAC3BC,gCAAgC,EAChCC,0BAA0B,QACrB,YAAY;AACnB,SAASC,iBAAiB,QAAQ,aAAa;AAE/C,SAAmCC,IAAI,QAAQ,UAAU;AACzD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,UAAU,QAAQ,0BAA0B;AAarD,MAAMC,0BAAoC,GAAG,UAAU;AACvD,MAAMC,WAAW,GAAG,CAAC;AACrB,MAAMC,gBAAgB,GAAG,GAAG;;AAE5B;AACA,MAAMC,QAAyB,GAAG,EAAE;AAEpC,MAAMC,MAAM,GAAGnB,UAAU,CAACoB,MAAM,CAAC;EAC/BC,kBAAkB,EAAE;IAClBC,eAAe,EAAEf,QAAQ,CAACQ,0BAA0B,CAAC;IACrDQ,OAAO,EAAEN;EACX;AACF,CAAC,CAAC;AA6BF,MAAMO,cAGL,GAAG;EACF;EACAC,OAAO,EAAE;IACPC,OAAO,EAAEnB,QAAQ,CAAC,YAAY,CAAC;IAC/BoB,OAAO,EAAEpB,QAAQ,CAAC,YAAY,CAAC;IAC/BqB,KAAK,EAAE;MACLF,OAAO,EAAE,OAAO;MAChBG,QAAQ,EAAE;IACZ;EACF,CAAC;EACD;EACAC,MAAM,EAAE;IACNJ,OAAO,EAAEnB,QAAQ,CAAC,WAAW,CAAC;IAC9BoB,OAAO,EAAEpB,QAAQ,CAAC,WAAW,CAAC;IAC9BqB,KAAK,EAAE;MACLF,OAAO,EAAE,OAAO;MAChBG,QAAQ,EAAE;IACZ;EACF,CAAC;EACD;EACAE,QAAQ,EAAE;IACRL,OAAO,EAAEnB,QAAQ,CAACyB,KAAK;IACvBL,OAAO,EAAEpB,QAAQ,CAAC,WAAW,CAAC;IAC9BqB,KAAK,EAAE;MACLF,OAAO,EAAE,YAAY;MACrBG,QAAQ,EAAE;IACZ;EACF;AACF,CAAC;AAED,OAAO,MAAMI,WAAW,gBAAGtC,KAAK,CAACuC,UAAU,CACzC,CACE;EACEC,KAAK,GAAG,SAAS;EACjBP,KAAK;EACLQ,SAAS,GAAG,KAAK;EACjBP,QAAQ,GAAG,KAAK;EAChBQ,OAAO,GAAG,KAAK;EACfC,IAAI;EACJC,YAAY,GAAG,OAAO;EACtBC,OAAO;EACPC,kBAAkB;EAClBC,iBAAiB;EACjBC;AACF,CAAC,EACDC,GAAG,KACA;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACH,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,UAAU;IAAEC;EAAmB,CAAC,GAC3DxC,iBAAiB,CAAC,CAAC;EACrB,MAAMyC,aAAa,GAAG/C,gBAAgB,CAAC,CAAC;;EAExC;AACJ;AACA;AACA;EACI,MAAMgD,SAAS,GAAGvD,MAAM,CAAC,KAAK,CAAC;EAE/BD,SAAS,CAAC,MAAM;IACd;IACAwD,SAAS,CAACC,OAAO,GAAG,IAAI;EAC1B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMC,qBAAqB,GAAGnD,gBAAgB,CAAC,MAAM;IACnD;IACA,MAAMkB,eAAe,GAAGnB,gBAAgB,CACtC6C,QAAQ,CAACQ,KAAK,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAChC,cAAc,CAACW,KAAK,CAAC,CAACT,OAAO,EAAEF,cAAc,CAACW,KAAK,CAAC,CAACR,OAAO,CAC/D,CAAC;IAED,OAAO;MAAEL;IAAgB,CAAC;EAC5B,CAAC,CAAC;EAEF,MAAMmC,aAAa,GAAG7D,WAAW,CAC9B8D,KAA4B,IAAK;IAChC;AACR;IACQ,IAAIrB,OAAO,EAAE;MACX;IACF;IACApC,yBAAyB,CAAC0D,OAAO,CAAC,aAAa,CAAC;IAChDnB,OAAO,CAACkB,KAAK,CAAC;EAChB,CAAC,EACD,CAACrB,OAAO,EAAEG,OAAO,CACnB,CAAC;;EAED;EACA,MAAMoB,eAAyB,GAAG/B,QAAQ,IAAAgB,qBAAA,GACtCrB,cAAc,CAACW,KAAK,CAAC,cAAAU,qBAAA,gBAAAA,qBAAA,GAArBA,qBAAA,CAAuBjB,KAAK,cAAAiB,qBAAA,uBAA5BA,qBAAA,CAA8BhB,QAAQ,IAAAiB,sBAAA,GACtCtB,cAAc,CAACW,KAAK,CAAC,cAAAW,sBAAA,gBAAAA,sBAAA,GAArBA,sBAAA,CAAuBlB,KAAK,cAAAkB,sBAAA,uBAA5BA,sBAAA,CAA8BpB,OAAO;EAEzC,oBACE/B,KAAA,CAAAkE,aAAA,CAAC9D,SAAS;IACR4C,MAAM,EAAEA,MAAO;IACfC,GAAG,EAAEA,GAAI;IACTkB,UAAU,EAAE;IACZ;IAAA;IACArB,kBAAkB,EAAEA,kBAAkB,IAAIb,KAAM;IAChDc,iBAAiB,EAAEA,iBAAkB;IACrCqB,kBAAkB,EAAE;MAClBC,IAAI,EAAE3B,OAAO;MACbR,QAAQ,EAAEA,QAAQ,IAAI;IACxB,CAAE;IACFoC,iBAAiB,EAAE,QAAS;IAC5BzB,OAAO,EAAEiB,aAAc;IACvBR,SAAS,EAAEA,SAAU;IACrBC,UAAU,EAAEA,UAAW;IACvBrB,QAAQ,EAAEA,QAAS;IACnBqC,KAAK,EAAE,CAAC9B,SAAS,GAAG9B,cAAc,CAAC6D,iBAAiB,GAAG,CAAC;EAAE,gBAE1DxE,KAAA,CAAAkE,aAAA,CAAC3D,QAAQ,CAACkE,IAAI;IACZF,KAAK,EAAE,CACL5D,cAAc,CAAC+D,MAAM,EACrB/D,cAAc,CAACgE,iBAAiB,EAChC;MAAEC,QAAQ,EAAE;IAAS,CAAC,EACtBnC,SAAS,IAAI;MAAEoC,iBAAiB,EAAE;IAAG,CAAC,EACtC3C,QAAQ,GACJV,MAAM,CAACE,kBAAkB,GACzB;MAAEC,eAAe,GAAAyB,sBAAA,GAAEvB,cAAc,CAACW,KAAK,CAAC,cAAAY,sBAAA,uBAArBA,sBAAA,CAAuBrB;IAAQ,CAAC;IACvD;AACZ;IACY,CAACG,QAAQ,IAAI,CAACuB,aAAa,IAAID,kBAAkB,EACjD,CAACtB,QAAQ,IAAI0B,qBAAqB;EAClC,GAEDlB,OAAO,iBACN1C,KAAA,CAAAkE,aAAA,CAAC3D,QAAQ,CAACkE,IAAI;IACZF,KAAK,EAAE5D,cAAc,CAACmE,WAAY;IAClCC,QAAQ,EACNrB,SAAS,CAACC,OAAO,GAAG7C,gCAAgC,GAAGkE,SACxD;IACDC,OAAO,EAAElE;EAA2B,gBAEpCf,KAAA,CAAAkE,aAAA,CAAChD,cAAc;IAACsB,KAAK,EAAEyB;EAAgB,CAAE,CAC5B,CAChB,EAEA,CAACvB,OAAO,iBACP1C,KAAA,CAAAkE,aAAA,CAAC3D,QAAQ,CAACkE,IAAI;IACZF,KAAK,EAAE,CACL5D,cAAc,CAACmE,WAAW,EAC1B;MAAEI,SAAS,EAAE7D;IAAY,CAAC;IAC1B;AAChB;IACgBuB,YAAY,KAAK,KAAK,IAAI;MAAEuC,aAAa,EAAE;IAAc,CAAC,CAC1D;IACFJ,QAAQ,EACNrB,SAAS,CAACC,OAAO,GAAG9C,2BAA2B,GAAGmE;EACnD,GAEArC,IAAI,iBACH3C,KAAA,CAAAkE,aAAA,CAACjD,IAAI;IACHmE,gBAAgB;IAChBC,IAAI,EAAE1C,IAAK;IACX2C,IAAI,EAAE/D,QAAS;IACfiB,KAAK,EAAEyB;EAAgB,CACxB,CACF,eACDjE,KAAA,CAAAkE,aAAA,CAAC/C,UAAU;IACTqB,KAAK,EAAEyB,eAAgB;IACvBM,KAAK,EAAE5D,cAAc,CAACsB,KAAM;IAC5BsD,aAAa,EAAE,CAAE;IACjBC,aAAa,EAAC,MAAM;IACpBrB,UAAU,EAAE,KAAM;IAClBsB,2BAA2B;IAC3BC,yBAAyB,EAAC;EAAqB,GAE9CzD,KACS,CACC,CAEJ,CACN,CAAC;AAEhB,CACF,CAAC;AAED,eAAeK,WAAW"}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useEffect","useRef","Pressable","ReactNativeHapticFeedback","Animated","interpolateColor","useAnimatedStyle","useReducedMotion","IOButtonStyles","IOColors","enterTransitionInnerContent","enterTransitionInnerContentSmall","exitTransitionInnerContent","useIOTheme","useScaleAnimation","Icon","LoadingSpinner","ButtonText","ICON_MARGIN","DISABLED_OPACITY","iconSize","ButtonSolid","color","label","fullWidth","disabled","loading","icon","iconPosition","onPress","accessibilityLabel","accessibilityHint","testID","ref","_mapColorStates$color","_mapColorStates$color2","_mapColorStates$color3","_mapColorStates$color4","theme","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","mapColorStates","primary","background","default","pressed","foreground","danger","contrast","white","isMounted","current","pressedAnimationStyle","backgroundColor","value","handleOnPress","event","trigger","foregroundColor","createElement","accessible","accessibilityState","busy","accessibilityRole","style","dimensionsDefault","View","button","buttonSizeDefault","overflow","paddingHorizontal","opacity","buttonInner","entering","undefined","exiting","columnGap","flexDirection","allowFontScaling","name","size","numberOfLines","ellipsizeMode","accessibilityElementsHidden","importantForAccessibility"],"sourceRoot":"../../../../src","sources":["components/buttons/ButtonSolid.tsx"],"mappings":"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"}
@@ -1,38 +1,13 @@
1
1
  import React from "react";
2
2
  import { Pressable } from "react-native";
3
3
  import Animated, { interpolateColor, useAnimatedProps, useReducedMotion } from "react-native-reanimated";
4
- import { IOColors, IOIconButtonStyles, IOStyles, hexToRgba } from "../../core";
4
+ import { IOColors, IOIconButtonStyles, IOStyles, IOThemeLight, hexToRgba, useIOTheme } from "../../core";
5
5
  import { useScaleAnimation } from "../../hooks";
6
6
  import { AnimatedIcon, IconClassComponent } from "../icons";
7
- const mapColorStates = {
8
- // Primary button
9
- primary: {
10
- icon: {
11
- default: IOColors["blueIO-500"],
12
- pressed: IOColors["blueIO-600"],
13
- disabled: hexToRgba(IOColors["blueIO-500"], 0.25)
14
- }
15
- },
16
- // Neutral button
17
- neutral: {
18
- icon: {
19
- default: IOColors.black,
20
- pressed: IOColors["grey-850"],
21
- disabled: IOColors["grey-450"]
22
- }
23
- },
24
- // Contrast button
25
- contrast: {
26
- icon: {
27
- default: IOColors.white,
28
- pressed: hexToRgba(IOColors.white, 0.85),
29
- disabled: hexToRgba(IOColors.white, 0.25)
30
- }
31
- }
32
- };
33
7
  const AnimatedIconClassComponent = Animated.createAnimatedComponent(IconClassComponent);
34
8
  export const IconButton = ({
35
9
  color = "primary",
10
+ persistentColorMode = false,
36
11
  icon,
37
12
  iconSize = 24,
38
13
  disabled = false,
@@ -42,6 +17,7 @@ export const IconButton = ({
42
17
  testID
43
18
  }) => {
44
19
  var _mapColorStates$color, _mapColorStates$color2;
20
+ const theme = useIOTheme();
45
21
  const {
46
22
  progress,
47
23
  onPressIn,
@@ -49,6 +25,32 @@ export const IconButton = ({
49
25
  scaleAnimatedStyle
50
26
  } = useScaleAnimation("exaggerated");
51
27
  const reducedMotion = useReducedMotion();
28
+ const mapColorStates = {
29
+ // Primary button
30
+ primary: {
31
+ icon: {
32
+ default: IOColors[theme["interactiveElem-default"]],
33
+ pressed: IOColors[theme["interactiveElem-pressed"]],
34
+ disabled: IOColors[theme["interactiveElem-disabled"]]
35
+ }
36
+ },
37
+ // Neutral button
38
+ neutral: {
39
+ icon: {
40
+ default: persistentColorMode ? IOColors[IOThemeLight["neutralButton-default"]] : IOColors[theme["neutralButton-default"]],
41
+ pressed: persistentColorMode ? IOColors[IOThemeLight["neutralButton-pressed"]] : IOColors[theme["neutralButton-pressed"]],
42
+ disabled: persistentColorMode ? IOColors[IOThemeLight["neutralButton-disabled"]] : IOColors[theme["neutralButton-disabled"]]
43
+ }
44
+ },
45
+ // Contrast button
46
+ contrast: {
47
+ icon: {
48
+ default: IOColors.white,
49
+ pressed: hexToRgba(IOColors.white, 0.85),
50
+ disabled: hexToRgba(IOColors.white, 0.25)
51
+ }
52
+ }
53
+ };
52
54
 
53
55
  // Animate the <Icon> color prop
54
56
  const animatedColor = useAnimatedProps(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Pressable","Animated","interpolateColor","useAnimatedProps","useReducedMotion","IOColors","IOIconButtonStyles","IOStyles","hexToRgba","useScaleAnimation","AnimatedIcon","IconClassComponent","mapColorStates","primary","icon","default","pressed","disabled","neutral","black","contrast","white","AnimatedIconClassComponent","createAnimatedComponent","IconButton","color","iconSize","onPress","accessibilityLabel","accessibilityHint","testID","_mapColorStates$color","_mapColorStates$color2","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","animatedColor","iconColor","value","createElement","accessible","accessibilityRole","accessibilityState","hitSlop","View","style","buttonSizeSmall","alignCenter","centerJustified","allowFontScaling","name","size","animatedProps"],"sourceRoot":"../../../../src","sources":["components/buttons/IconButton.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","Pressable","Animated","interpolateColor","useAnimatedProps","useReducedMotion","IOColors","IOIconButtonStyles","IOStyles","IOThemeLight","hexToRgba","useIOTheme","useScaleAnimation","AnimatedIcon","IconClassComponent","AnimatedIconClassComponent","createAnimatedComponent","IconButton","color","persistentColorMode","icon","iconSize","disabled","onPress","accessibilityLabel","accessibilityHint","testID","_mapColorStates$color","_mapColorStates$color2","theme","progress","onPressIn","onPressOut","scaleAnimatedStyle","reducedMotion","mapColorStates","primary","default","pressed","neutral","contrast","white","animatedColor","iconColor","value","createElement","accessible","accessibilityRole","accessibilityState","hitSlop","View","style","buttonSizeSmall","alignCenter","centerJustified","allowFontScaling","name","size","animatedProps"],"sourceRoot":"../../../../src","sources":["components/buttons/IconButton.tsx"],"mappings":"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"}
@@ -1,35 +1,10 @@
1
1
  import * as React from "react";
2
2
  import { Pressable } from "react-native";
3
3
  import Animated, { interpolateColor, useAnimatedStyle, useReducedMotion } from "react-native-reanimated";
4
- import { IOButtonStyles, IOIconButtonStyles } from "../../core";
4
+ import { IOButtonStyles, IOIconButtonStyles, useIOTheme } from "../../core";
5
5
  import { IOColors, hexToRgba } from "../../core/IOColors";
6
6
  import { useScaleAnimation } from "../../hooks";
7
7
  import { AnimatedIcon } from "../icons";
8
- const mapColorStates = {
9
- // Primary button
10
- primary: {
11
- background: {
12
- default: IOColors["blueIO-500"],
13
- pressed: IOColors["blueIO-600"],
14
- disabled: IOColors["grey-100"]
15
- },
16
- icon: {
17
- default: IOColors.white,
18
- disabled: IOColors["grey-450"]
19
- }
20
- },
21
- contrast: {
22
- background: {
23
- default: IOColors.white,
24
- pressed: IOColors["blueIO-50"],
25
- disabled: hexToRgba(IOColors.white, 0.25)
26
- },
27
- icon: {
28
- default: IOColors["blueIO-500"],
29
- disabled: IOColors["blueIO-500"]
30
- }
31
- }
32
- };
33
8
  export const IconButtonSolid = ({
34
9
  icon,
35
10
  color = "primary",
@@ -40,6 +15,7 @@ export const IconButtonSolid = ({
40
15
  testID
41
16
  }) => {
42
17
  var _mapColorStates$color, _mapColorStates$color2, _mapColorStates$color3, _mapColorStates$color4;
18
+ const theme = useIOTheme();
43
19
  const {
44
20
  progress,
45
21
  onPressIn,
@@ -47,6 +23,31 @@ export const IconButtonSolid = ({
47
23
  scaleAnimatedStyle
48
24
  } = useScaleAnimation("exaggerated");
49
25
  const reducedMotion = useReducedMotion();
26
+ const mapColorStates = {
27
+ // Primary button
28
+ primary: {
29
+ background: {
30
+ default: IOColors[theme["interactiveElem-default"]],
31
+ pressed: IOColors[theme["interactiveElem-pressed"]],
32
+ disabled: IOColors[theme["interactiveElem-disabled"]]
33
+ },
34
+ icon: {
35
+ default: IOColors[theme["buttonText-default"]],
36
+ disabled: IOColors[theme["buttonText-disabled"]]
37
+ }
38
+ },
39
+ contrast: {
40
+ background: {
41
+ default: IOColors.white,
42
+ pressed: IOColors["blueIO-50"],
43
+ disabled: hexToRgba(IOColors.white, 0.25)
44
+ },
45
+ icon: {
46
+ default: IOColors["blueIO-500"],
47
+ disabled: IOColors["blueIO-500"]
48
+ }
49
+ }
50
+ };
50
51
  const backgroundColorAnimationStyle = useAnimatedStyle(() => ({
51
52
  backgroundColor: interpolateColor(progress.value, [0, 1], [mapColorStates[color].background.default, mapColorStates[color].background.pressed])
52
53
  }));