@metamask-previews/design-system-react-native 0.5.1-preview.ab80aae → 0.6.0-preview.3dc70e1

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 (210) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/components/AvatarBase/AvatarBase.cjs +9 -11
  3. package/dist/components/AvatarBase/AvatarBase.cjs.map +1 -1
  4. package/dist/components/AvatarBase/AvatarBase.d.cts.map +1 -1
  5. package/dist/components/AvatarBase/AvatarBase.d.mts.map +1 -1
  6. package/dist/components/AvatarBase/AvatarBase.mjs +9 -11
  7. package/dist/components/AvatarBase/AvatarBase.mjs.map +1 -1
  8. package/dist/components/AvatarFavicon/AvatarFavicon.cjs +2 -2
  9. package/dist/components/AvatarFavicon/AvatarFavicon.cjs.map +1 -1
  10. package/dist/components/AvatarFavicon/AvatarFavicon.d.cts +1 -1
  11. package/dist/components/AvatarFavicon/AvatarFavicon.d.cts.map +1 -1
  12. package/dist/components/AvatarFavicon/AvatarFavicon.d.mts +1 -1
  13. package/dist/components/AvatarFavicon/AvatarFavicon.d.mts.map +1 -1
  14. package/dist/components/AvatarFavicon/AvatarFavicon.mjs +2 -2
  15. package/dist/components/AvatarFavicon/AvatarFavicon.mjs.map +1 -1
  16. package/dist/components/AvatarGroup/AvatarGroup.cjs +4 -5
  17. package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -1
  18. package/dist/components/AvatarGroup/AvatarGroup.d.cts.map +1 -1
  19. package/dist/components/AvatarGroup/AvatarGroup.d.mts.map +1 -1
  20. package/dist/components/AvatarGroup/AvatarGroup.mjs +4 -5
  21. package/dist/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
  22. package/dist/components/AvatarGroup/AvatarGroup.types.cjs.map +1 -1
  23. package/dist/components/AvatarGroup/AvatarGroup.types.d.cts +5 -5
  24. package/dist/components/AvatarGroup/AvatarGroup.types.d.cts.map +1 -1
  25. package/dist/components/AvatarGroup/AvatarGroup.types.d.mts +5 -5
  26. package/dist/components/AvatarGroup/AvatarGroup.types.d.mts.map +1 -1
  27. package/dist/components/AvatarGroup/AvatarGroup.types.mjs.map +1 -1
  28. package/dist/components/AvatarIcon/AvatarIcon.cjs +5 -6
  29. package/dist/components/AvatarIcon/AvatarIcon.cjs.map +1 -1
  30. package/dist/components/AvatarIcon/AvatarIcon.d.cts.map +1 -1
  31. package/dist/components/AvatarIcon/AvatarIcon.d.mts.map +1 -1
  32. package/dist/components/AvatarIcon/AvatarIcon.mjs +5 -6
  33. package/dist/components/AvatarIcon/AvatarIcon.mjs.map +1 -1
  34. package/dist/components/AvatarNetwork/AvatarNetwork.cjs +2 -2
  35. package/dist/components/AvatarNetwork/AvatarNetwork.cjs.map +1 -1
  36. package/dist/components/AvatarNetwork/AvatarNetwork.d.cts +1 -1
  37. package/dist/components/AvatarNetwork/AvatarNetwork.d.cts.map +1 -1
  38. package/dist/components/AvatarNetwork/AvatarNetwork.d.mts +1 -1
  39. package/dist/components/AvatarNetwork/AvatarNetwork.d.mts.map +1 -1
  40. package/dist/components/AvatarNetwork/AvatarNetwork.mjs +2 -2
  41. package/dist/components/AvatarNetwork/AvatarNetwork.mjs.map +1 -1
  42. package/dist/components/AvatarToken/AvatarToken.cjs +2 -2
  43. package/dist/components/AvatarToken/AvatarToken.cjs.map +1 -1
  44. package/dist/components/AvatarToken/AvatarToken.d.cts +1 -1
  45. package/dist/components/AvatarToken/AvatarToken.d.cts.map +1 -1
  46. package/dist/components/AvatarToken/AvatarToken.d.mts +1 -1
  47. package/dist/components/AvatarToken/AvatarToken.d.mts.map +1 -1
  48. package/dist/components/AvatarToken/AvatarToken.mjs +2 -2
  49. package/dist/components/AvatarToken/AvatarToken.mjs.map +1 -1
  50. package/dist/components/BadgeCount/BadgeCount.cjs +5 -10
  51. package/dist/components/BadgeCount/BadgeCount.cjs.map +1 -1
  52. package/dist/components/BadgeCount/BadgeCount.d.cts.map +1 -1
  53. package/dist/components/BadgeCount/BadgeCount.d.mts.map +1 -1
  54. package/dist/components/BadgeCount/BadgeCount.mjs +5 -10
  55. package/dist/components/BadgeCount/BadgeCount.mjs.map +1 -1
  56. package/dist/components/BadgeIcon/BadgeIcon.cjs +5 -10
  57. package/dist/components/BadgeIcon/BadgeIcon.cjs.map +1 -1
  58. package/dist/components/BadgeIcon/BadgeIcon.d.cts.map +1 -1
  59. package/dist/components/BadgeIcon/BadgeIcon.d.mts.map +1 -1
  60. package/dist/components/BadgeIcon/BadgeIcon.mjs +5 -10
  61. package/dist/components/BadgeIcon/BadgeIcon.mjs.map +1 -1
  62. package/dist/components/BadgeStatus/BadgeStatus.cjs +6 -6
  63. package/dist/components/BadgeStatus/BadgeStatus.cjs.map +1 -1
  64. package/dist/components/BadgeStatus/BadgeStatus.constants.cjs +8 -8
  65. package/dist/components/BadgeStatus/BadgeStatus.constants.cjs.map +1 -1
  66. package/dist/components/BadgeStatus/BadgeStatus.constants.d.cts +1 -1
  67. package/dist/components/BadgeStatus/BadgeStatus.constants.d.cts.map +1 -1
  68. package/dist/components/BadgeStatus/BadgeStatus.constants.d.mts +1 -1
  69. package/dist/components/BadgeStatus/BadgeStatus.constants.d.mts.map +1 -1
  70. package/dist/components/BadgeStatus/BadgeStatus.constants.mjs +1 -1
  71. package/dist/components/BadgeStatus/BadgeStatus.constants.mjs.map +1 -1
  72. package/dist/components/BadgeStatus/BadgeStatus.d.cts.map +1 -1
  73. package/dist/components/BadgeStatus/BadgeStatus.d.mts.map +1 -1
  74. package/dist/components/BadgeStatus/BadgeStatus.mjs +6 -6
  75. package/dist/components/BadgeStatus/BadgeStatus.mjs.map +1 -1
  76. package/dist/components/BadgeStatus/BadgeStatus.types.cjs.map +1 -1
  77. package/dist/components/BadgeStatus/BadgeStatus.types.d.cts +5 -29
  78. package/dist/components/BadgeStatus/BadgeStatus.types.d.cts.map +1 -1
  79. package/dist/components/BadgeStatus/BadgeStatus.types.d.mts +5 -29
  80. package/dist/components/BadgeStatus/BadgeStatus.types.d.mts.map +1 -1
  81. package/dist/components/BadgeStatus/BadgeStatus.types.mjs.map +1 -1
  82. package/dist/components/BadgeStatus/index.cjs +4 -4
  83. package/dist/components/BadgeStatus/index.cjs.map +1 -1
  84. package/dist/components/BadgeStatus/index.d.cts +1 -1
  85. package/dist/components/BadgeStatus/index.d.cts.map +1 -1
  86. package/dist/components/BadgeStatus/index.d.mts +1 -1
  87. package/dist/components/BadgeStatus/index.d.mts.map +1 -1
  88. package/dist/components/BadgeStatus/index.mjs +1 -1
  89. package/dist/components/BadgeStatus/index.mjs.map +1 -1
  90. package/dist/components/BadgeWrapper/BadgeWrapper.cjs +3 -3
  91. package/dist/components/BadgeWrapper/BadgeWrapper.cjs.map +1 -1
  92. package/dist/components/BadgeWrapper/BadgeWrapper.d.cts.map +1 -1
  93. package/dist/components/BadgeWrapper/BadgeWrapper.d.mts.map +1 -1
  94. package/dist/components/BadgeWrapper/BadgeWrapper.mjs +3 -3
  95. package/dist/components/BadgeWrapper/BadgeWrapper.mjs.map +1 -1
  96. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.cjs +51 -0
  97. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.cjs.map +1 -0
  98. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.cjs +7 -0
  99. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.cjs.map +1 -0
  100. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.d.cts +3 -0
  101. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.d.cts.map +1 -0
  102. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.d.mts +3 -0
  103. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.d.mts.map +1 -0
  104. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.mjs +4 -0
  105. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.constants.mjs.map +1 -0
  106. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.d.cts +4 -0
  107. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.d.cts.map +1 -0
  108. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.d.mts +4 -0
  109. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.d.mts.map +1 -0
  110. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.mjs +31 -0
  111. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.mjs.map +1 -0
  112. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.cjs +3 -0
  113. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.cjs.map +1 -0
  114. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.d.cts +20 -0
  115. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.d.cts.map +1 -0
  116. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.d.mts +20 -0
  117. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.d.mts.map +1 -0
  118. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.mjs +2 -0
  119. package/dist/components/BottomSheetOverlay/BottomSheetOverlay.types.mjs.map +1 -0
  120. package/dist/components/BottomSheetOverlay/index.cjs +6 -0
  121. package/dist/components/BottomSheetOverlay/index.cjs.map +1 -0
  122. package/dist/components/BottomSheetOverlay/index.d.cts +3 -0
  123. package/dist/components/BottomSheetOverlay/index.d.cts.map +1 -0
  124. package/dist/components/BottomSheetOverlay/index.d.mts +3 -0
  125. package/dist/components/BottomSheetOverlay/index.d.mts.map +1 -0
  126. package/dist/components/BottomSheetOverlay/index.mjs +2 -0
  127. package/dist/components/BottomSheetOverlay/index.mjs.map +1 -0
  128. package/dist/components/Box/Box.cjs +12 -27
  129. package/dist/components/Box/Box.cjs.map +1 -1
  130. package/dist/components/Box/Box.d.cts.map +1 -1
  131. package/dist/components/Box/Box.d.mts.map +1 -1
  132. package/dist/components/Box/Box.mjs +12 -27
  133. package/dist/components/Box/Box.mjs.map +1 -1
  134. package/dist/components/ButtonBase/ButtonBase.cjs +50 -41
  135. package/dist/components/ButtonBase/ButtonBase.cjs.map +1 -1
  136. package/dist/components/ButtonBase/ButtonBase.d.cts.map +1 -1
  137. package/dist/components/ButtonBase/ButtonBase.d.mts.map +1 -1
  138. package/dist/components/ButtonBase/ButtonBase.mjs +50 -41
  139. package/dist/components/ButtonBase/ButtonBase.mjs.map +1 -1
  140. package/dist/components/ButtonIcon/ButtonIcon.cjs +5 -10
  141. package/dist/components/ButtonIcon/ButtonIcon.cjs.map +1 -1
  142. package/dist/components/ButtonIcon/ButtonIcon.d.cts.map +1 -1
  143. package/dist/components/ButtonIcon/ButtonIcon.d.mts.map +1 -1
  144. package/dist/components/ButtonIcon/ButtonIcon.mjs +5 -10
  145. package/dist/components/ButtonIcon/ButtonIcon.mjs.map +1 -1
  146. package/dist/components/Checkbox/Checkbox.cjs +4 -4
  147. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  148. package/dist/components/Checkbox/Checkbox.d.cts.map +1 -1
  149. package/dist/components/Checkbox/Checkbox.d.mts.map +1 -1
  150. package/dist/components/Checkbox/Checkbox.mjs +4 -4
  151. package/dist/components/Checkbox/Checkbox.mjs.map +1 -1
  152. package/dist/components/Icon/Icon.cjs +4 -32
  153. package/dist/components/Icon/Icon.cjs.map +1 -1
  154. package/dist/components/Icon/Icon.d.cts.map +1 -1
  155. package/dist/components/Icon/Icon.d.mts.map +1 -1
  156. package/dist/components/Icon/Icon.mjs +2 -10
  157. package/dist/components/Icon/Icon.mjs.map +1 -1
  158. package/dist/components/Text/Text.cjs +9 -14
  159. package/dist/components/Text/Text.cjs.map +1 -1
  160. package/dist/components/Text/Text.d.cts.map +1 -1
  161. package/dist/components/Text/Text.d.mts.map +1 -1
  162. package/dist/components/Text/Text.mjs +10 -15
  163. package/dist/components/Text/Text.mjs.map +1 -1
  164. package/dist/components/index.cjs +4 -2
  165. package/dist/components/index.cjs.map +1 -1
  166. package/dist/components/index.d.cts +2 -0
  167. package/dist/components/index.d.cts.map +1 -1
  168. package/dist/components/index.d.mts +2 -0
  169. package/dist/components/index.d.mts.map +1 -1
  170. package/dist/components/index.mjs +1 -0
  171. package/dist/components/index.mjs.map +1 -1
  172. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.cjs +17 -9
  173. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.cjs.map +1 -1
  174. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.d.cts +1 -1
  175. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.d.cts.map +1 -1
  176. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.d.mts +1 -1
  177. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.d.mts.map +1 -1
  178. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.mjs +17 -6
  179. package/dist/components/temp-components/ButtonAnimated/ButtonAnimated.mjs.map +1 -1
  180. package/dist/components/temp-components/Spinner/Spinner.cjs +2 -2
  181. package/dist/components/temp-components/Spinner/Spinner.cjs.map +1 -1
  182. package/dist/components/temp-components/Spinner/Spinner.d.cts.map +1 -1
  183. package/dist/components/temp-components/Spinner/Spinner.d.mts.map +1 -1
  184. package/dist/components/temp-components/Spinner/Spinner.mjs +2 -2
  185. package/dist/components/temp-components/Spinner/Spinner.mjs.map +1 -1
  186. package/dist/types/index.cjs +337 -265
  187. package/dist/types/index.cjs.map +1 -1
  188. package/dist/types/index.d.cts +235 -285
  189. package/dist/types/index.d.cts.map +1 -1
  190. package/dist/types/index.d.mts +235 -285
  191. package/dist/types/index.d.mts.map +1 -1
  192. package/dist/types/index.mjs +336 -252
  193. package/dist/types/index.mjs.map +1 -1
  194. package/package.json +13 -9
  195. package/dist/components/Icon/Icon.utilities.cjs +0 -31
  196. package/dist/components/Icon/Icon.utilities.cjs.map +0 -1
  197. package/dist/components/Icon/Icon.utilities.d.cts +0 -22
  198. package/dist/components/Icon/Icon.utilities.d.cts.map +0 -1
  199. package/dist/components/Icon/Icon.utilities.d.mts +0 -22
  200. package/dist/components/Icon/Icon.utilities.d.mts.map +0 -1
  201. package/dist/components/Icon/Icon.utilities.mjs +0 -27
  202. package/dist/components/Icon/Icon.utilities.mjs.map +0 -1
  203. package/dist/components/Text/Text.utilities.cjs +0 -46
  204. package/dist/components/Text/Text.utilities.cjs.map +0 -1
  205. package/dist/components/Text/Text.utilities.d.cts +0 -32
  206. package/dist/components/Text/Text.utilities.d.cts.map +0 -1
  207. package/dist/components/Text/Text.utilities.d.mts +0 -32
  208. package/dist/components/Text/Text.utilities.d.mts.map +0 -1
  209. package/dist/components/Text/Text.utilities.mjs +0 -42
  210. package/dist/components/Text/Text.utilities.mjs.map +0 -1
