@hero-design/rn 8.61.0 → 8.61.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "8.61.0",
3
+ "version": "8.61.2",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -28,11 +28,11 @@
28
28
  "nanoid": "^4.0.2"
29
29
  },
30
30
  "peerDependencies": {
31
- "@hero-design/react-native-month-year-picker": "^8.42.7",
31
+ "@hero-design/react-native-month-year-picker": "^8.42.8",
32
32
  "@react-native-community/datetimepicker": "^3.5.2 || ^7.2.0",
33
33
  "@react-native-community/slider": "4.4.3",
34
34
  "react": "18.2.0",
35
- "react-native": "^0.71.0",
35
+ "react-native": "^0.72.11",
36
36
  "react-native-gesture-handler": "^1.10.3 || ~2.5.0",
37
37
  "react-native-linear-gradient": "^2.6.2",
38
38
  "react-native-pager-view": "^5.4.25",
@@ -48,7 +48,7 @@
48
48
  "@babel/runtime": "^7.20.0",
49
49
  "@emotion/jest": "^11.11.0",
50
50
  "@hero-design/eslint-plugin": "9.0.0",
51
- "@hero-design/react-native-month-year-picker": "^8.42.7",
51
+ "@hero-design/react-native-month-year-picker": "^8.42.8",
52
52
  "@react-native-community/datetimepicker": "7.2.0",
53
53
  "@react-native-community/slider": "4.4.3",
54
54
  "@rollup/plugin-babel": "^5.3.1",
@@ -64,6 +64,7 @@
64
64
  "@types/react": "^18.2.0",
65
65
  "@types/react-native-vector-icons": "^6.4.10",
66
66
  "babel-plugin-inline-import": "^3.0.0",
67
+ "babel-preset-expo": "9.5.2",
67
68
  "core-js": "^3.33.0",
68
69
  "eslint": "^8.56.0",
69
70
  "eslint-config-hd": "8.42.4",
@@ -74,7 +75,7 @@
74
75
  "prettier-config-hd": "8.42.4",
75
76
  "react": "18.2.0",
76
77
  "react-dom": "^18.2.0",
77
- "react-native": "0.71.14",
78
+ "react-native": "0.72.11",
78
79
  "react-native-gesture-handler": "~2.5.0",
79
80
  "react-native-linear-gradient": "^2.6.2",
80
81
  "react-native-pager-view": "^5.4.25",
@@ -1,6 +1,7 @@
1
- import React, { ReactChild, useMemo } from 'react';
1
+ import React, { ReactChild, ReactNode, useMemo } from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  import { Theme, useTheme } from '../../theme';
4
+ import { useDeprecation } from '../../utils/hooks';
4
5
  import type { IconName } from '../Icon';
5
6
  import LoadingIndicator from './LoadingIndicator';
6
7
  import type { Intent, ThemeVariant } from './StyledButton';
@@ -11,7 +12,6 @@ import {
11
12
  StyledButtonText,
12
13
  StyledButtonTitleOfVariantText,
13
14
  } from './StyledButton';
14
- import { useDeprecation } from '../../utils/hooks';
15
15
 
16
16
  export interface ButtonProps {
17
17
  /**
@@ -29,7 +29,7 @@ export interface ButtonProps {
29
29
  /**
30
30
  * Places an icon within the button, before the button's text
31
31
  */
32
- icon?: IconName;
32
+ icon?: IconName | ReactNode;
33
33
  /**
34
34
  * Visual intent color to apply to button. It is required for `filled`, `outlined` and `text` variants.
35
35
  */
@@ -45,7 +45,7 @@ export interface ButtonProps {
45
45
  /**
46
46
  * Places an icon within the button, after the button's text
47
47
  */
48
- rightIcon?: IconName;
48
+ rightIcon?: IconName | ReactNode;
49
49
  /**
50
50
  * Additional style.
51
51
  */
@@ -64,6 +64,10 @@ export interface ButtonProps {
64
64
  variant?: 'filled' | 'outlined' | 'text';
65
65
  }
66
66
 
67
+ const isIconName = (icon: IconName | ReactNode): icon is IconName => {
68
+ return typeof icon === 'string';
69
+ };
70
+
67
71
  const FILLED_VARIANTS = {
68
72
  primary: 'filled-primary',
69
73
  secondary: 'filled-secondary',
@@ -179,12 +183,16 @@ const Button = ({
179
183
  <>
180
184
  {icon !== undefined && (
181
185
  <StyledButtonIconWrapper themePosition="left">
182
- <StyledButtonIcon
183
- disabled={disabled}
184
- icon={icon}
185
- testID={`${testID}-left-icon`}
186
- themeButtonVariant={themeVariant}
187
- />
186
+ {isIconName(icon) ? (
187
+ <StyledButtonIcon
188
+ disabled={disabled}
189
+ icon={icon}
190
+ testID={`${testID}-left-icon`}
191
+ themeButtonVariant={themeVariant}
192
+ />
193
+ ) : (
194
+ icon
195
+ )}
188
196
  </StyledButtonIconWrapper>
189
197
  )}
190
198
  {isTextVariant(themeVariant) ? (
@@ -210,12 +218,16 @@ const Button = ({
210
218
  )}
211
219
  {rightIcon !== undefined && (
212
220
  <StyledButtonIconWrapper themePosition="right">
213
- <StyledButtonIcon
214
- disabled={disabled}
215
- icon={rightIcon}
216
- testID={`${testID}-right-icon`}
217
- themeButtonVariant={themeVariant}
218
- />
221
+ {isIconName(rightIcon) ? (
222
+ <StyledButtonIcon
223
+ disabled={disabled}
224
+ icon={rightIcon}
225
+ testID={`${testID}-right-icon`}
226
+ themeButtonVariant={themeVariant}
227
+ />
228
+ ) : (
229
+ rightIcon
230
+ )}
219
231
  </StyledButtonIconWrapper>
220
232
  )}
221
233
  </>
@@ -5,6 +5,7 @@ import renderWithTheme from '../../../testHelpers/renderWithTheme';
5
5
 
6
6
  import Button from '..';
7
7
  import { getThemeVariant } from '../Button';
8
+ import Icon from '../../Icon';
8
9
 
9
10
  describe('Button', () => {
10
11
  it('renders button text', () => {
@@ -45,6 +46,23 @@ describe('Button', () => {
45
46
  expect(getByTestId('button-right-icon')).toBeDefined();
46
47
  });
47
48
 
49
+ it('allows render custom icon', () => {
50
+ const { toJSON, getByTestId } = renderWithTheme(
51
+ <Button
52
+ text="A button"
53
+ icon={<Icon testID="custom-button-icon-left" icon="add" size="small" />}
54
+ rightIcon={
55
+ <Icon testID="custom-button-icon-right" icon="add" size="small" />
56
+ }
57
+ onPress={jest.fn()}
58
+ />
59
+ );
60
+
61
+ expect(toJSON()).toMatchSnapshot();
62
+ expect(getByTestId('custom-button-icon-left')).toBeDefined();
63
+ expect(getByTestId('custom-button-icon-right')).toBeDefined();
64
+ });
65
+
48
66
  it('renders loading icon', () => {
49
67
  const { getByTestId, toJSON } = renderWithTheme(
50
68
  <Button text="A button" testID="button" onPress={jest.fn()} loading />
@@ -1,5 +1,161 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
+ exports[`Button allows render custom icon 1`] = `
4
+ <View
5
+ style={
6
+ {
7
+ "flex": 1,
8
+ }
9
+ }
10
+ >
11
+ <View
12
+ accessibilityState={
13
+ {
14
+ "disabled": false,
15
+ }
16
+ }
17
+ accessibilityValue={
18
+ {
19
+ "max": undefined,
20
+ "min": undefined,
21
+ "now": undefined,
22
+ "text": undefined,
23
+ }
24
+ }
25
+ accessible={true}
26
+ focusable={true}
27
+ onClick={[Function]}
28
+ onResponderGrant={[Function]}
29
+ onResponderMove={[Function]}
30
+ onResponderRelease={[Function]}
31
+ onResponderTerminate={[Function]}
32
+ onResponderTerminationRequest={[Function]}
33
+ onStartShouldSetResponder={[Function]}
34
+ style={
35
+ [
36
+ {
37
+ "alignItems": "center",
38
+ "alignSelf": "stretch",
39
+ "backgroundColor": "#401960",
40
+ "borderRadius": 32,
41
+ "flexDirection": "row",
42
+ "height": 60,
43
+ "justifyContent": "center",
44
+ "padding": 16,
45
+ },
46
+ undefined,
47
+ ]
48
+ }
49
+ >
50
+ <View
51
+ style={
52
+ [
53
+ {
54
+ "paddingRight": 12,
55
+ },
56
+ undefined,
57
+ ]
58
+ }
59
+ themePosition="left"
60
+ >
61
+ <HeroIcon
62
+ name="add"
63
+ style={
64
+ [
65
+ {
66
+ "color": "#001f23",
67
+ "fontSize": 20,
68
+ },
69
+ undefined,
70
+ ]
71
+ }
72
+ testID="custom-button-icon-left"
73
+ themeIntent="text"
74
+ themeSize="small"
75
+ />
76
+ </View>
77
+ <Text
78
+ allowFontScaling={false}
79
+ disabled={false}
80
+ ellipsizeMode="tail"
81
+ numberOfLines={1}
82
+ style={
83
+ [
84
+ {
85
+ "color": "#001f23",
86
+ "fontFamily": "BeVietnamPro-SemiBold",
87
+ "fontSize": 18,
88
+ "letterSpacing": 0.24,
89
+ "lineHeight": 28,
90
+ },
91
+ [
92
+ {
93
+ "color": "#ffffff",
94
+ "flexShrink": 1,
95
+ "textAlign": "center",
96
+ },
97
+ undefined,
98
+ ],
99
+ ]
100
+ }
101
+ themeButtonVariant="filled-primary"
102
+ themeIntent="body"
103
+ themeLevel="h5"
104
+ themeTypeface="neutral"
105
+ >
106
+ A button
107
+ </Text>
108
+ <View
109
+ style={
110
+ [
111
+ {
112
+ "paddingLeft": 12,
113
+ },
114
+ undefined,
115
+ ]
116
+ }
117
+ themePosition="right"
118
+ >
119
+ <HeroIcon
120
+ name="add"
121
+ style={
122
+ [
123
+ {
124
+ "color": "#001f23",
125
+ "fontSize": 20,
126
+ },
127
+ undefined,
128
+ ]
129
+ }
130
+ testID="custom-button-icon-right"
131
+ themeIntent="text"
132
+ themeSize="small"
133
+ />
134
+ </View>
135
+ </View>
136
+ <View
137
+ pointerEvents="box-none"
138
+ position="bottom"
139
+ style={
140
+ [
141
+ {
142
+ "bottom": 0,
143
+ "elevation": 9999,
144
+ "flexDirection": "column-reverse",
145
+ "left": 0,
146
+ "paddingHorizontal": 24,
147
+ "paddingVertical": 16,
148
+ "position": "absolute",
149
+ "right": 0,
150
+ "top": 0,
151
+ },
152
+ undefined,
153
+ ]
154
+ }
155
+ />
156
+ </View>
157
+ `;
158
+
3
159
  exports[`Button renders correctly 1`] = `
4
160
  <View
5
161
  style={
@@ -40,7 +40,7 @@ const StyledCalendarRow = styled(View)<ViewProps>(({ theme }) => ({
40
40
  }));
41
41
 
42
42
  const StyledCalendarRowItem = styled(View)<ViewProps>(({ theme }) => ({
43
- flexBasis: `${Math.floor(100.0 / 7.0).toString()}%`,
43
+ flexBasis: `${Math.floor(100.0 / 7.0)}%`,
44
44
  alignItems: 'center',
45
45
  width: theme.__hd__.calendar.sizes.cellWidth,
46
46
  height: theme.__hd__.calendar.sizes.cellHeight,
@@ -48,7 +48,7 @@ const StyledCalendarRowItem = styled(View)<ViewProps>(({ theme }) => ({
48
48
  }));
49
49
 
50
50
  const StyledDisabledCalendarRowItem = styled(View)<ViewProps>(({ theme }) => ({
51
- flexBasis: `${Math.floor(100.0 / 7.0).toString()}%`,
51
+ flexBasis: `${Math.floor(100.0 / 7.0)}%`,
52
52
  alignItems: 'center',
53
53
  width: theme.__hd__.calendar.sizes.cellWidth,
54
54
  height: theme.__hd__.calendar.sizes.cellHeight,
@@ -160,7 +160,7 @@ export const CardCarousel = forwardRef<CardCarouselHandles, CardCarouselProps>(
160
160
  );
161
161
 
162
162
  const getItemLayout = useCallback(
163
- (_: React.ReactNode, index: number) => ({
163
+ (_: ArrayLike<React.ReactNode> | null | undefined, index: number) => ({
164
164
  length: itemWidth,
165
165
  offset: itemWidth * index,
166
166
  index,
@@ -193,7 +193,7 @@ export const CardCarousel = forwardRef<CardCarouselHandles, CardCarouselProps>(
193
193
  theme.__hd__.cardCarousel.space;
194
194
  return (
195
195
  <StyledWrapper style={style} testID={testID}>
196
- <FlatList
196
+ <FlatList<React.ReactNode>
197
197
  contentInset={{
198
198
  top: 0,
199
199
  left: contentContainerPaddingHorizontal,
@@ -35,9 +35,9 @@ const CarouselItem = ({
35
35
  return (
36
36
  <StyledCustomSizeCarouselImage
37
37
  source={image}
38
- height={image.height}
39
- width={image.width}
40
- resizeMode={image.resizeMode}
38
+ themeHeight={image.height}
39
+ themeWidth={image.width}
40
+ themeResizeMode={image.resizeMode}
41
41
  style={{ marginBottom: theme.space.medium }}
42
42
  />
43
43
  );
@@ -33,14 +33,14 @@ const StyledCarouselImage = styled(Image)(() => ({
33
33
  }));
34
34
 
35
35
  const StyledCustomSizeCarouselImage = styled(Image)<{
36
- height?: number | `${number}%`;
37
- width?: number | `${number}%`;
38
- resizeMode?: ImageResizeMode;
39
- }>(({ height, resizeMode = 'contain', width }) => ({
36
+ themeHeight?: number | `${number}%`;
37
+ themeWidth?: number | `${number}%`;
38
+ themeResizeMode?: ImageResizeMode;
39
+ }>(({ themeHeight, themeResizeMode = 'contain', themeWidth }) => ({
40
40
  alignSelf: 'center',
41
- width,
42
- height,
43
- resizeMode,
41
+ width: themeWidth,
42
+ height: themeHeight,
43
+ resizeMode: themeResizeMode,
44
44
  }));
45
45
 
46
46
  const StyledCarouselContentWrapper = styled(Box)<{
@@ -397,8 +397,6 @@ exports[`Carousel renders correctly with pageControlPosition bottom 1`] = `
397
397
  }
398
398
  >
399
399
  <Image
400
- height={100}
401
- resizeMode="cover"
402
400
  source={
403
401
  {
404
402
  "height": 100,
@@ -427,7 +425,9 @@ exports[`Carousel renders correctly with pageControlPosition bottom 1`] = `
427
425
  ],
428
426
  ]
429
427
  }
430
- width={30}
428
+ themeHeight={100}
429
+ themeResizeMode="cover"
430
+ themeWidth={30}
431
431
  />
432
432
  <View
433
433
  paddingHorizontal="medium"
@@ -516,7 +516,6 @@ exports[`Carousel renders correctly with pageControlPosition bottom 1`] = `
516
516
  }
517
517
  >
518
518
  <Image
519
- height={100}
520
519
  source={
521
520
  {
522
521
  "height": 100,
@@ -544,7 +543,8 @@ exports[`Carousel renders correctly with pageControlPosition bottom 1`] = `
544
543
  ],
545
544
  ]
546
545
  }
547
- width={30}
546
+ themeHeight={100}
547
+ themeWidth={30}
548
548
  />
549
549
  <View
550
550
  paddingHorizontal="medium"
@@ -1392,8 +1392,6 @@ exports[`Carousel renders correctly with pageControlPosition top 1`] = `
1392
1392
  }
1393
1393
  >
1394
1394
  <Image
1395
- height={100}
1396
- resizeMode="cover"
1397
1395
  source={
1398
1396
  {
1399
1397
  "height": 100,
@@ -1422,7 +1420,9 @@ exports[`Carousel renders correctly with pageControlPosition top 1`] = `
1422
1420
  ],
1423
1421
  ]
1424
1422
  }
1425
- width={30}
1423
+ themeHeight={100}
1424
+ themeResizeMode="cover"
1425
+ themeWidth={30}
1426
1426
  />
1427
1427
  <View
1428
1428
  paddingHorizontal="medium"
@@ -1511,7 +1511,6 @@ exports[`Carousel renders correctly with pageControlPosition top 1`] = `
1511
1511
  }
1512
1512
  >
1513
1513
  <Image
1514
- height={100}
1515
1514
  source={
1516
1515
  {
1517
1516
  "height": 100,
@@ -1539,7 +1538,8 @@ exports[`Carousel renders correctly with pageControlPosition top 1`] = `
1539
1538
  ],
1540
1539
  ]
1541
1540
  }
1542
- width={30}
1541
+ themeHeight={100}
1542
+ themeWidth={30}
1543
1543
  />
1544
1544
  <View
1545
1545
  paddingHorizontal="medium"
@@ -1 +1 @@
1
- {"activate":59000,"add-emoji":59001,"add-person":59002,"adjustment":59003,"alignment":59004,"antenna":59005,"archive":59006,"assignment-warning":59007,"bank":59008,"bell":59009,"billing":59010,"bolt":59011,"bookmark-added":59012,"bookmark":59013,"box-check":59014,"box":59015,"bpay":59016,"buildings":59017,"cake":59018,"calendar-clock":59019,"calendar":59020,"candy-box-menu":59021,"caret-down-small":59022,"caret-down":59023,"caret-left-small":59024,"caret-left":59025,"caret-right-small":59026,"caret-right":59027,"caret-up-small":59028,"caret-up":59029,"check-radio":59030,"circle-add":59031,"circle-cancel":59032,"circle-check":59033,"circle-down":59034,"circle-info":59035,"circle-left":59036,"circle-ok":59037,"circle-pencil":59038,"circle-question":59039,"circle-remove":59040,"circle-right":59041,"circle-up":59042,"circle-warning":59043,"clock-3":59044,"clock":59045,"cloud-download":59046,"cloud-upload":59047,"cog":59048,"coin":59049,"contacts":59050,"credit-card":59051,"diamond":59052,"direction-arrows":59053,"directory":59054,"document":59055,"dollar-coin-shine":59056,"double-buildings":59057,"edit-template":59058,"envelope":59059,"exclude":59060,"expand-content":59061,"expense":59062,"explore_nearby":59063,"eye-circle":59064,"eye-invisible":59065,"eye":59066,"face-meh":59067,"face-sad":59068,"face-smiley":59069,"feed":59070,"feedbacks":59071,"file-certified":59072,"file-clone":59073,"file-copy":59074,"file-csv":59075,"file-dispose":59076,"file-doc":59077,"file-excel":59078,"file-export":59079,"file-lock":59080,"file-pdf":59081,"file-powerpoint":59082,"file-search":59083,"file-secured":59084,"file-sheets":59085,"file-slide":59086,"file-verified":59087,"file-word":59088,"file":59089,"filter":59090,"folder-user":59091,"folder":59092,"format-bold":59093,"format-heading1":59094,"format-heading2":59095,"format-italic":59096,"format-list-bulleted":59097,"format-list-numbered":59098,"format-underlined":59099,"funnel-filter":59100,"global-dollar":59101,"globe":59102,"graduation-cap":59103,"graph":59104,"happy-sun":59105,"health-bag":59106,"heart":59107,"hero-points":59108,"home":59109,"image":59110,"import":59111,"incident-siren":59112,"instapay-daily":59113,"instapay-now":59114,"instapay":59115,"list":59116,"loading-2":59117,"loading":59118,"location-on":59119,"location":59120,"lock":59121,"looks-one":59122,"looks-two":59123,"media-content":59124,"menu":59125,"money-notes":59126,"moneybag":59127,"moon":59128,"multiple-stars":59129,"multiple-users":59130,"near-me":59131,"node":59132,"open-folder":59133,"paperclip":59134,"payment-summary":59135,"pencil":59136,"phone":59137,"piggy-bank":59138,"plane-up":59139,"plane":59140,"play-circle":59141,"print":59142,"raising-hands":59143,"reply-arrow":59144,"reply":59145,"reschedule":59146,"rostering":59147,"salary-sacrifice":59148,"save":59149,"schedule-send":59150,"schedule":59151,"search-person":59152,"send":59153,"speaker-active":59154,"speaker":59155,"star-award":59156,"star-badge":59157,"star-circle":59158,"star-medal":59159,"star":59160,"steps-circle":59161,"stopwatch":59162,"suitcase":59163,"surfing":59164,"survey":59165,"swag-pillar-benefit":59166,"swag-pillar-career":59167,"swag-pillar-money":59168,"swag-pillar-work":59169,"swag":59170,"swipe-right":59171,"switch":59172,"tag":59173,"target":59174,"teams":59175,"timesheet":59176,"touch-id":59177,"trash-bin":59178,"unlock":59179,"user":59180,"video-1":59181,"video-2":59182,"wallet":59183,"warning":59184,"activate-outlined":59185,"add-credit-card-outlined":59186,"add-person-outlined":59187,"add-section-outlined":59188,"add-time-outlined":59189,"add":59190,"adjustment-outlined":59191,"ai-outlined":59192,"alignment-2-outlined":59193,"alignment-outlined":59194,"all-caps":59195,"application-outlined":59196,"arrow-down":59197,"arrow-downwards":59198,"arrow-left":59199,"arrow-leftwards":59200,"arrow-right":59201,"arrow-rightwards":59202,"arrow-up":59203,"arrow-upwards":59204,"article-outlined":59205,"at-sign":59206,"auto-graph-outlined":59207,"beer-outlined":59208,"bell-active-outlined":59209,"bell-outlined":59210,"bell-slash-outlined":59211,"bill-management-outlined":59212,"billing-outlined":59213,"body-outlined":59214,"bold":59215,"bolt-outlined":59216,"book-outlined":59217,"bookmark-added-outlined":59218,"bookmark-outlined":59219,"box-check-outlined":59220,"box-outlined":59221,"bullet-points":59222,"cake-outlined":59223,"calendar-dates-outlined":59224,"calendar-star-outlined":59225,"call-outlined":59226,"call-split-outlined":59227,"camera-outlined":59228,"cancel":59229,"car-forward-outlined":59230,"cashback-outlined":59231,"charging-station-outlined":59232,"chat-bubble-outlined":59233,"chat-unread-outlined":59234,"checkmark":59235,"circle-add-outlined":59236,"circle-cancel-outlined":59237,"circle-down-outlined":59238,"circle-info-outlined":59239,"circle-left-outlined":59240,"circle-ok-outlined":59241,"circle-question-outlined":59242,"circle-remove-outlined":59243,"circle-right-outlined":59244,"circle-up-outlined":59245,"circle-warning-outlined":59246,"clock-2-outlined":59247,"clock-outlined":59248,"cog-outlined":59249,"coin-outlined":59250,"coin-super-outlined":59251,"comment-outlined":59252,"contacts-outlined":59253,"contacts-user-outlined":59254,"credit-card-outlined":59255,"cup-outlined":59256,"dentistry-outlined":59257,"direction-arrows-outlined":59258,"directory-outlined":59259,"document-outlined":59260,"dollar-box-outlined":59261,"dollar-card-outlined":59262,"dollar-coin-shine-outlined":59263,"dollar-credit-card-outlined":59264,"dollar-sign":59265,"double-buildings-outlined":59266,"double-left-arrows":59267,"double-right-arrows":59268,"download-box-outlined":59269,"download-outlined":59270,"edit-template-outlined":59271,"email-outlined":59272,"enter-arrow":59273,"envelope-outlined":59274,"expense-approval-outlined":59275,"expense-outlined":59276,"explore-outlined":59277,"extension-outlined":59278,"external-link":59279,"eye-invisible-outlined":59280,"eye-outlined":59281,"face-id":59282,"face-meh-outlined":59283,"face-open-smiley-outlined":59284,"face-sad-outlined":59285,"face-smiley-outlined":59286,"fastfood-outlined":59287,"feed-outlined":59288,"file-certified-outlined":59289,"file-clone-outlined":59290,"file-copy-outlined":59291,"file-dispose-outlined":59292,"file-dollar-certified-outlined":59293,"file-dollar-outlined":59294,"file-download-outlined":59295,"file-export-outlined":59296,"file-lock-outlined":59297,"file-outlined":59298,"file-search-outlined":59299,"file-secured-outlined":59300,"file-statutory-outlined":59301,"file-verified-outlined":59302,"filter-outlined":59303,"folder-outlined":59304,"folder-user-outlined":59305,"form-outlined":59306,"funnel-filter-outline":59307,"goal-outlined":59308,"graph-outlined":59309,"hand-holding-user-outlined":59310,"happy-sun-outlined":59311,"health-bag-outlined":59312,"heart-outlined":59313,"home-active-outlined":59314,"home-outlined":59315,"id-card-outlined":59316,"image-outlined":59317,"import-outlined":59318,"instapay-outlined":59319,"italic":59320,"job-search-outlined":59321,"leave-approval-outlined":59322,"link-1":59323,"link-2":59324,"list-outlined":59325,"live-help-outlined":59326,"local_mall_outlined":59327,"location-on-outlined":59328,"location-outlined":59329,"lock-outlined":59330,"locked-file-outlined":59331,"log-out":59332,"mail-outlined":59333,"map-outlined":59334,"media-content-outlined":59335,"menu-close":59336,"menu-expand":59337,"menu-fold-outlined":59338,"menu-unfold-outlined":59339,"moneybag-outlined":59340,"moon-outlined":59341,"more-horizontal":59342,"more-vertical":59343,"multiple-folders-outlined":59344,"multiple-users-outlined":59345,"near-me-outlined":59346,"node-outlined":59347,"number-points":59348,"number":59349,"overview-outlined":59350,"payment-summary-outlined":59351,"payslip-outlined":59352,"pencil-outlined":59353,"percentage":59354,"phone-outlined":59355,"piggy-bank-outlined":59356,"plane-outlined":59357,"play-circle-outlined":59358,"print-outlined":59359,"propane-tank-outlined":59360,"qr-code-outlined":59361,"qualification-outlined":59362,"re-assign":59363,"redeem":59364,"refresh":59365,"remove":59366,"reply-outlined":59367,"restart":59368,"resume-outlined":59369,"return-arrow":59370,"rostering-outlined":59371,"safety-outlined":59372,"save-outlined":59373,"schedule-outlined":59374,"search-outlined":59375,"search-secured-outlined":59376,"send-outlined":59377,"share-1":59378,"share-2":59379,"share-outlined":59380,"shopping_basket_outlined":59381,"show-chart-outlined":59382,"single-down-arrow":59383,"single-left-arrow":59384,"single-right-arrow":59385,"single-up-arrow":59386,"smart-match-outlined":59387,"sparkle-outlined":59388,"speaker-active-outlined":59389,"speaker-outlined":59390,"star-circle-outlined":59391,"star-outlined":59392,"stash-outlined":59393,"stopwatch-outlined":59394,"strikethrough":59395,"styler-outlined":59396,"suitcase-clock-outlined":59397,"suitcase-outlined":59398,"survey-outlined":59399,"switch-outlined":59400,"sync":59401,"tag-outlined":59402,"target-outlined":59403,"tennis-outlined":59404,"ticket-outlined":59405,"timesheet-outlined":59406,"timesheets-outlined":59407,"today-outlined":59408,"transfer":59409,"trash-bin-outlined":59410,"umbrela-outlined":59411,"unavailability-outlined":59412,"unavailable":59413,"underline":59414,"union-outlined":59415,"unlock-outlined":59416,"upload-outlined":59417,"user-circle-outlined":59418,"user-gear-outlined":59419,"user-outlined":59420,"user-rectangle-outlined":59421,"video-1-outlined":59422,"video-2-outlined":59423,"volunteer-outlined":59424,"wallet-outlined":59425}
1
+ {"activate":59000,"add-emoji":59001,"add-person":59002,"adjustment":59003,"alignment":59004,"antenna":59005,"archive":59006,"assignment-warning":59007,"bank":59008,"bell":59009,"billing":59010,"bolt":59011,"bookmark-added":59012,"bookmark":59013,"box-check":59014,"box":59015,"bpay":59016,"buildings":59017,"cake":59018,"calendar-clock":59019,"calendar":59020,"candy-box-menu":59021,"caret-down-small":59022,"caret-down":59023,"caret-left-small":59024,"caret-left":59025,"caret-right-small":59026,"caret-right":59027,"caret-up-small":59028,"caret-up":59029,"check-radio":59030,"circle-add":59031,"circle-cancel":59032,"circle-check":59033,"circle-down":59034,"circle-info":59035,"circle-left":59036,"circle-ok":59037,"circle-pencil":59038,"circle-question":59039,"circle-remove":59040,"circle-right":59041,"circle-up":59042,"circle-warning":59043,"clock-3":59044,"clock":59045,"cloud-download":59046,"cloud-upload":59047,"cog":59048,"coin":59049,"contacts":59050,"credit-card":59051,"diamond":59052,"direction-arrows":59053,"directory":59054,"document":59055,"dollar-coin-shine":59056,"double-buildings":59057,"edit-template":59058,"envelope":59059,"exclude":59060,"expand-content":59061,"expense":59062,"explore_nearby":59063,"eye-circle":59064,"eye-invisible":59065,"eye":59066,"face-meh":59067,"face-sad":59068,"face-smiley":59069,"feed":59070,"feedbacks":59071,"file-certified":59072,"file-clone":59073,"file-copy":59074,"file-csv":59075,"file-dispose":59076,"file-doc":59077,"file-excel":59078,"file-export":59079,"file-lock":59080,"file-pdf":59081,"file-powerpoint":59082,"file-search":59083,"file-secured":59084,"file-sheets":59085,"file-slide":59086,"file-verified":59087,"file-word":59088,"file":59089,"filter":59090,"folder-user":59091,"folder":59092,"format-bold":59093,"format-heading1":59094,"format-heading2":59095,"format-italic":59096,"format-list-bulleted":59097,"format-list-numbered":59098,"format-underlined":59099,"funnel-filter":59100,"global-dollar":59101,"globe":59102,"graduation-cap":59103,"graph":59104,"happy-sun":59105,"health-bag":59106,"heart":59107,"hero-points":59108,"home":59109,"image":59110,"import":59111,"incident-siren":59112,"instapay-daily":59113,"instapay-now":59114,"instapay":59115,"list":59116,"loading-2":59117,"loading":59118,"location-on":59119,"location":59120,"lock":59121,"looks-one":59122,"looks-two":59123,"media-content":59124,"menu":59125,"money-notes":59126,"moneybag":59127,"moon":59128,"multiple-stars":59129,"multiple-users":59130,"near-me":59131,"node":59132,"open-folder":59133,"paperclip":59134,"payment-summary":59135,"pencil":59136,"phone":59137,"piggy-bank":59138,"plane-up":59139,"plane":59140,"play-circle":59141,"print":59142,"raising-hands":59143,"reply-arrow":59144,"reply":59145,"reschedule":59146,"rostering":59147,"salary-sacrifice":59148,"save":59149,"schedule-send":59150,"schedule":59151,"search-person":59152,"send":59153,"speaker-active":59154,"speaker":59155,"star-award":59156,"star-badge":59157,"star-circle":59158,"star-medal":59159,"star":59160,"steps-circle":59161,"stopwatch":59162,"suitcase":59163,"surfing":59164,"survey":59165,"swag-pillar-benefit":59166,"swag-pillar-career":59167,"swag-pillar-money":59168,"swag-pillar-work":59169,"swag":59170,"swipe-right":59171,"switch":59172,"tag":59173,"target":59174,"teams":59175,"timesheet":59176,"touch-id":59177,"trash-bin":59178,"unlock":59179,"user":59180,"video-1":59181,"video-2":59182,"wallet":59183,"warning":59184,"activate-outlined":59185,"add-credit-card-outlined":59186,"add-person-outlined":59187,"add-section-outlined":59188,"add-time-outlined":59189,"add":59190,"adjustment-outlined":59191,"ai-outlined":59192,"alignment-2-outlined":59193,"alignment-outlined":59194,"all-caps":59195,"application-outlined":59196,"arrow-down":59197,"arrow-downwards":59198,"arrow-left":59199,"arrow-leftwards":59200,"arrow-right":59201,"arrow-rightwards":59202,"arrow-up":59203,"arrow-upwards":59204,"article-outlined":59205,"at-sign":59206,"auto-graph-outlined":59207,"beer-outlined":59208,"bell-active-outlined":59209,"bell-outlined":59210,"bell-slash-outlined":59211,"bill-management-outlined":59212,"billing-outlined":59213,"body-outlined":59214,"bold":59215,"bolt-outlined":59216,"book-outlined":59217,"bookmark-added-outlined":59218,"bookmark-outlined":59219,"box-check-outlined":59220,"box-outlined":59221,"bullet-points":59222,"cake-outlined":59223,"calendar-dates-outlined":59224,"calendar-star-outlined":59225,"call-outlined":59226,"call-split-outlined":59227,"camera-outlined":59228,"cancel":59229,"car-forward-outlined":59230,"cashback-outlined":59231,"charging-station-outlined":59232,"chat-bubble-outlined":59233,"chat-unread-outlined":59234,"checkmark":59235,"circle-add-outlined":59236,"circle-cancel-outlined":59237,"circle-down-outlined":59238,"circle-info-outlined":59239,"circle-left-outlined":59240,"circle-ok-outlined":59241,"circle-question-outlined":59242,"circle-remove-outlined":59243,"circle-right-outlined":59244,"circle-up-outlined":59245,"circle-warning-outlined":59246,"clock-2-outlined":59247,"clock-outlined":59248,"cog-outlined":59249,"coin-outlined":59250,"coin-super-outlined":59251,"comment-outlined":59252,"contacts-outlined":59253,"contacts-user-outlined":59254,"credit-card-outlined":59255,"cup-outlined":59256,"dentistry-outlined":59257,"direction-arrows-outlined":59258,"directory-outlined":59259,"document-outlined":59260,"dollar-box-outlined":59261,"dollar-card-outlined":59262,"dollar-coin-shine-outlined":59263,"dollar-credit-card-outlined":59264,"dollar-sign":59265,"double-buildings-outlined":59266,"double-left-arrows":59267,"double-right-arrows":59268,"download-box-outlined":59269,"download-outlined":59270,"edit-template-outlined":59271,"email-outlined":59272,"enter-arrow":59273,"envelope-outlined":59274,"expense-approval-outlined":59275,"expense-outlined":59276,"explore-outlined":59277,"extension-outlined":59278,"external-link":59279,"eye-invisible-outlined":59280,"eye-outlined":59281,"face-id":59282,"face-meh-outlined":59283,"face-open-smiley-outlined":59284,"face-sad-outlined":59285,"face-smiley-outlined":59286,"fastfood-outlined":59287,"feed-outlined":59288,"file-certified-outlined":59289,"file-clone-outlined":59290,"file-copy-outlined":59291,"file-dispose-outlined":59292,"file-dollar-certified-outlined":59293,"file-dollar-outlined":59294,"file-download-outlined":59295,"file-export-outlined":59296,"file-lock-outlined":59297,"file-outlined":59298,"file-search-outlined":59299,"file-secured-outlined":59300,"file-statutory-outlined":59301,"file-verified-outlined":59302,"filter-outlined":59303,"folder-outlined":59304,"folder-user-outlined":59305,"form-outlined":59306,"funnel-filter-outline":59307,"goal-outlined":59308,"graph-outlined":59309,"hand-holding-user-outlined":59310,"happy-sun-outlined":59311,"health-bag-outlined":59312,"heart-outlined":59313,"home-active-outlined":59314,"home-outlined":59315,"id-card-outlined":59316,"image-outlined":59317,"import-outlined":59318,"instapay-outlined":59319,"italic":59320,"job-search-outlined":59321,"leave-approval-outlined":59322,"link-1":59323,"link-2":59324,"list-outlined":59325,"live-help-outlined":59326,"local_mall_outlined":59327,"location-on-outlined":59328,"location-outlined":59329,"lock-outlined":59330,"locked-file-outlined":59331,"log-out":59332,"mail-outlined":59333,"map-outlined":59334,"media-content-outlined":59335,"menu-close":59336,"menu-expand":59337,"menu-fold-outlined":59338,"menu-unfold-outlined":59339,"moneybag-outlined":59340,"moon-outlined":59341,"more-horizontal":59342,"more-vertical":59343,"multiple-folders-outlined":59344,"multiple-users-outlined":59345,"near-me-outlined":59346,"node-outlined":59347,"number-points":59348,"number":59349,"overview-outlined":59350,"payment-summary-outlined":59351,"payslip-outlined":59352,"pencil-outlined":59353,"percentage":59354,"phone-outlined":59355,"piggy-bank-outlined":59356,"plane-outlined":59357,"play-circle-outlined":59358,"print-outlined":59359,"propane-tank-outlined":59360,"qr-code-outlined":59361,"qualification-outlined":59362,"re-assign":59363,"redeem":59364,"refresh":59365,"remove":59366,"reply-outlined":59367,"restart":59368,"resume-outlined":59369,"return-arrow":59370,"rostering-outlined":59371,"safety-outlined":59372,"save-outlined":59373,"schedule-outlined":59374,"search-outlined":59375,"search-secured-outlined":59376,"send-outlined":59377,"share-1":59378,"share-2":59379,"share-outlined-2":59380,"share-outlined":59381,"shopping_basket_outlined":59382,"show-chart-outlined":59383,"single-down-arrow":59384,"single-left-arrow":59385,"single-right-arrow":59386,"single-up-arrow":59387,"smart-match-outlined":59388,"sparkle-outlined":59389,"speaker-active-outlined":59390,"speaker-outlined":59391,"star-circle-outlined":59392,"star-outlined":59393,"stash-outlined":59394,"stopwatch-outlined":59395,"strikethrough":59396,"styler-outlined":59397,"suitcase-clock-outlined":59398,"suitcase-outlined":59399,"survey-outlined":59400,"switch-outlined":59401,"sync":59402,"tag-outlined":59403,"target-outlined":59404,"tennis-outlined":59405,"ticket-outlined":59406,"timesheet-outlined":59407,"timesheets-outlined":59408,"today-outlined":59409,"transfer":59410,"trash-bin-outlined":59411,"umbrela-outlined":59412,"unavailability-outlined":59413,"unavailable":59414,"underline":59415,"union-outlined":59416,"unlock-outlined":59417,"upload-outlined":59418,"user-circle-outlined":59419,"user-gear-outlined":59420,"user-outlined":59421,"user-rectangle-outlined":59422,"video-1-outlined":59423,"video-2-outlined":59424,"volunteer-outlined":59425,"wallet-outlined":59426}
@@ -380,6 +380,7 @@ const IconList = [
380
380
  'send-outlined',
381
381
  'share-1',
382
382
  'share-2',
383
+ 'share-outlined-2',
383
384
  'share-outlined',
384
385
  'shopping_basket_outlined',
385
386
  'show-chart-outlined',
@@ -451,17 +451,12 @@ describe('TextInput', () => {
451
451
 
452
452
  describe('ref', () => {
453
453
  it('ref methods work correctly', () => {
454
- const mockChildMethod = jest.fn();
455
- jest.spyOn(React, 'useRef').mockReturnValue({
456
- current: {
457
- clear: mockChildMethod,
458
- },
459
- });
460
454
  const ref = React.createRef<
461
455
  TextInputHandles & {
462
456
  getNativeTextInputRef(): RNTextInput;
463
457
  }
464
458
  >();
459
+
465
460
  const wrapper = renderWithTheme(
466
461
  <TextInput label="Amount (AUD)" value="2000" ref={ref} />
467
462
  );
package/tsconfig.json CHANGED
@@ -1,5 +1,4 @@
1
1
  {
2
- "extends": "expo/tsconfig.base",
3
2
  "compilerOptions": {
4
3
  "declaration": true,
5
4
  "jsx": "react-native",
@@ -13,8 +12,17 @@
13
12
  "target": "esnext",
14
13
  "types": ["jest"],
15
14
  "paths": {
16
- "react": ["./node_modules/@types/react"]
17
- }
15
+ "react": ["./node_modules/@types/react"],
16
+ "react-native": ["./node_modules/react-native/types"],
17
+ },
18
+ "allowJs": true,
19
+ "esModuleInterop": true,
20
+ "lib": ["DOM", "ESNext"],
21
+ "moduleResolution": "node",
22
+ "noEmit": true,
23
+ "resolveJsonModule": true,
24
+ "skipLibCheck": true,
18
25
  },
19
- "include": ["src"]
26
+ "include": ["src"],
27
+ "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
20
28
  }
@@ -1,4 +1,4 @@
1
- import { ReactChild } from 'react';
1
+ import { ReactChild, ReactNode } from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  import type { IconName } from '../Icon';
4
4
  import type { Intent, ThemeVariant } from './StyledButton';
@@ -18,7 +18,7 @@ export interface ButtonProps {
18
18
  /**
19
19
  * Places an icon within the button, before the button's text
20
20
  */
21
- icon?: IconName;
21
+ icon?: IconName | ReactNode;
22
22
  /**
23
23
  * Visual intent color to apply to button. It is required for `filled`, `outlined` and `text` variants.
24
24
  */
@@ -34,7 +34,7 @@ export interface ButtonProps {
34
34
  /**
35
35
  * Places an icon within the button, after the button's text
36
36
  */
37
- rightIcon?: IconName;
37
+ rightIcon?: IconName | ReactNode;
38
38
  /**
39
39
  * Additional style.
40
40
  */
@@ -26,9 +26,9 @@ declare const StyledCustomSizeCarouselImage: import("@emotion/native").StyledCom
26
26
  theme?: import("@emotion/react").Theme | undefined;
27
27
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
28
28
  } & {
29
- height?: number | `${number}%` | undefined;
30
- width?: number | `${number}%` | undefined;
31
- resizeMode?: ImageResizeMode | undefined;
29
+ themeHeight?: number | `${number}%` | undefined;
30
+ themeWidth?: number | `${number}%` | undefined;
31
+ themeResizeMode?: ImageResizeMode | undefined;
32
32
  }, {}, {}>;
33
33
  declare const StyledCarouselContentWrapper: import("@emotion/native").StyledComponent<import("../Box").BoxProps & {
34
34
  theme?: import("@emotion/react").Theme | undefined;