@@ -8,34 +8,19 @@ const design_system_twrnc_preset_1 = require("@metamask-previews/design-system-t
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_native_1 = require("react-native/index.js");
10
10
  const Box_constants_1 = require("./Box.constants.cjs");
11
- const Box = ({ flexDirection, flexWrap, gap, alignItems, justifyContent, margin, marginTop, marginRight, marginBottom, marginLeft, marginHorizontal, marginVertical, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingHorizontal, paddingVertical, borderWidth, borderColor, backgroundColor, twClassName = '', style, children, ...props }) => {
11
+ const Box = ({ flexDirection, flexWrap, gap, alignItems, justifyContent, margin, marginTop, marginRight, marginBottom, marginLeft, marginHorizontal, marginVertical, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingHorizontal, paddingVertical, borderWidth, borderColor, backgroundColor, twClassName, style, children, ...props }) => {
12
12
  const tw = (0, design_system_twrnc_preset_1.useTailwind)();
13
- const twContainerClassNames = tw `
14
- flex
15
- ${flexDirection ?? ''}
16
- ${flexWrap ?? ''}
17
- ${gap !== undefined ? Box_constants_1.TWCLASSMAP_BOX_GAP[gap] : ''}
18
- ${alignItems ?? ''}
19
- ${justifyContent ?? ''}
20
- ${margin !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN[margin] : ''}
21
- ${marginTop !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_TOP[marginTop] : ''}
22
- ${marginRight !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight] : ''}
23
- ${marginBottom !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom] : ''}
24
- ${marginLeft !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft] : ''}
25
- ${marginHorizontal !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal] : ''}
26
- ${marginVertical !== undefined ? Box_constants_1.TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical] : ''}
27
- ${padding !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING[padding] : ''}
28
- ${paddingTop !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_TOP[paddingTop] : ''}
29
- ${paddingRight !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight] : ''}
30
- ${paddingBottom !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom] : ''}
31
- ${paddingLeft !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft] : ''}
32
- ${paddingHorizontal !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal] : ''}
33
- ${paddingVertical !== undefined ? Box_constants_1.TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical] : ''}
34
- ${borderWidth !== undefined ? Box_constants_1.TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth] : ''}
35
- ${borderColor ?? ''}
36
- ${backgroundColor ?? ''}
37
- ${twClassName}`;
38
- return (<react_native_1.View style={[twContainerClassNames, style]} {...props}>
13
+ return (<react_native_1.View {...props} style={[
14
+ tw.style('flex', flexDirection, flexWrap, gap !== undefined && Box_constants_1.TWCLASSMAP_BOX_GAP[gap], alignItems, justifyContent, margin !== undefined && Box_constants_1.TWCLASSMAP_BOX_MARGIN[margin], marginTop !== undefined && Box_constants_1.TWCLASSMAP_BOX_MARGIN_TOP[marginTop], marginRight !== undefined && Box_constants_1.TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight], marginBottom !== undefined &&
15
+ Box_constants_1.TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom], marginLeft !== undefined && Box_constants_1.TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft], marginHorizontal !== undefined &&
16
+ Box_constants_1.TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal], marginVertical !== undefined &&
17
+ Box_constants_1.TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical], padding !== undefined && Box_constants_1.TWCLASSMAP_BOX_PADDING[padding], paddingTop !== undefined && Box_constants_1.TWCLASSMAP_BOX_PADDING_TOP[paddingTop], paddingRight !== undefined &&
18
+ Box_constants_1.TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight], paddingBottom !== undefined &&
19
+ Box_constants_1.TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom], paddingLeft !== undefined && Box_constants_1.TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft], paddingHorizontal !== undefined &&
20
+ Box_constants_1.TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal], paddingVertical !== undefined &&
21
+ Box_constants_1.TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical], borderWidth !== undefined && Box_constants_1.TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth], borderColor, backgroundColor, twClassName),
22
+ style,
23
+ ]}>
39
24
  {children}
40
25
  </react_native_1.View>);
41
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Box.cjs","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":";;;;;;AAAA,8FAA4E;AAC5E,kDAA0B;AAC1B,wDAAoC;AAEpC,uDAiByB;AAGlB,MAAM,GAAG,GAAG,CAAC,EAClB,aAAa,EACb,QAAQ,EACR,GAAG,EACH,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,GAAG,EAAE,EAChB,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACC,EAAE,EAAE;IACb,MAAM,EAAE,GAAG,IAAA,wCAAW,GAAE,CAAC;IACzB,MAAM,qBAAqB,GAAG,EAAE,CAAA;;MAE5B,aAAa,IAAI,EAAE;MACnB,QAAQ,IAAI,EAAE;MACd,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,kCAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;MAChD,UAAU,IAAI,EAAE;MAChB,cAAc,IAAI,EAAE;MACpB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,qCAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;MACzD,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,yCAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;MACnE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,2CAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;MACzE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,4CAA4B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5E,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,0CAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;MACtE,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gDAAgC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;MACxF,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,8CAA8B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;MAClF,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,sCAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5D,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,0CAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;MACtE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,4CAA4B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;MAC5E,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,6CAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;MAC/E,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,2CAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;MACzE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,iDAAiC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;MAC3F,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,+CAA+B,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;MACrF,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,2CAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;MACzE,WAAW,IAAI,EAAE;MACjB,eAAe,IAAI,EAAE;MACrB,WAAW,EAAE,CAAC;IAElB,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CACrD;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AA5DW,QAAA,GAAG,OA4Dd","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport {\n TWCLASSMAP_BOX_GAP,\n TWCLASSMAP_BOX_MARGIN,\n TWCLASSMAP_BOX_MARGIN_TOP,\n TWCLASSMAP_BOX_MARGIN_RIGHT,\n TWCLASSMAP_BOX_MARGIN_BOTTOM,\n TWCLASSMAP_BOX_MARGIN_LEFT,\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL,\n TWCLASSMAP_BOX_MARGIN_VERTICAL,\n TWCLASSMAP_BOX_PADDING,\n TWCLASSMAP_BOX_PADDING_TOP,\n TWCLASSMAP_BOX_PADDING_RIGHT,\n TWCLASSMAP_BOX_PADDING_BOTTOM,\n TWCLASSMAP_BOX_PADDING_LEFT,\n TWCLASSMAP_BOX_PADDING_HORIZONTAL,\n TWCLASSMAP_BOX_PADDING_VERTICAL,\n TWCLASSMAP_BOX_BORDER_WIDTH,\n} from './Box.constants';\nimport type { BoxProps } from './Box.types';\n\nexport const Box = ({\n flexDirection,\n flexWrap,\n gap,\n alignItems,\n justifyContent,\n margin,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginHorizontal,\n marginVertical,\n padding,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingHorizontal,\n paddingVertical,\n borderWidth,\n borderColor,\n backgroundColor,\n twClassName = '',\n style,\n children,\n ...props\n}: BoxProps) => {\n const tw = useTailwind();\n const twContainerClassNames = tw`\n flex\n ${flexDirection ?? ''} \n ${flexWrap ?? ''} \n ${gap !== undefined ? TWCLASSMAP_BOX_GAP[gap] : ''} \n ${alignItems ?? ''} \n ${justifyContent ?? ''}\n ${margin !== undefined ? TWCLASSMAP_BOX_MARGIN[margin] : ''}\n ${marginTop !== undefined ? TWCLASSMAP_BOX_MARGIN_TOP[marginTop] : ''}\n ${marginRight !== undefined ? TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight] : ''}\n ${marginBottom !== undefined ? TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom] : ''}\n ${marginLeft !== undefined ? TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft] : ''}\n ${marginHorizontal !== undefined ? TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal] : ''}\n ${marginVertical !== undefined ? TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical] : ''}\n ${padding !== undefined ? TWCLASSMAP_BOX_PADDING[padding] : ''}\n ${paddingTop !== undefined ? TWCLASSMAP_BOX_PADDING_TOP[paddingTop] : ''}\n ${paddingRight !== undefined ? TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight] : ''}\n ${paddingBottom !== undefined ? TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom] : ''}\n ${paddingLeft !== undefined ? TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft] : ''}\n ${paddingHorizontal !== undefined ? TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal] : ''}\n ${paddingVertical !== undefined ? TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical] : ''}\n ${borderWidth !== undefined ? TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth] : ''}\n ${borderColor ?? ''}\n ${backgroundColor ?? ''}\n ${twClassName}`;\n\n return (\n <View style={[twContainerClassNames, style]} {...props}>\n {children}\n </View>\n );\n};\n"]}
1
+ {"version":3,"file":"Box.cjs","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":";;;;;;AAAA,8FAA4E;AAC5E,kDAA0B;AAC1B,wDAAoC;AAEpC,uDAiByB;AAGlB,MAAM,GAAG,GAAG,CAAC,EAClB,aAAa,EACb,QAAQ,EACR,GAAG,EACH,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACC,EAAE,EAAE;IACb,MAAM,EAAE,GAAG,IAAA,wCAAW,GAAE,CAAC;IAEzB,OAAO,CACL,CAAC,mBAAI,CACH,IAAI,KAAK,CAAC,CACV,KAAK,CAAC,CAAC;YACL,EAAE,CAAC,KAAK,CACN,MAAM,EACN,aAAa,EACb,QAAQ,EACR,GAAG,KAAK,SAAS,IAAI,kCAAkB,CAAC,GAAG,CAAC,EAC5C,UAAU,EACV,cAAc,EACd,MAAM,KAAK,SAAS,IAAI,qCAAqB,CAAC,MAAM,CAAC,EACrD,SAAS,KAAK,SAAS,IAAI,yCAAyB,CAAC,SAAS,CAAC,EAC/D,WAAW,KAAK,SAAS,IAAI,2CAA2B,CAAC,WAAW,CAAC,EACrE,YAAY,KAAK,SAAS;gBACxB,4CAA4B,CAAC,YAAY,CAAC,EAC5C,UAAU,KAAK,SAAS,IAAI,0CAA0B,CAAC,UAAU,CAAC,EAClE,gBAAgB,KAAK,SAAS;gBAC5B,gDAAgC,CAAC,gBAAgB,CAAC,EACpD,cAAc,KAAK,SAAS;gBAC1B,8CAA8B,CAAC,cAAc,CAAC,EAChD,OAAO,KAAK,SAAS,IAAI,sCAAsB,CAAC,OAAO,CAAC,EACxD,UAAU,KAAK,SAAS,IAAI,0CAA0B,CAAC,UAAU,CAAC,EAClE,YAAY,KAAK,SAAS;gBACxB,4CAA4B,CAAC,YAAY,CAAC,EAC5C,aAAa,KAAK,SAAS;gBACzB,6CAA6B,CAAC,aAAa,CAAC,EAC9C,WAAW,KAAK,SAAS,IAAI,2CAA2B,CAAC,WAAW,CAAC,EACrE,iBAAiB,KAAK,SAAS;gBAC7B,iDAAiC,CAAC,iBAAiB,CAAC,EACtD,eAAe,KAAK,SAAS;gBAC3B,+CAA+B,CAAC,eAAe,CAAC,EAClD,WAAW,KAAK,SAAS,IAAI,2CAA2B,CAAC,WAAW,CAAC,EACrE,WAAW,EACX,eAAe,EACf,WAAW,CACZ;YACD,KAAK;SACN,CAAC,CAEF;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAzEW,QAAA,GAAG,OAyEd","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport {\n TWCLASSMAP_BOX_GAP,\n TWCLASSMAP_BOX_MARGIN,\n TWCLASSMAP_BOX_MARGIN_TOP,\n TWCLASSMAP_BOX_MARGIN_RIGHT,\n TWCLASSMAP_BOX_MARGIN_BOTTOM,\n TWCLASSMAP_BOX_MARGIN_LEFT,\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL,\n TWCLASSMAP_BOX_MARGIN_VERTICAL,\n TWCLASSMAP_BOX_PADDING,\n TWCLASSMAP_BOX_PADDING_TOP,\n TWCLASSMAP_BOX_PADDING_RIGHT,\n TWCLASSMAP_BOX_PADDING_BOTTOM,\n TWCLASSMAP_BOX_PADDING_LEFT,\n TWCLASSMAP_BOX_PADDING_HORIZONTAL,\n TWCLASSMAP_BOX_PADDING_VERTICAL,\n TWCLASSMAP_BOX_BORDER_WIDTH,\n} from './Box.constants';\nimport type { BoxProps } from './Box.types';\n\nexport const Box = ({\n flexDirection,\n flexWrap,\n gap,\n alignItems,\n justifyContent,\n margin,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginHorizontal,\n marginVertical,\n padding,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingHorizontal,\n paddingVertical,\n borderWidth,\n borderColor,\n backgroundColor,\n twClassName,\n style,\n children,\n ...props\n}: BoxProps) => {\n const tw = useTailwind();\n\n return (\n <View\n {...props}\n style={[\n tw.style(\n 'flex',\n flexDirection,\n flexWrap,\n gap !== undefined && TWCLASSMAP_BOX_GAP[gap],\n alignItems,\n justifyContent,\n margin !== undefined && TWCLASSMAP_BOX_MARGIN[margin],\n marginTop !== undefined && TWCLASSMAP_BOX_MARGIN_TOP[marginTop],\n marginRight !== undefined && TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight],\n marginBottom !== undefined &&\n TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom],\n marginLeft !== undefined && TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft],\n marginHorizontal !== undefined &&\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal],\n marginVertical !== undefined &&\n TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical],\n padding !== undefined && TWCLASSMAP_BOX_PADDING[padding],\n paddingTop !== undefined && TWCLASSMAP_BOX_PADDING_TOP[paddingTop],\n paddingRight !== undefined &&\n TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight],\n paddingBottom !== undefined &&\n TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom],\n paddingLeft !== undefined && TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft],\n paddingHorizontal !== undefined &&\n TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal],\n paddingVertical !== undefined &&\n TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical],\n borderWidth !== undefined && TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth],\n borderColor,\n backgroundColor,\n twClassName,\n ),\n style,\n ]}\n >\n {children}\n </View>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Box.d.cts","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAqB1B,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAoB;AAE5C,eAAO,MAAM,GAAG,mVA2Bb,QAAQ,sBAiCV,CAAC"}
1
+ {"version":3,"file":"Box.d.cts","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAqB1B,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAoB;AAE5C,eAAO,MAAM,GAAG,mVA2Bb,QAAQ,sBA8CV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Box.d.mts","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAqB1B,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAoB;AAE5C,eAAO,MAAM,GAAG,mVA2Bb,QAAQ,sBAiCV,CAAC"}
1
+ {"version":3,"file":"Box.d.mts","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc;AAqB1B,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAoB;AAE5C,eAAO,MAAM,GAAG,mVA2Bb,QAAQ,sBA8CV,CAAC"}
@@ -9,34 +9,19 @@ import $React from "react";
9
9
  const React = $importDefault($React);
10
10
  import { View } from "react-native/index.js";
11
11
  import { TWCLASSMAP_BOX_GAP, TWCLASSMAP_BOX_MARGIN, TWCLASSMAP_BOX_MARGIN_TOP, TWCLASSMAP_BOX_MARGIN_RIGHT, TWCLASSMAP_BOX_MARGIN_BOTTOM, TWCLASSMAP_BOX_MARGIN_LEFT, TWCLASSMAP_BOX_MARGIN_HORIZONTAL, TWCLASSMAP_BOX_MARGIN_VERTICAL, TWCLASSMAP_BOX_PADDING, TWCLASSMAP_BOX_PADDING_TOP, TWCLASSMAP_BOX_PADDING_RIGHT, TWCLASSMAP_BOX_PADDING_BOTTOM, TWCLASSMAP_BOX_PADDING_LEFT, TWCLASSMAP_BOX_PADDING_HORIZONTAL, TWCLASSMAP_BOX_PADDING_VERTICAL, TWCLASSMAP_BOX_BORDER_WIDTH } from "./Box.constants.mjs";
12
- export const Box = ({ flexDirection, flexWrap, gap, alignItems, justifyContent, margin, marginTop, marginRight, marginBottom, marginLeft, marginHorizontal, marginVertical, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingHorizontal, paddingVertical, borderWidth, borderColor, backgroundColor, twClassName = '', style, children, ...props }) => {
12
+ export const Box = ({ flexDirection, flexWrap, gap, alignItems, justifyContent, margin, marginTop, marginRight, marginBottom, marginLeft, marginHorizontal, marginVertical, padding, paddingTop, paddingRight, paddingBottom, paddingLeft, paddingHorizontal, paddingVertical, borderWidth, borderColor, backgroundColor, twClassName, style, children, ...props }) => {
13
13
  const tw = useTailwind();
14
- const twContainerClassNames = tw `
15
- flex
16
- ${flexDirection ?? ''}
17
- ${flexWrap ?? ''}
18
- ${gap !== undefined ? TWCLASSMAP_BOX_GAP[gap] : ''}
19
- ${alignItems ?? ''}
20
- ${justifyContent ?? ''}
21
- ${margin !== undefined ? TWCLASSMAP_BOX_MARGIN[margin] : ''}
22
- ${marginTop !== undefined ? TWCLASSMAP_BOX_MARGIN_TOP[marginTop] : ''}
23
- ${marginRight !== undefined ? TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight] : ''}
24
- ${marginBottom !== undefined ? TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom] : ''}
25
- ${marginLeft !== undefined ? TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft] : ''}
26
- ${marginHorizontal !== undefined ? TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal] : ''}
27
- ${marginVertical !== undefined ? TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical] : ''}
28
- ${padding !== undefined ? TWCLASSMAP_BOX_PADDING[padding] : ''}
29
- ${paddingTop !== undefined ? TWCLASSMAP_BOX_PADDING_TOP[paddingTop] : ''}
30
- ${paddingRight !== undefined ? TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight] : ''}
31
- ${paddingBottom !== undefined ? TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom] : ''}
32
- ${paddingLeft !== undefined ? TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft] : ''}
33
- ${paddingHorizontal !== undefined ? TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal] : ''}
34
- ${paddingVertical !== undefined ? TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical] : ''}
35
- ${borderWidth !== undefined ? TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth] : ''}
36
- ${borderColor ?? ''}
37
- ${backgroundColor ?? ''}
38
- ${twClassName}`;
39
- return (<View style={[twContainerClassNames, style]} {...props}>
14
+ return (<View {...props} style={[
15
+ tw.style('flex', flexDirection, flexWrap, gap !== undefined && TWCLASSMAP_BOX_GAP[gap], alignItems, justifyContent, margin !== undefined && TWCLASSMAP_BOX_MARGIN[margin], marginTop !== undefined && TWCLASSMAP_BOX_MARGIN_TOP[marginTop], marginRight !== undefined && TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight], marginBottom !== undefined &&
16
+ TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom], marginLeft !== undefined && TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft], marginHorizontal !== undefined &&
17
+ TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal], marginVertical !== undefined &&
18
+ TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical], padding !== undefined && TWCLASSMAP_BOX_PADDING[padding], paddingTop !== undefined && TWCLASSMAP_BOX_PADDING_TOP[paddingTop], paddingRight !== undefined &&
19
+ TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight], paddingBottom !== undefined &&
20
+ TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom], paddingLeft !== undefined && TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft], paddingHorizontal !== undefined &&
21
+ TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal], paddingVertical !== undefined &&
22
+ TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical], borderWidth !== undefined && TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth], borderColor, backgroundColor, twClassName),
23
+ style,
24
+ ]}>
40
25
  {children}
41
26
  </View>);
42
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Box.mjs","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport {\n TWCLASSMAP_BOX_GAP,\n TWCLASSMAP_BOX_MARGIN,\n TWCLASSMAP_BOX_MARGIN_TOP,\n TWCLASSMAP_BOX_MARGIN_RIGHT,\n TWCLASSMAP_BOX_MARGIN_BOTTOM,\n TWCLASSMAP_BOX_MARGIN_LEFT,\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL,\n TWCLASSMAP_BOX_MARGIN_VERTICAL,\n TWCLASSMAP_BOX_PADDING,\n TWCLASSMAP_BOX_PADDING_TOP,\n TWCLASSMAP_BOX_PADDING_RIGHT,\n TWCLASSMAP_BOX_PADDING_BOTTOM,\n TWCLASSMAP_BOX_PADDING_LEFT,\n TWCLASSMAP_BOX_PADDING_HORIZONTAL,\n TWCLASSMAP_BOX_PADDING_VERTICAL,\n TWCLASSMAP_BOX_BORDER_WIDTH,\n} from './Box.constants';\nimport type { BoxProps } from './Box.types';\n\nexport const Box = ({\n flexDirection,\n flexWrap,\n gap,\n alignItems,\n justifyContent,\n margin,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginHorizontal,\n marginVertical,\n padding,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingHorizontal,\n paddingVertical,\n borderWidth,\n borderColor,\n backgroundColor,\n twClassName = '',\n style,\n children,\n ...props\n}: BoxProps) => {\n const tw = useTailwind();\n const twContainerClassNames = tw`\n flex\n ${flexDirection ?? ''} \n ${flexWrap ?? ''} \n ${gap !== undefined ? TWCLASSMAP_BOX_GAP[gap] : ''} \n ${alignItems ?? ''} \n ${justifyContent ?? ''}\n ${margin !== undefined ? TWCLASSMAP_BOX_MARGIN[margin] : ''}\n ${marginTop !== undefined ? TWCLASSMAP_BOX_MARGIN_TOP[marginTop] : ''}\n ${marginRight !== undefined ? TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight] : ''}\n ${marginBottom !== undefined ? TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom] : ''}\n ${marginLeft !== undefined ? TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft] : ''}\n ${marginHorizontal !== undefined ? TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal] : ''}\n ${marginVertical !== undefined ? TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical] : ''}\n ${padding !== undefined ? TWCLASSMAP_BOX_PADDING[padding] : ''}\n ${paddingTop !== undefined ? TWCLASSMAP_BOX_PADDING_TOP[paddingTop] : ''}\n ${paddingRight !== undefined ? TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight] : ''}\n ${paddingBottom !== undefined ? TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom] : ''}\n ${paddingLeft !== undefined ? TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft] : ''}\n ${paddingHorizontal !== undefined ? TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal] : ''}\n ${paddingVertical !== undefined ? TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical] : ''}\n ${borderWidth !== undefined ? TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth] : ''}\n ${borderColor ?? ''}\n ${backgroundColor ?? ''}\n ${twClassName}`;\n\n return (\n <View style={[twContainerClassNames, style]} {...props}>\n {children}\n </View>\n );\n};\n"]}
1
+ {"version":3,"file":"Box.mjs","sourceRoot":"","sources":["../../../src/components/Box/Box.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,sDAAsD;AAC5E,OAAO,MAAK,cAAc;;AAC1B,OAAO,EAAE,IAAI,EAAE,8BAAqB;AAEpC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC5B,4BAAwB;AAGzB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAClB,aAAa,EACb,QAAQ,EACR,GAAG,EACH,UAAU,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACC,EAAE,EAAE;IACb,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,OAAO,CACL,CAAC,IAAI,CACH,IAAI,KAAK,CAAC,CACV,KAAK,CAAC,CAAC;YACL,EAAE,CAAC,KAAK,CACN,MAAM,EACN,aAAa,EACb,QAAQ,EACR,GAAG,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAC5C,UAAU,EACV,cAAc,EACd,MAAM,KAAK,SAAS,IAAI,qBAAqB,CAAC,MAAM,CAAC,EACrD,SAAS,KAAK,SAAS,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAC/D,WAAW,KAAK,SAAS,IAAI,2BAA2B,CAAC,WAAW,CAAC,EACrE,YAAY,KAAK,SAAS;gBACxB,4BAA4B,CAAC,YAAY,CAAC,EAC5C,UAAU,KAAK,SAAS,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAClE,gBAAgB,KAAK,SAAS;gBAC5B,gCAAgC,CAAC,gBAAgB,CAAC,EACpD,cAAc,KAAK,SAAS;gBAC1B,8BAA8B,CAAC,cAAc,CAAC,EAChD,OAAO,KAAK,SAAS,IAAI,sBAAsB,CAAC,OAAO,CAAC,EACxD,UAAU,KAAK,SAAS,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAClE,YAAY,KAAK,SAAS;gBACxB,4BAA4B,CAAC,YAAY,CAAC,EAC5C,aAAa,KAAK,SAAS;gBACzB,6BAA6B,CAAC,aAAa,CAAC,EAC9C,WAAW,KAAK,SAAS,IAAI,2BAA2B,CAAC,WAAW,CAAC,EACrE,iBAAiB,KAAK,SAAS;gBAC7B,iCAAiC,CAAC,iBAAiB,CAAC,EACtD,eAAe,KAAK,SAAS;gBAC3B,+BAA+B,CAAC,eAAe,CAAC,EAClD,WAAW,KAAK,SAAS,IAAI,2BAA2B,CAAC,WAAW,CAAC,EACrE,WAAW,EACX,eAAe,EACf,WAAW,CACZ;YACD,KAAK;SACN,CAAC,CAEF;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport {\n TWCLASSMAP_BOX_GAP,\n TWCLASSMAP_BOX_MARGIN,\n TWCLASSMAP_BOX_MARGIN_TOP,\n TWCLASSMAP_BOX_MARGIN_RIGHT,\n TWCLASSMAP_BOX_MARGIN_BOTTOM,\n TWCLASSMAP_BOX_MARGIN_LEFT,\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL,\n TWCLASSMAP_BOX_MARGIN_VERTICAL,\n TWCLASSMAP_BOX_PADDING,\n TWCLASSMAP_BOX_PADDING_TOP,\n TWCLASSMAP_BOX_PADDING_RIGHT,\n TWCLASSMAP_BOX_PADDING_BOTTOM,\n TWCLASSMAP_BOX_PADDING_LEFT,\n TWCLASSMAP_BOX_PADDING_HORIZONTAL,\n TWCLASSMAP_BOX_PADDING_VERTICAL,\n TWCLASSMAP_BOX_BORDER_WIDTH,\n} from './Box.constants';\nimport type { BoxProps } from './Box.types';\n\nexport const Box = ({\n flexDirection,\n flexWrap,\n gap,\n alignItems,\n justifyContent,\n margin,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginHorizontal,\n marginVertical,\n padding,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingHorizontal,\n paddingVertical,\n borderWidth,\n borderColor,\n backgroundColor,\n twClassName,\n style,\n children,\n ...props\n}: BoxProps) => {\n const tw = useTailwind();\n\n return (\n <View\n {...props}\n style={[\n tw.style(\n 'flex',\n flexDirection,\n flexWrap,\n gap !== undefined && TWCLASSMAP_BOX_GAP[gap],\n alignItems,\n justifyContent,\n margin !== undefined && TWCLASSMAP_BOX_MARGIN[margin],\n marginTop !== undefined && TWCLASSMAP_BOX_MARGIN_TOP[marginTop],\n marginRight !== undefined && TWCLASSMAP_BOX_MARGIN_RIGHT[marginRight],\n marginBottom !== undefined &&\n TWCLASSMAP_BOX_MARGIN_BOTTOM[marginBottom],\n marginLeft !== undefined && TWCLASSMAP_BOX_MARGIN_LEFT[marginLeft],\n marginHorizontal !== undefined &&\n TWCLASSMAP_BOX_MARGIN_HORIZONTAL[marginHorizontal],\n marginVertical !== undefined &&\n TWCLASSMAP_BOX_MARGIN_VERTICAL[marginVertical],\n padding !== undefined && TWCLASSMAP_BOX_PADDING[padding],\n paddingTop !== undefined && TWCLASSMAP_BOX_PADDING_TOP[paddingTop],\n paddingRight !== undefined &&\n TWCLASSMAP_BOX_PADDING_RIGHT[paddingRight],\n paddingBottom !== undefined &&\n TWCLASSMAP_BOX_PADDING_BOTTOM[paddingBottom],\n paddingLeft !== undefined && TWCLASSMAP_BOX_PADDING_LEFT[paddingLeft],\n paddingHorizontal !== undefined &&\n TWCLASSMAP_BOX_PADDING_HORIZONTAL[paddingHorizontal],\n paddingVertical !== undefined &&\n TWCLASSMAP_BOX_PADDING_VERTICAL[paddingVertical],\n borderWidth !== undefined && TWCLASSMAP_BOX_BORDER_WIDTH[borderWidth],\n borderColor,\n backgroundColor,\n twClassName,\n ),\n style,\n ]}\n >\n {children}\n </View>\n );\n};\n"]}
@@ -34,7 +34,7 @@ const Spinner_1 = require("../temp-components/Spinner/index.cjs");
34
34
  const TextOrChildren_1 = require("../temp-components/TextOrChildren/TextOrChildren.cjs");
35
35
  const Text_1 = require("../Text/index.cjs");
36
36
  const ButtonBase_constants_1 = require("./ButtonBase.constants.cjs");
37
- const ButtonBase = ({ children, textProps, size = types_1.ButtonBaseSize.Lg, isLoading, loadingText, spinnerProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, isDisabled, isFullWidth, twClassName = '', textClassName, iconClassName, style, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', accessibilityActions, onAccessibilityAction, ...props }) => {
37
+ const ButtonBase = ({ children, textProps, size = types_1.ButtonBaseSize.Lg, isLoading, loadingText, spinnerProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, isDisabled, isFullWidth, twClassName, textClassName, iconClassName, style, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', accessibilityActions, onAccessibilityAction, ...props }) => {
38
38
  const tw = (0, design_system_twrnc_preset_1.useTailwind)();
39
39
  const finalStartIconName = startIconName ?? startIconProps?.name;
40
40
  const finalEndIconName = endIconName ?? endIconProps?.name;
@@ -75,53 +75,62 @@ const ButtonBase = ({ children, textProps, size = types_1.ButtonBaseSize.Lg, isL
75
75
  return state;
76
76
  }, [isDisabled, isLoading]);
77
77
  return (<ButtonAnimated_1.ButtonAnimated disabled={isDisabled || isLoading} accessibilityRole={accessibilityRole} accessibilityLabel={finalAccessibilityLabel} accessibilityHint={finalAccessibilityHint} accessibilityActions={accessibilityActions} onAccessibilityAction={onAccessibilityAction} accessibilityState={accessibilityState} accessible style={({ pressed }) => {
78
- const containerClassName = typeof twClassName === 'function'
78
+ // Evaluate custom className if it's a function
79
+ const customClassName = typeof twClassName === 'function'
79
80
  ? twClassName(pressed)
80
81
  : twClassName;
81
- const baseContainerClassNames = `
82
- flex-row items-center justify-center rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden
83
- ${ButtonBase_constants_1.TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size]}
84
- ${isDisabled ? 'opacity-50' : 'opacity-100'}
85
- ${isFullWidth ? 'w-full' : 'w-auto'}
86
- ${containerClassName}
87
- `;
88
- const computedStyle = [
89
- tw `${baseContainerClassNames}`,
90
- ];
91
- if (typeof style === 'function') {
92
- const additionalStyle = style({ pressed });
93
- if (additionalStyle) {
94
- computedStyle.push(additionalStyle);
95
- }
96
- }
97
- else if (style) {
98
- computedStyle.push(style);
82
+ // Build button container styles
83
+ const buttonStyles = tw.style(
84
+ // Base layout - flex container for button content
85
+ 'flex-row items-center justify-center gap-x-2',
86
+ // Visual styling
87
+ 'rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden',
88
+ // Size
89
+ ButtonBase_constants_1.TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],
90
+ // State-based opacity
91
+ isDisabled ? 'opacity-50' : 'opacity-100',
92
+ // Width - use self-start to prevent stretching when not full width
93
+ isFullWidth ? 'w-full' : 'self-start',
94
+ // Custom classes
95
+ customClassName);
96
+ // Merge with additional styles if provided
97
+ const computedStyle = [buttonStyles];
98
+ const additionalStyle = typeof style === 'function' ? style({ pressed }) : style;
99
+ if (additionalStyle) {
100
+ computedStyle.push(additionalStyle);
99
101
  }
100
102
  return computedStyle;
101
103
  }} {...props}>
102
104
  {({ pressed }) => (<>
103
- <react_native_1.View style={tw `absolute inset-0 flex items-center justify-center ${isLoading ? 'opacity-100' : 'opacity-0'}`} testID="spinner-container">
104
- <Spinner_1.Spinner color={textClassName
105
- ? textClassName(pressed)
106
- : Icon_1.IconColor.IconDefault} loadingText={loadingText} loadingTextProps={{
107
- numberOfLines: 1,
108
- twClassName: textClassName ? textClassName(pressed) : '',
109
- ...spinnerProps?.loadingTextProps,
110
- }} {...spinnerProps}/>
111
- </react_native_1.View>
112
- <react_native_1.View style={tw `flex-row items-center justify-center gap-x-2 ${isLoading ? 'opacity-0' : 'opacity-100'}`} testID="content-container">
113
- {finalStartIconName ? (<Icon_1.Icon name={finalStartIconName} size={Icon_1.IconSize.Sm} twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`} {...startIconProps}/>) : (startAccessory)}
114
- <TextOrChildren_1.TextOrChildren textProps={{
115
- variant: Text_1.TextVariant.BodyMd,
116
- fontWeight: Text_1.FontWeight.Medium,
117
- color: Text_1.TextColor.TextDefault,
118
- twClassName: `shrink grow-0 flex-wrap text-center ${textClassName ? textClassName(pressed) : ''}`,
119
- ...textProps,
120
- }}>
105
+ {/* Loading spinner overlay */}
106
+ {isLoading && (<react_native_1.View style={tw.style('absolute inset-0 flex items-center justify-center')} testID="spinner-container">
107
+ <Spinner_1.Spinner color={textClassName
108
+ ? textClassName(pressed)
109
+ : Icon_1.IconColor.IconDefault} loadingText={loadingText} loadingTextProps={{
110
+ numberOfLines: 1,
111
+ twClassName: textClassName ? textClassName(pressed) : '',
112
+ ...spinnerProps?.loadingTextProps,
113
+ }} {...spinnerProps}/>
114
+ </react_native_1.View>)}
115
+
116
+ {/* Button content - opacity controlled individually on each child */}
117
+ {finalStartIconName ? (<Icon_1.Icon name={finalStartIconName} size={Icon_1.IconSize.Sm} twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`} {...startIconProps}/>) : (startAccessory && (<react_native_1.View style={tw.style(isLoading && 'opacity-0')}>
118
+ {startAccessory}
119
+ </react_native_1.View>))}
120
+
121
+ {typeof children === 'string' ? (<TextOrChildren_1.TextOrChildren textProps={{
122
+ variant: Text_1.TextVariant.BodyMd,
123
+ fontWeight: Text_1.FontWeight.Medium,
124
+ color: Text_1.TextColor.TextDefault,
125
+ twClassName: `shrink grow-0 flex-wrap text-center ${isLoading ? 'opacity-0' : ''} ${textClassName ? textClassName(pressed) : ''}`,
126
+ ...textProps,
127
+ }}>
121
128
  {children}
122
- </TextOrChildren_1.TextOrChildren>
123
- {finalEndIconName ? (<Icon_1.Icon name={finalEndIconName} size={Icon_1.IconSize.Sm} twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`} {...endIconProps}/>) : (endAccessory)}
124
- </react_native_1.View>
129
+ </TextOrChildren_1.TextOrChildren>) : (<react_native_1.View style={tw.style(isLoading && 'opacity-0')}>{children}</react_native_1.View>)}
130
+
131
+ {finalEndIconName ? (<Icon_1.Icon name={finalEndIconName} size={Icon_1.IconSize.Sm} twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`} {...endIconProps}/>) : (endAccessory && (<react_native_1.View style={tw.style(isLoading && 'opacity-0')}>
132
+ {endAccessory}
133
+ </react_native_1.View>))}
125
134
  </>)}
126
135
  </ButtonAnimated_1.ButtonAnimated>);
127
136
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8FAA4E;AAC5E,+CAAuC;AACvC,wDAAoC;AAGpC,iDAA6C;AAC7C,4CAAoD;AACpD,gFAAmE;AACnE,kEAAqD;AACrD,yFAAkF;AAClF,4CAA6D;AAE7D,qEAA8E;AAGvE,MAAM,UAAU,GAAG,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,sBAAc,CAAC,EAAE,EACxB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,GAAG,EAAE,EAChB,aAAa,EACb,aAAa,EACb,KAAK,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAAG,QAAQ,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,GAAG,KAAK,EACQ,EAAE,EAAE;IACpB,MAAM,EAAE,GAAG,IAAA,wCAAW,GAAE,CAAC;IAEzB,MAAM,kBAAkB,GAAG,aAAa,IAAI,cAAc,EAAE,IAAI,CAAC;IACjE,MAAM,gBAAgB,GAAG,WAAW,IAAI,YAAY,EAAE,IAAI,CAAC;IAE3D,+CAA+C;IAC/C,MAAM,uBAAuB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC3C,IAAI,kBAAkB,EAAE;YACtB,OAAO,kBAAkB,CAAC;SAC3B;QAED,6DAA6D;QAC7D,IAAI,SAAS,IAAI,WAAW,EAAE;YAC5B,OAAO,WAAW,CAAC;SACpB;QAED,+CAA+C;QAC/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3D,gEAAgE;IAChE,MAAM,sBAAsB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1C,IAAI,iBAAiB,EAAE;YACrB,OAAO,iBAAiB,CAAC;SAC1B;QAED,IAAI,SAAS,EAAE;YACb,OAAO,0CAA0C,CAAC;SACnD;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnC,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACtC,MAAM,KAAK,GAA2C,EAAE,CAAC;QAEzD,IAAI,UAAU,IAAI,SAAS,EAAE;YAC3B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;SACvB;QAED,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACnB;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,CAAC,+BAAc,CACb,QAAQ,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAClC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAC5C,iBAAiB,CAAC,CAAC,sBAAsB,CAAC,CAC1C,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,CAC3C,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAC7C,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CACvC,UAAU,CACV,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACrB,MAAM,kBAAkB,GACtB,OAAO,WAAW,KAAK,UAAU;gBAC/B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,WAAW,CAAC;YAElB,MAAM,uBAAuB,GAAG;;YAE5B,2DAAoC,CAAC,IAAI,CAAC;YAC1C,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;YACzC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACjC,kBAAkB;SACrB,CAAC;YAEF,MAAM,aAAa,GAA2B;gBAC5C,EAAE,CAAA,GAAG,uBAAuB,EAAE;aAC/B,CAAC;YACF,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3C,IAAI,eAAe,EAAE;oBACnB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACrC;aACF;iBAAM,IAAI,KAAK,EAAE;gBAChB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3B;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC,CACF,IAAI,KAAK,CAAC,CAEV;MAAA,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAChB,EACE;UAAA,CAAC,mBAAI,CACH,KAAK,CAAC,CAAC,EAAE,CAAA,qDACP,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAC9B,EAAE,CAAC,CACH,MAAM,CAAC,mBAAmB,CAE1B;YAAA,CAAC,iBAAO,CACN,KAAK,CAAC,CACJ,aAAa;gBACX,CAAC,CAAE,aAAa,CAAC,OAAO,CAAe;gBACvC,CAAC,CAAC,gBAAS,CAAC,WAAW,CAC1B,CACD,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,gBAAgB,CAAC,CAAC;gBAChB,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxD,GAAG,YAAY,EAAE,gBAAgB;aAClC,CAAC,CACF,IAAI,YAAY,CAAC,EAErB;UAAA,EAAE,mBAAI,CACN;UAAA,CAAC,mBAAI,CACH,KAAK,CAAC,CAAC,EAAE,CAAA,gDACP,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAC5B,EAAE,CAAC,CACH,MAAM,CAAC,mBAAmB,CAE1B;YAAA,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACpB,CAAC,WAAI,CACH,IAAI,CAAC,CAAC,kBAAkB,CAAC,CACzB,IAAI,CAAC,CAAC,eAAQ,CAAC,EAAE,CAAC,CAClB,WAAW,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACvE,IAAI,cAAc,CAAC,EACnB,CACH,CAAC,CAAC,CAAC,CACF,cAAc,CACf,CACD;YAAA,CAAC,+BAAc,CACb,SAAS,CAAC,CAAC;gBACT,OAAO,EAAE,kBAAW,CAAC,MAAM;gBAC3B,UAAU,EAAE,iBAAU,CAAC,MAAM;gBAC7B,KAAK,EAAE,gBAAS,CAAC,WAAW;gBAC5B,WAAW,EAAE,uCAAuC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjG,GAAG,SAAS;aACb,CAAC,CAEF;cAAA,CAAC,QAAQ,CACX;YAAA,EAAE,+BAAc,CAChB;YAAA,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAClB,CAAC,WAAI,CACH,IAAI,CAAC,CAAC,gBAAgB,CAAC,CACvB,IAAI,CAAC,CAAC,eAAQ,CAAC,EAAE,CAAC,CAClB,WAAW,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACvE,IAAI,YAAY,CAAC,EACjB,CACH,CAAC,CAAC,CAAC,CACF,YAAY,CACb,CACH;UAAA,EAAE,mBAAI,CACR;QAAA,GAAG,CACJ,CACH;IAAA,EAAE,+BAAc,CAAC,CAClB,CAAC;AACJ,CAAC,CAAC;AAvLW,QAAA,UAAU,cAuLrB","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useMemo } from 'react';\nimport { View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { ButtonBaseSize } from '../../types';\nimport { Icon, IconColor, IconSize } from '../Icon';\nimport { ButtonAnimated } from '../temp-components/ButtonAnimated';\nimport { Spinner } from '../temp-components/Spinner';\nimport { TextOrChildren } from '../temp-components/TextOrChildren/TextOrChildren';\nimport { TextVariant, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = ({\n children,\n textProps,\n size = ButtonBaseSize.Lg,\n isLoading,\n loadingText,\n spinnerProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n isDisabled,\n isFullWidth,\n twClassName = '',\n textClassName,\n iconClassName,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole = 'button',\n accessibilityActions,\n onAccessibilityAction,\n ...props\n}: ButtonBaseProps) => {\n const tw = useTailwind();\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n\n // Generate accessibility label if not provided\n const finalAccessibilityLabel = useMemo(() => {\n if (accessibilityLabel) {\n return accessibilityLabel;\n }\n\n // For loading state with loadingText, prioritize loadingText\n if (isLoading && loadingText) {\n return loadingText;\n }\n\n // If children is a string, use it as the label\n if (typeof children === 'string') {\n return children;\n }\n\n return undefined;\n }, [accessibilityLabel, children, isLoading, loadingText]);\n\n // Generate accessibility hint for loading state if not provided\n const finalAccessibilityHint = useMemo(() => {\n if (accessibilityHint) {\n return accessibilityHint;\n }\n\n if (isLoading) {\n return 'Button is currently loading, please wait';\n }\n\n return undefined;\n }, [accessibilityHint, isLoading]);\n\n // Create accessibilityState object with only truthy values\n const accessibilityState = useMemo(() => {\n const state: { disabled?: boolean; busy?: boolean } = {};\n\n if (isDisabled || isLoading) {\n state.disabled = true;\n }\n\n if (isLoading) {\n state.busy = true;\n }\n\n return state;\n }, [isDisabled, isLoading]);\n\n return (\n <ButtonAnimated\n disabled={isDisabled || isLoading}\n accessibilityRole={accessibilityRole}\n accessibilityLabel={finalAccessibilityLabel}\n accessibilityHint={finalAccessibilityHint}\n accessibilityActions={accessibilityActions}\n onAccessibilityAction={onAccessibilityAction}\n accessibilityState={accessibilityState}\n accessible\n style={({ pressed }) => {\n const containerClassName =\n typeof twClassName === 'function'\n ? twClassName(pressed)\n : twClassName;\n\n const baseContainerClassNames = `\n flex-row items-center justify-center rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden\n ${TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size]}\n ${isDisabled ? 'opacity-50' : 'opacity-100'}\n ${isFullWidth ? 'w-full' : 'w-auto'}\n ${containerClassName}\n `;\n\n const computedStyle: StyleProp<ViewStyle>[] = [\n tw`${baseContainerClassNames}`,\n ];\n if (typeof style === 'function') {\n const additionalStyle = style({ pressed });\n if (additionalStyle) {\n computedStyle.push(additionalStyle);\n }\n } else if (style) {\n computedStyle.push(style);\n }\n\n return computedStyle;\n }}\n {...props}\n >\n {({ pressed }) => (\n <>\n <View\n style={tw`absolute inset-0 flex items-center justify-center ${\n isLoading ? 'opacity-100' : 'opacity-0'\n }`}\n testID=\"spinner-container\"\n >\n <Spinner\n color={\n textClassName\n ? (textClassName(pressed) as IconColor)\n : IconColor.IconDefault\n }\n loadingText={loadingText}\n loadingTextProps={{\n numberOfLines: 1,\n twClassName: textClassName ? textClassName(pressed) : '',\n ...spinnerProps?.loadingTextProps,\n }}\n {...spinnerProps}\n />\n </View>\n <View\n style={tw`flex-row items-center justify-center gap-x-2 ${\n isLoading ? 'opacity-0' : 'opacity-100'\n }`}\n testID=\"content-container\"\n >\n {finalStartIconName ? (\n <Icon\n name={finalStartIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`}\n {...startIconProps}\n />\n ) : (\n startAccessory\n )}\n <TextOrChildren\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n color: TextColor.TextDefault,\n twClassName: `shrink grow-0 flex-wrap text-center ${textClassName ? textClassName(pressed) : ''}`,\n ...textProps,\n }}\n >\n {children}\n </TextOrChildren>\n {finalEndIconName ? (\n <Icon\n name={finalEndIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`}\n {...endIconProps}\n />\n ) : (\n endAccessory\n )}\n </View>\n </>\n )}\n </ButtonAnimated>\n );\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.cjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useMemo } from 'react';\nimport { View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { ButtonBaseSize } from '../../types';\nimport { Icon, IconColor, IconSize } from '../Icon';\nimport { ButtonAnimated } from '../temp-components/ButtonAnimated';\nimport { Spinner } from '../temp-components/Spinner';\nimport { TextOrChildren } from '../temp-components/TextOrChildren/TextOrChildren';\nimport { TextVariant, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = ({\n children,\n textProps,\n size = ButtonBaseSize.Lg,\n isLoading,\n loadingText,\n spinnerProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n isDisabled,\n isFullWidth,\n twClassName,\n textClassName,\n iconClassName,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole = 'button',\n accessibilityActions,\n onAccessibilityAction,\n ...props\n}: ButtonBaseProps) => {\n const tw = useTailwind();\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n\n // Generate accessibility label if not provided\n const finalAccessibilityLabel = useMemo(() => {\n if (accessibilityLabel) {\n return accessibilityLabel;\n }\n\n // For loading state with loadingText, prioritize loadingText\n if (isLoading && loadingText) {\n return loadingText;\n }\n\n // If children is a string, use it as the label\n if (typeof children === 'string') {\n return children;\n }\n\n return undefined;\n }, [accessibilityLabel, children, isLoading, loadingText]);\n\n // Generate accessibility hint for loading state if not provided\n const finalAccessibilityHint = useMemo(() => {\n if (accessibilityHint) {\n return accessibilityHint;\n }\n\n if (isLoading) {\n return 'Button is currently loading, please wait';\n }\n\n return undefined;\n }, [accessibilityHint, isLoading]);\n\n // Create accessibilityState object with only truthy values\n const accessibilityState = useMemo(() => {\n const state: { disabled?: boolean; busy?: boolean } = {};\n\n if (isDisabled || isLoading) {\n state.disabled = true;\n }\n\n if (isLoading) {\n state.busy = true;\n }\n\n return state;\n }, [isDisabled, isLoading]);\n\n return (\n <ButtonAnimated\n disabled={isDisabled || isLoading}\n accessibilityRole={accessibilityRole}\n accessibilityLabel={finalAccessibilityLabel}\n accessibilityHint={finalAccessibilityHint}\n accessibilityActions={accessibilityActions}\n onAccessibilityAction={onAccessibilityAction}\n accessibilityState={accessibilityState}\n accessible\n style={({ pressed }) => {\n // Evaluate custom className if it's a function\n const customClassName =\n typeof twClassName === 'function'\n ? twClassName(pressed)\n : twClassName;\n\n // Build button container styles\n const buttonStyles = tw.style(\n // Base layout - flex container for button content\n 'flex-row items-center justify-center gap-x-2',\n // Visual styling\n 'rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // State-based opacity\n isDisabled ? 'opacity-50' : 'opacity-100',\n // Width - use self-start to prevent stretching when not full width\n isFullWidth ? 'w-full' : 'self-start',\n // Custom classes\n customClassName,\n );\n\n // Merge with additional styles if provided\n const computedStyle: StyleProp<ViewStyle>[] = [buttonStyles];\n\n const additionalStyle =\n typeof style === 'function' ? style({ pressed }) : style;\n\n if (additionalStyle) {\n computedStyle.push(additionalStyle);\n }\n\n return computedStyle;\n }}\n {...props}\n >\n {({ pressed }) => (\n <>\n {/* Loading spinner overlay */}\n {isLoading && (\n <View\n style={tw.style(\n 'absolute inset-0 flex items-center justify-center',\n )}\n testID=\"spinner-container\"\n >\n <Spinner\n color={\n textClassName\n ? (textClassName(pressed) as IconColor)\n : IconColor.IconDefault\n }\n loadingText={loadingText}\n loadingTextProps={{\n numberOfLines: 1,\n twClassName: textClassName ? textClassName(pressed) : '',\n ...spinnerProps?.loadingTextProps,\n }}\n {...spinnerProps}\n />\n </View>\n )}\n\n {/* Button content - opacity controlled individually on each child */}\n {finalStartIconName ? (\n <Icon\n name={finalStartIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`}\n {...startIconProps}\n />\n ) : (\n startAccessory && (\n <View style={tw.style(isLoading && 'opacity-0')}>\n {startAccessory}\n </View>\n )\n )}\n\n {typeof children === 'string' ? (\n <TextOrChildren\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n color: TextColor.TextDefault,\n twClassName: `shrink grow-0 flex-wrap text-center ${isLoading ? 'opacity-0' : ''} ${textClassName ? textClassName(pressed) : ''}`,\n ...textProps,\n }}\n >\n {children}\n </TextOrChildren>\n ) : (\n <View style={tw.style(isLoading && 'opacity-0')}>{children}</View>\n )}\n\n {finalEndIconName ? (\n <Icon\n name={finalEndIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`}\n {...endIconProps}\n />\n ) : (\n endAccessory && (\n <View style={tw.style(isLoading && 'opacity-0')}>\n {endAccessory}\n </View>\n )\n )}\n </>\n )}\n </ButtonAnimated>\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,cAAc;AAYvC,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,4VAyBpB,eAAe,sBA8JjB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.cts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,cAAc;AAYvC,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,4VAyBpB,eAAe,sBAiLjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,cAAc;AAYvC,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,4VAyBpB,eAAe,sBA8JjB,CAAC"}
1
+ {"version":3,"file":"ButtonBase.d.mts","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,cAAc;AAYvC,OAAO,KAAK,EAAE,eAAe,EAAE,+BAA2B;AAE1D,eAAO,MAAM,UAAU,4VAyBpB,eAAe,sBAiLjB,CAAC"}
@@ -15,7 +15,7 @@ import { Spinner } from "../temp-components/Spinner/index.mjs";
15
15
  import { TextOrChildren } from "../temp-components/TextOrChildren/TextOrChildren.mjs";
16
16
  import { TextVariant, FontWeight, TextColor } from "../Text/index.mjs";
17
17
  import { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from "./ButtonBase.constants.mjs";
18
- export const ButtonBase = ({ children, textProps, size = ButtonBaseSize.Lg, isLoading, loadingText, spinnerProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, isDisabled, isFullWidth, twClassName = '', textClassName, iconClassName, style, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', accessibilityActions, onAccessibilityAction, ...props }) => {
18
+ export const ButtonBase = ({ children, textProps, size = ButtonBaseSize.Lg, isLoading, loadingText, spinnerProps, startIconName, startIconProps, startAccessory, endIconName, endIconProps, endAccessory, isDisabled, isFullWidth, twClassName, textClassName, iconClassName, style, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', accessibilityActions, onAccessibilityAction, ...props }) => {
19
19
  const tw = useTailwind();
20
20
  const finalStartIconName = startIconName ?? startIconProps?.name;
21
21
  const finalEndIconName = endIconName ?? endIconProps?.name;
@@ -56,53 +56,62 @@ export const ButtonBase = ({ children, textProps, size = ButtonBaseSize.Lg, isLo
56
56
  return state;
57
57
  }, [isDisabled, isLoading]);
58
58
  return (<ButtonAnimated disabled={isDisabled || isLoading} accessibilityRole={accessibilityRole} accessibilityLabel={finalAccessibilityLabel} accessibilityHint={finalAccessibilityHint} accessibilityActions={accessibilityActions} onAccessibilityAction={onAccessibilityAction} accessibilityState={accessibilityState} accessible style={({ pressed }) => {
59
- const containerClassName = typeof twClassName === 'function'
59
+ // Evaluate custom className if it's a function
60
+ const customClassName = typeof twClassName === 'function'
60
61
  ? twClassName(pressed)
61
62
  : twClassName;
62
- const baseContainerClassNames = `
63
- flex-row items-center justify-center rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden
64
- ${TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size]}
65
- ${isDisabled ? 'opacity-50' : 'opacity-100'}
66
- ${isFullWidth ? 'w-full' : 'w-auto'}
67
- ${containerClassName}
68
- `;
69
- const computedStyle = [
70
- tw `${baseContainerClassNames}`,
71
- ];
72
- if (typeof style === 'function') {
73
- const additionalStyle = style({ pressed });
74
- if (additionalStyle) {
75
- computedStyle.push(additionalStyle);
76
- }
77
- }
78
- else if (style) {
79
- computedStyle.push(style);
63
+ // Build button container styles
64
+ const buttonStyles = tw.style(
65
+ // Base layout - flex container for button content
66
+ 'flex-row items-center justify-center gap-x-2',
67
+ // Visual styling
68
+ 'rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden',
69
+ // Size
70
+ TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],
71
+ // State-based opacity
72
+ isDisabled ? 'opacity-50' : 'opacity-100',
73
+ // Width - use self-start to prevent stretching when not full width
74
+ isFullWidth ? 'w-full' : 'self-start',
75
+ // Custom classes
76
+ customClassName);
77
+ // Merge with additional styles if provided
78
+ const computedStyle = [buttonStyles];
79
+ const additionalStyle = typeof style === 'function' ? style({ pressed }) : style;
80
+ if (additionalStyle) {
81
+ computedStyle.push(additionalStyle);
80
82
  }
81
83
  return computedStyle;
82
84
  }} {...props}>
83
85
  {({ pressed }) => (<>
84
- <View style={tw `absolute inset-0 flex items-center justify-center ${isLoading ? 'opacity-100' : 'opacity-0'}`} testID="spinner-container">
85
- <Spinner color={textClassName
86
- ? textClassName(pressed)
87
- : IconColor.IconDefault} loadingText={loadingText} loadingTextProps={{
88
- numberOfLines: 1,
89
- twClassName: textClassName ? textClassName(pressed) : '',
90
- ...spinnerProps?.loadingTextProps,
91
- }} {...spinnerProps}/>
92
- </View>
93
- <View style={tw `flex-row items-center justify-center gap-x-2 ${isLoading ? 'opacity-0' : 'opacity-100'}`} testID="content-container">
94
- {finalStartIconName ? (<Icon name={finalStartIconName} size={IconSize.Sm} twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`} {...startIconProps}/>) : (startAccessory)}
95
- <TextOrChildren textProps={{
96
- variant: TextVariant.BodyMd,
97
- fontWeight: FontWeight.Medium,
98
- color: TextColor.TextDefault,
99
- twClassName: `shrink grow-0 flex-wrap text-center ${textClassName ? textClassName(pressed) : ''}`,
100
- ...textProps,
101
- }}>
86
+ {/* Loading spinner overlay */}
87
+ {isLoading && (<View style={tw.style('absolute inset-0 flex items-center justify-center')} testID="spinner-container">
88
+ <Spinner color={textClassName
89
+ ? textClassName(pressed)
90
+ : IconColor.IconDefault} loadingText={loadingText} loadingTextProps={{
91
+ numberOfLines: 1,
92
+ twClassName: textClassName ? textClassName(pressed) : '',
93
+ ...spinnerProps?.loadingTextProps,
94
+ }} {...spinnerProps}/>
95
+ </View>)}
96
+
97
+ {/* Button content - opacity controlled individually on each child */}
98
+ {finalStartIconName ? (<Icon name={finalStartIconName} size={IconSize.Sm} twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`} {...startIconProps}/>) : (startAccessory && (<View style={tw.style(isLoading && 'opacity-0')}>
99
+ {startAccessory}
100
+ </View>))}
101
+
102
+ {typeof children === 'string' ? (<TextOrChildren textProps={{
103
+ variant: TextVariant.BodyMd,
104
+ fontWeight: FontWeight.Medium,
105
+ color: TextColor.TextDefault,
106
+ twClassName: `shrink grow-0 flex-wrap text-center ${isLoading ? 'opacity-0' : ''} ${textClassName ? textClassName(pressed) : ''}`,
107
+ ...textProps,
108
+ }}>
102
109
  {children}
103
- </TextOrChildren>
104
- {finalEndIconName ? (<Icon name={finalEndIconName} size={IconSize.Sm} twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`} {...endIconProps}/>) : (endAccessory)}
105
- </View>
110
+ </TextOrChildren>) : (<View style={tw.style(isLoading && 'opacity-0')}>{children}</View>)}
111
+
112
+ {finalEndIconName ? (<Icon name={finalEndIconName} size={IconSize.Sm} twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`} {...endIconProps}/>) : (endAccessory && (<View style={tw.style(isLoading && 'opacity-0')}>
113
+ {endAccessory}
114
+ </View>))}
106
115
  </>)}
107
116
  </ButtonAnimated>);
108
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useMemo } from 'react';\nimport { View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { ButtonBaseSize } from '../../types';\nimport { Icon, IconColor, IconSize } from '../Icon';\nimport { ButtonAnimated } from '../temp-components/ButtonAnimated';\nimport { Spinner } from '../temp-components/Spinner';\nimport { TextOrChildren } from '../temp-components/TextOrChildren/TextOrChildren';\nimport { TextVariant, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = ({\n children,\n textProps,\n size = ButtonBaseSize.Lg,\n isLoading,\n loadingText,\n spinnerProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n isDisabled,\n isFullWidth,\n twClassName = '',\n textClassName,\n iconClassName,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole = 'button',\n accessibilityActions,\n onAccessibilityAction,\n ...props\n}: ButtonBaseProps) => {\n const tw = useTailwind();\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n\n // Generate accessibility label if not provided\n const finalAccessibilityLabel = useMemo(() => {\n if (accessibilityLabel) {\n return accessibilityLabel;\n }\n\n // For loading state with loadingText, prioritize loadingText\n if (isLoading && loadingText) {\n return loadingText;\n }\n\n // If children is a string, use it as the label\n if (typeof children === 'string') {\n return children;\n }\n\n return undefined;\n }, [accessibilityLabel, children, isLoading, loadingText]);\n\n // Generate accessibility hint for loading state if not provided\n const finalAccessibilityHint = useMemo(() => {\n if (accessibilityHint) {\n return accessibilityHint;\n }\n\n if (isLoading) {\n return 'Button is currently loading, please wait';\n }\n\n return undefined;\n }, [accessibilityHint, isLoading]);\n\n // Create accessibilityState object with only truthy values\n const accessibilityState = useMemo(() => {\n const state: { disabled?: boolean; busy?: boolean } = {};\n\n if (isDisabled || isLoading) {\n state.disabled = true;\n }\n\n if (isLoading) {\n state.busy = true;\n }\n\n return state;\n }, [isDisabled, isLoading]);\n\n return (\n <ButtonAnimated\n disabled={isDisabled || isLoading}\n accessibilityRole={accessibilityRole}\n accessibilityLabel={finalAccessibilityLabel}\n accessibilityHint={finalAccessibilityHint}\n accessibilityActions={accessibilityActions}\n onAccessibilityAction={onAccessibilityAction}\n accessibilityState={accessibilityState}\n accessible\n style={({ pressed }) => {\n const containerClassName =\n typeof twClassName === 'function'\n ? twClassName(pressed)\n : twClassName;\n\n const baseContainerClassNames = `\n flex-row items-center justify-center rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden\n ${TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size]}\n ${isDisabled ? 'opacity-50' : 'opacity-100'}\n ${isFullWidth ? 'w-full' : 'w-auto'}\n ${containerClassName}\n `;\n\n const computedStyle: StyleProp<ViewStyle>[] = [\n tw`${baseContainerClassNames}`,\n ];\n if (typeof style === 'function') {\n const additionalStyle = style({ pressed });\n if (additionalStyle) {\n computedStyle.push(additionalStyle);\n }\n } else if (style) {\n computedStyle.push(style);\n }\n\n return computedStyle;\n }}\n {...props}\n >\n {({ pressed }) => (\n <>\n <View\n style={tw`absolute inset-0 flex items-center justify-center ${\n isLoading ? 'opacity-100' : 'opacity-0'\n }`}\n testID=\"spinner-container\"\n >\n <Spinner\n color={\n textClassName\n ? (textClassName(pressed) as IconColor)\n : IconColor.IconDefault\n }\n loadingText={loadingText}\n loadingTextProps={{\n numberOfLines: 1,\n twClassName: textClassName ? textClassName(pressed) : '',\n ...spinnerProps?.loadingTextProps,\n }}\n {...spinnerProps}\n />\n </View>\n <View\n style={tw`flex-row items-center justify-center gap-x-2 ${\n isLoading ? 'opacity-0' : 'opacity-100'\n }`}\n testID=\"content-container\"\n >\n {finalStartIconName ? (\n <Icon\n name={finalStartIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`}\n {...startIconProps}\n />\n ) : (\n startAccessory\n )}\n <TextOrChildren\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n color: TextColor.TextDefault,\n twClassName: `shrink grow-0 flex-wrap text-center ${textClassName ? textClassName(pressed) : ''}`,\n ...textProps,\n }}\n >\n {children}\n </TextOrChildren>\n {finalEndIconName ? (\n <Icon\n name={finalEndIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${iconClassName ? iconClassName(pressed) : ''}`}\n {...endIconProps}\n />\n ) : (\n endAccessory\n )}\n </View>\n </>\n )}\n </ButtonAnimated>\n );\n};\n"]}
1
+ {"version":3,"file":"ButtonBase.mjs","sourceRoot":"","sources":["../../../src/components/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useTailwind } from '@metamask-previews/design-system-twrnc-preset';\nimport React, { useMemo } from 'react';\nimport { View } from 'react-native';\nimport type { StyleProp, ViewStyle } from 'react-native';\n\nimport { ButtonBaseSize } from '../../types';\nimport { Icon, IconColor, IconSize } from '../Icon';\nimport { ButtonAnimated } from '../temp-components/ButtonAnimated';\nimport { Spinner } from '../temp-components/Spinner';\nimport { TextOrChildren } from '../temp-components/TextOrChildren/TextOrChildren';\nimport { TextVariant, FontWeight, TextColor } from '../Text';\n\nimport { TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION } from './ButtonBase.constants';\nimport type { ButtonBaseProps } from './ButtonBase.types';\n\nexport const ButtonBase = ({\n children,\n textProps,\n size = ButtonBaseSize.Lg,\n isLoading,\n loadingText,\n spinnerProps,\n startIconName,\n startIconProps,\n startAccessory,\n endIconName,\n endIconProps,\n endAccessory,\n isDisabled,\n isFullWidth,\n twClassName,\n textClassName,\n iconClassName,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole = 'button',\n accessibilityActions,\n onAccessibilityAction,\n ...props\n}: ButtonBaseProps) => {\n const tw = useTailwind();\n\n const finalStartIconName = startIconName ?? startIconProps?.name;\n const finalEndIconName = endIconName ?? endIconProps?.name;\n\n // Generate accessibility label if not provided\n const finalAccessibilityLabel = useMemo(() => {\n if (accessibilityLabel) {\n return accessibilityLabel;\n }\n\n // For loading state with loadingText, prioritize loadingText\n if (isLoading && loadingText) {\n return loadingText;\n }\n\n // If children is a string, use it as the label\n if (typeof children === 'string') {\n return children;\n }\n\n return undefined;\n }, [accessibilityLabel, children, isLoading, loadingText]);\n\n // Generate accessibility hint for loading state if not provided\n const finalAccessibilityHint = useMemo(() => {\n if (accessibilityHint) {\n return accessibilityHint;\n }\n\n if (isLoading) {\n return 'Button is currently loading, please wait';\n }\n\n return undefined;\n }, [accessibilityHint, isLoading]);\n\n // Create accessibilityState object with only truthy values\n const accessibilityState = useMemo(() => {\n const state: { disabled?: boolean; busy?: boolean } = {};\n\n if (isDisabled || isLoading) {\n state.disabled = true;\n }\n\n if (isLoading) {\n state.busy = true;\n }\n\n return state;\n }, [isDisabled, isLoading]);\n\n return (\n <ButtonAnimated\n disabled={isDisabled || isLoading}\n accessibilityRole={accessibilityRole}\n accessibilityLabel={finalAccessibilityLabel}\n accessibilityHint={finalAccessibilityHint}\n accessibilityActions={accessibilityActions}\n onAccessibilityAction={onAccessibilityAction}\n accessibilityState={accessibilityState}\n accessible\n style={({ pressed }) => {\n // Evaluate custom className if it's a function\n const customClassName =\n typeof twClassName === 'function'\n ? twClassName(pressed)\n : twClassName;\n\n // Build button container styles\n const buttonStyles = tw.style(\n // Base layout - flex container for button content\n 'flex-row items-center justify-center gap-x-2',\n // Visual styling\n 'rounded-xl bg-muted px-4 min-w-[80px] overflow-hidden',\n // Size\n TWCLASSMAP_BUTTONBASE_SIZE_DIMENSION[size],\n // State-based opacity\n isDisabled ? 'opacity-50' : 'opacity-100',\n // Width - use self-start to prevent stretching when not full width\n isFullWidth ? 'w-full' : 'self-start',\n // Custom classes\n customClassName,\n );\n\n // Merge with additional styles if provided\n const computedStyle: StyleProp<ViewStyle>[] = [buttonStyles];\n\n const additionalStyle =\n typeof style === 'function' ? style({ pressed }) : style;\n\n if (additionalStyle) {\n computedStyle.push(additionalStyle);\n }\n\n return computedStyle;\n }}\n {...props}\n >\n {({ pressed }) => (\n <>\n {/* Loading spinner overlay */}\n {isLoading && (\n <View\n style={tw.style(\n 'absolute inset-0 flex items-center justify-center',\n )}\n testID=\"spinner-container\"\n >\n <Spinner\n color={\n textClassName\n ? (textClassName(pressed) as IconColor)\n : IconColor.IconDefault\n }\n loadingText={loadingText}\n loadingTextProps={{\n numberOfLines: 1,\n twClassName: textClassName ? textClassName(pressed) : '',\n ...spinnerProps?.loadingTextProps,\n }}\n {...spinnerProps}\n />\n </View>\n )}\n\n {/* Button content - opacity controlled individually on each child */}\n {finalStartIconName ? (\n <Icon\n name={finalStartIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`}\n {...startIconProps}\n />\n ) : (\n startAccessory && (\n <View style={tw.style(isLoading && 'opacity-0')}>\n {startAccessory}\n </View>\n )\n )}\n\n {typeof children === 'string' ? (\n <TextOrChildren\n textProps={{\n variant: TextVariant.BodyMd,\n fontWeight: FontWeight.Medium,\n color: TextColor.TextDefault,\n twClassName: `shrink grow-0 flex-wrap text-center ${isLoading ? 'opacity-0' : ''} ${textClassName ? textClassName(pressed) : ''}`,\n ...textProps,\n }}\n >\n {children}\n </TextOrChildren>\n ) : (\n <View style={tw.style(isLoading && 'opacity-0')}>{children}</View>\n )}\n\n {finalEndIconName ? (\n <Icon\n name={finalEndIconName}\n size={IconSize.Sm}\n twClassName={`shrink-0 ${isLoading ? 'opacity-0' : ''} ${iconClassName ? iconClassName(pressed) : ''}`}\n {...endIconProps}\n />\n ) : (\n endAccessory && (\n <View style={tw.style(isLoading && 'opacity-0')}>\n {endAccessory}\n </View>\n )\n )}\n </>\n )}\n </ButtonAnimated>\n );\n};\n"]}
@@ -30,10 +30,9 @@ const types_1 = require("../../types/index.cjs");
30
30
  const Icon_1 = require("../Icon/index.cjs");
31
31
  const ButtonAnimated_1 = require("../temp-components/ButtonAnimated/index.cjs");
32
32
  const ButtonIcon_constants_1 = require("./ButtonIcon.constants.cjs");
33
- const ButtonIcon = ({ size = types_1.ButtonIconSize.Md, iconName, iconProps, isDisabled = false, isInverse = false, isFloating = false, onPressIn, onPressOut, twClassName = '', style, ...props }) => {
33
+ const ButtonIcon = ({ size = types_1.ButtonIconSize.Md, iconName, iconProps, isDisabled = false, isInverse = false, isFloating = false, onPressIn, onPressOut, twClassName, style, ...props }) => {
34
34
  const [isPressed, setIsPressed] = (0, react_1.useState)(false);
35
35
  const tw = (0, design_system_twrnc_preset_1.useTailwind)();
36
- // Determine background color based on state
37
36
  let backgroundColor = 'bg-transparent';
38
37
  if (isFloating) {
39
38
  backgroundColor = 'bg-icon-default';
@@ -41,13 +40,6 @@ const ButtonIcon = ({ size = types_1.ButtonIconSize.Md, iconName, iconProps, isD
41
40
  else if (isPressed) {
42
41
  backgroundColor = 'bg-pressed';
43
42
  }
44
- const twContainerClassNames = `
45
- items-center justify-center
46
- ${ButtonIcon_constants_1.TWCLASSMAP_BUTTONICON_SIZE_DIMENSION[size]}
47
- ${isFloating ? 'rounded-full' : 'rounded-lg'}
48
- ${backgroundColor}
49
- ${isDisabled ? 'opacity-50' : 'opacity-100'}
50
- ${twClassName}`;
51
43
  const twIconColorClassNames = isInverse || isFloating ? 'text-primary-inverse' : 'text-icon-default';
52
44
  const onPressInHandler = (event) => {
53
45
  setIsPressed(true);
@@ -57,7 +49,10 @@ const ButtonIcon = ({ size = types_1.ButtonIconSize.Md, iconName, iconProps, isD
57
49
  setIsPressed(false);
58
50
  onPressOut?.(event);
59
51
  };
60
- return (<ButtonAnimated_1.ButtonAnimated disabled={isDisabled} onPressIn={onPressInHandler} onPressOut={onPressOutHandler} accessible style={[tw `${twContainerClassNames}`, style]} testID="button-icon" {...props}>
52
+ return (<ButtonAnimated_1.ButtonAnimated disabled={isDisabled} onPressIn={onPressInHandler} onPressOut={onPressOutHandler} accessible testID="button-icon" {...props} style={[
53
+ tw.style('items-center justify-center', ButtonIcon_constants_1.TWCLASSMAP_BUTTONICON_SIZE_DIMENSION[size], isFloating ? 'rounded-full' : 'rounded-lg', backgroundColor, isDisabled ? 'opacity-50' : 'opacity-100', twClassName),
54
+ style,
55
+ ]}>
61
56
  <Icon_1.Icon name={iconName} color={twIconColorClassNames} size={ButtonIcon_constants_1.MAP_BUTTONICON_SIZE_ICONSIZE[size]} {...iconProps}/>
62
57
  </ButtonAnimated_1.ButtonAnimated>);
63
58
  };