@hero-design/rn 8.105.4 → 8.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/CHANGELOG.md +18 -0
  3. package/es/index.js +2797 -2453
  4. package/lib/index.js +2800 -2456
  5. package/package.json +2 -2
  6. package/src/components/Button/Button.tsx +70 -44
  7. package/src/components/Button/LoadingIndicator/StyledLoadingIndicator.tsx +12 -33
  8. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/StyledLoadingIndicator.spec.tsx.snap +4 -4
  9. package/src/components/Button/LoadingIndicator/__tests__/__snapshots__/index.spec.tsx.snap +12 -12
  10. package/src/components/Button/LoadingIndicator/index.tsx +4 -1
  11. package/src/components/Button/StyledButton.tsx +461 -313
  12. package/src/components/Button/__tests__/__snapshots__/Button.spec.tsx.snap +102 -86
  13. package/src/components/Button/__tests__/__snapshots__/StyledButton.spec.tsx.snap +19 -18
  14. package/src/components/Chart/Line/__tests__/__snapshots__/index.spec.tsx.snap +2 -2
  15. package/src/components/Checkbox/{index.tsx → DefaultCheckBox.tsx} +6 -31
  16. package/src/components/Checkbox/InlineCheckBox.tsx +97 -0
  17. package/src/components/Checkbox/{StyledCheckbox.tsx → StyledDefaultCheckBox.tsx} +1 -0
  18. package/src/components/Checkbox/StyledInlineCheckBox.tsx +49 -0
  19. package/src/components/Checkbox/__tests__/{index.spec.tsx → DefaultCheckBox.spec.tsx} +21 -20
  20. package/src/components/Checkbox/__tests__/InlineCheckBox.spec.tsx +93 -0
  21. package/src/components/Checkbox/__tests__/{StyledCheckbox.spec.tsx → StyledDefaultCheckbox.spec.tsx} +2 -2
  22. package/src/components/Checkbox/__tests__/__snapshots__/{index.spec.tsx.snap → DefaultCheckBox.spec.tsx.snap} +6 -0
  23. package/src/components/Checkbox/__tests__/__snapshots__/InlineCheckBox.spec.tsx.snap +988 -0
  24. package/src/components/Checkbox/__tests__/__snapshots__/{StyledCheckbox.spec.tsx.snap → StyledDefaultCheckbox.spec.tsx.snap} +4 -0
  25. package/src/components/Checkbox/__tests__/utils.spec.ts +20 -0
  26. package/src/components/Checkbox/index.ts +9 -0
  27. package/src/components/Checkbox/utils.ts +25 -0
  28. package/src/components/DatePicker/__tests__/__snapshots__/DatePickerIOS.spec.tsx.snap +2 -2
  29. package/src/components/Drawer/__tests__/__snapshots__/index.spec.tsx.snap +11 -8
  30. package/src/components/Drawer/__tests__/index.spec.tsx +15 -1
  31. package/src/components/Drawer/index.tsx +5 -2
  32. package/src/components/Select/MultiSelect/__tests__/__snapshots__/index.spec.tsx.snap +5 -5
  33. package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +1 -1
  34. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +59 -19
  35. package/src/theme/components/button.ts +52 -19
  36. package/src/theme/components/checkbox.ts +7 -0
  37. package/src/theme/components/drawer.ts +1 -1
  38. package/src/utils/__tests__/helpers.spec.ts +37 -1
  39. package/src/utils/helpers.ts +14 -0
  40. package/stats/8.106.0/rn-stats.html +4844 -0
  41. package/types/components/Button/Button.d.ts +5 -4
  42. package/types/components/Button/LoadingIndicator/StyledLoadingIndicator.d.ts +3 -4
  43. package/types/components/Button/LoadingIndicator/index.d.ts +1 -1
  44. package/types/components/Button/StyledButton.d.ts +8 -4
  45. package/types/components/Checkbox/DefaultCheckBox.d.ts +40 -0
  46. package/types/components/Checkbox/InlineCheckBox.d.ts +38 -0
  47. package/types/components/Checkbox/StyledInlineCheckBox.d.ts +45 -0
  48. package/types/components/Checkbox/index.d.ts +5 -45
  49. package/types/components/Checkbox/utils.d.ts +6 -0
  50. package/types/theme/components/button.d.ts +49 -15
  51. package/types/theme/components/checkbox.d.ts +6 -0
  52. package/types/theme/components/drawer.d.ts +1 -1
  53. package/types/utils/helpers.d.ts +2 -0
  54. /package/types/components/Checkbox/{StyledCheckbox.d.ts → StyledDefaultCheckBox.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "8.105.4",
3
+ "version": "8.106.0",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -25,7 +25,7 @@
25
25
  "@hero-design/colors": "8.46.1",
26
26
  "d3": "^7.8.5",
27
27
  "date-fns": "^2.30.0",
28
- "hero-editor": "^1.15.5",
28
+ "hero-editor": "^1.16.0",
29
29
  "nanoid": "^5.0.9"
30
30
  },
31
31
  "peerDependencies": {
@@ -6,7 +6,7 @@ import { useTheme } from '../../theme';
6
6
  import { useDeprecation } from '../../utils/hooks';
7
7
  import type { IconName } from '../Icon';
8
8
  import LoadingIndicator from './LoadingIndicator';
9
- import type { Intent, ThemeVariant } from './StyledButton';
9
+ import type { Intent, ThemeVariant, CamelCase } from './StyledButton';
10
10
  import {
11
11
  StyledButtonContainer,
12
12
  StyledButtonIcon,
@@ -35,8 +35,9 @@ export interface ButtonProps {
35
35
  icon?: IconName | ReactNode;
36
36
  /**
37
37
  * Visual intent color to apply to button. It is required for `filled`, `outlined` and `text` variants.
38
+ * intent['white'] - @deprecated
38
39
  */
39
- intent?: 'primary' | 'secondary' | 'danger' | 'white';
40
+ intent?: 'primary' | 'secondary' | 'danger' | 'white' | 'inverted';
40
41
  /**
41
42
  * Loading state of button.
42
43
  */
@@ -60,7 +61,7 @@ export interface ButtonProps {
60
61
  /**
61
62
  * Button label.
62
63
  */
63
- text: ReactChild;
64
+ text?: ReactChild;
64
65
  /**
65
66
  * Button type.
66
67
  *
@@ -71,6 +72,9 @@ export interface ButtonProps {
71
72
  | 'outlined'
72
73
  | 'text'
73
74
  | 'inline-text'
75
+ | 'filled-medium'
76
+ | 'outlined-medium'
77
+ | 'text-medium'
74
78
  | 'filled-compact'
75
79
  | 'outlined-compact'
76
80
  | 'text-compact'
@@ -86,6 +90,7 @@ const FILLED_VARIANTS = {
86
90
  secondary: 'filled-secondary',
87
91
  danger: 'filled-danger',
88
92
  white: 'filled-white',
93
+ inverted: 'filled-inverted',
89
94
  } as const;
90
95
 
91
96
  const OUTLINED_VARIANTS = {
@@ -93,6 +98,7 @@ const OUTLINED_VARIANTS = {
93
98
  secondary: 'outlined-secondary',
94
99
  danger: 'outlined-danger',
95
100
  white: 'outlined-white',
101
+ inverted: 'outlined-inverted',
96
102
  } as const;
97
103
 
98
104
  const TEXT_VARIANTS = {
@@ -100,6 +106,7 @@ const TEXT_VARIANTS = {
100
106
  secondary: 'text-secondary',
101
107
  danger: 'text-danger',
102
108
  white: 'text-white',
109
+ inverted: 'text-inverted',
103
110
  } as const;
104
111
 
105
112
  export const getThemeVariant = (
@@ -107,6 +114,9 @@ export const getThemeVariant = (
107
114
  | 'filled'
108
115
  | 'outlined'
109
116
  | 'text'
117
+ | 'filled-medium'
118
+ | 'outlined-medium'
119
+ | 'text-medium'
110
120
  | 'filled-compact'
111
121
  | 'outlined-compact'
112
122
  | 'text-compact',
@@ -114,43 +124,25 @@ export const getThemeVariant = (
114
124
  ): ThemeVariant => {
115
125
  switch (variant) {
116
126
  case 'filled':
127
+ case 'filled-medium':
117
128
  case 'filled-compact':
118
129
  return FILLED_VARIANTS[intent];
119
130
  case 'outlined':
131
+ case 'outlined-medium':
120
132
  case 'outlined-compact':
121
133
  return OUTLINED_VARIANTS[intent];
122
134
  case 'text':
135
+ case 'text-medium':
123
136
  case 'text-compact':
124
137
  return TEXT_VARIANTS[intent];
125
138
  }
126
139
  };
127
140
  const getUnderlayColor = (theme: Theme, themeVariant: ThemeVariant) => {
128
- switch (themeVariant) {
129
- case 'filled-primary':
130
- return theme.__hd__.button.colors.pressedBackground.filledPrimary;
131
- case 'filled-secondary':
132
- return theme.__hd__.button.colors.pressedBackground.filledSecondary;
133
- case 'filled-danger':
134
- return theme.__hd__.button.colors.pressedBackground.filledDanger;
135
- case 'filled-white':
136
- return theme.__hd__.button.colors.pressedBackground.filledWhite;
137
- case 'outlined-primary':
138
- return theme.__hd__.button.colors.pressedBackground.outlinedPrimary;
139
- case 'outlined-secondary':
140
- return theme.__hd__.button.colors.pressedBackground.outlinedSecondary;
141
- case 'outlined-danger':
142
- return theme.__hd__.button.colors.pressedBackground.outlineDanger;
143
- case 'outlined-white':
144
- return theme.__hd__.button.colors.pressedBackground.outlineWhite;
145
- case 'text-primary':
146
- return theme.__hd__.button.colors.pressedBackground.textPrimary;
147
- case 'text-secondary':
148
- return theme.__hd__.button.colors.pressedBackground.textSecondary;
149
- case 'text-danger':
150
- return theme.__hd__.button.colors.pressedBackground.textDanger;
151
- case 'text-white':
152
- return theme.__hd__.button.colors.pressedBackground.textWhite;
153
- }
141
+ const colorKey = themeVariant.replace(/-([a-z])/g, (_, letter) => {
142
+ return letter.toUpperCase();
143
+ }) as CamelCase<ThemeVariant>;
144
+
145
+ return theme.__hd__.button.colors.pressedBackground[colorKey];
154
146
  };
155
147
 
156
148
  const deprecatedVariants: ThemeVariant[] = [
@@ -166,12 +158,14 @@ function isTextVariant(
166
158
  | 'text-primary'
167
159
  | 'text-secondary'
168
160
  | 'text-danger'
169
- | 'text-white' {
161
+ | 'text-white'
162
+ | 'text-inverted' {
170
163
  return [
171
164
  'text-primary',
172
165
  'text-secondary',
173
166
  'text-danger',
174
167
  'text-white',
168
+ 'text-inverted',
175
169
  ].includes(themeVariant);
176
170
  }
177
171
 
@@ -191,6 +185,7 @@ const Button = ({
191
185
  }: ButtonProps): JSX.Element => {
192
186
  const isInlineText =
193
187
  variant === 'inline-text' || variant === 'inline-text-compact';
188
+ const isIconButtonOnly = !text;
194
189
 
195
190
  const themeVariant = getThemeVariant(isInlineText ? 'text' : variant, intent);
196
191
  const theme = useTheme();
@@ -211,10 +206,17 @@ const Button = ({
211
206
  'inline-text-compact',
212
207
  ].includes(variant);
213
208
 
209
+ const isMediumVariant = [
210
+ 'filled-medium',
211
+ 'outlined-medium',
212
+ 'text-medium',
213
+ ].includes(variant);
214
+
214
215
  const isRenderTextVariant = isTextVariant(themeVariant);
215
216
 
216
217
  const renderTextVariantTitle = () => {
217
- if (!isRenderTextVariant) return null;
218
+ if (!isRenderTextVariant || isIconButtonOnly) return null;
219
+
218
220
  return (
219
221
  <StyledButtonTitleOfVariantText
220
222
  variant={isCompactVariant ? 'small-bold' : 'regular-bold'}
@@ -230,18 +232,38 @@ const Button = ({
230
232
  );
231
233
  };
232
234
 
233
- const renderTitle = () =>
234
- isCompactVariant ? (
235
- <StyledSmallButtonText
236
- variant="small-bold"
237
- ellipsizeMode="tail"
238
- numberOfLines={1}
239
- disabled={disabled}
240
- themeButtonVariant={themeVariant}
241
- >
242
- {text}
243
- </StyledSmallButtonText>
244
- ) : (
235
+ const renderTitle = () => {
236
+ if (isIconButtonOnly) return null;
237
+
238
+ if (isCompactVariant) {
239
+ return (
240
+ <StyledSmallButtonText
241
+ variant="small-bold"
242
+ ellipsizeMode="tail"
243
+ numberOfLines={1}
244
+ disabled={disabled}
245
+ themeButtonVariant={themeVariant}
246
+ >
247
+ {text}
248
+ </StyledSmallButtonText>
249
+ );
250
+ }
251
+
252
+ if (isMediumVariant) {
253
+ return (
254
+ <StyledSmallButtonText
255
+ variant="regular-bold"
256
+ ellipsizeMode="tail"
257
+ numberOfLines={1}
258
+ disabled={disabled}
259
+ themeButtonVariant={themeVariant}
260
+ >
261
+ {text}
262
+ </StyledSmallButtonText>
263
+ );
264
+ }
265
+
266
+ return (
245
267
  <StyledButtonText
246
268
  level="h5"
247
269
  ellipsizeMode="tail"
@@ -252,6 +274,7 @@ const Button = ({
252
274
  {text}
253
275
  </StyledButtonText>
254
276
  );
277
+ };
255
278
 
256
279
  return (
257
280
  <StyledButtonContainer
@@ -268,6 +291,8 @@ const Button = ({
268
291
  onPressIn={() => isInlineText && setIsPressed(true)}
269
292
  onPressOut={() => isInlineText && setIsPressed(false)}
270
293
  themeIsCompact={isCompactVariant}
294
+ themeIsMedium={isMediumVariant}
295
+ themeIsIconOnly={isIconButtonOnly}
271
296
  >
272
297
  {loading === true ? (
273
298
  <LoadingIndicator
@@ -280,6 +305,7 @@ const Button = ({
280
305
  <StyledButtonIconWrapper
281
306
  themePosition="left"
282
307
  themeIsCompact={isCompactVariant}
308
+ themeIsIconOnly={isIconButtonOnly}
283
309
  >
284
310
  {isIconName(icon) ? (
285
311
  <StyledButtonIcon
@@ -296,7 +322,7 @@ const Button = ({
296
322
  </StyledButtonIconWrapper>
297
323
  )}
298
324
  {isRenderTextVariant ? renderTextVariantTitle() : renderTitle()}
299
- {rightIcon !== undefined && (
325
+ {!isIconButtonOnly && rightIcon !== undefined && (
300
326
  <StyledButtonIconWrapper
301
327
  themePosition="right"
302
328
  themeIsCompact={isCompactVariant}
@@ -1,10 +1,7 @@
1
- import type { ReactNativeStyle } from '@emotion/native';
2
1
  import styled from '@emotion/native';
3
- import type { Theme } from '@emotion/react';
4
2
  import type { ViewProps } from 'react-native';
5
3
  import { View } from 'react-native';
6
-
7
- type Intent = 'primary' | 'secondary' | 'danger';
4
+ import { transformKebabCaseToCamelCase } from '../../../utils/helpers';
8
5
 
9
6
  type ThemeVariant =
10
7
  | 'basic-transparent'
@@ -12,21 +9,17 @@ type ThemeVariant =
12
9
  | 'filled-secondary'
13
10
  | 'filled-danger'
14
11
  | 'filled-white'
12
+ | 'filled-inverted'
15
13
  | 'outlined-primary'
16
14
  | 'outlined-secondary'
17
15
  | 'outlined-danger'
18
16
  | 'outlined-white'
17
+ | 'outlined-inverted'
19
18
  | 'text-primary'
20
19
  | 'text-secondary'
21
20
  | 'text-danger'
22
- | 'text-white';
23
-
24
- const genLoadingIndicatorStyles = (
25
- theme: Theme,
26
- intent: Intent
27
- ): ReactNativeStyle => ({
28
- backgroundColor: theme.__hd__.button.colors[intent],
29
- });
21
+ | 'text-white'
22
+ | 'text-inverted';
30
23
 
31
24
  const StyledLoadingIndicatorWrapper = styled(View)<ViewProps>({
32
25
  flexDirection: 'row',
@@ -39,27 +32,13 @@ const StyledLoadingDot = styled(View)<{
39
32
  themeVariant: ThemeVariant;
40
33
  }>(({ size = 12, themeVariant, theme }) => {
41
34
  const themeStyling = () => {
42
- switch (themeVariant) {
43
- case 'basic-transparent':
44
- case 'filled-primary':
45
- case 'filled-secondary':
46
- case 'filled-danger':
47
- case 'outlined-white':
48
- case 'text-white':
49
- return {
50
- backgroundColor: theme.__hd__.button.colors.invertedText,
51
- };
52
- case 'filled-white':
53
- case 'outlined-primary':
54
- return genLoadingIndicatorStyles(theme, 'primary');
55
- case 'text-primary':
56
- case 'outlined-secondary':
57
- return genLoadingIndicatorStyles(theme, 'secondary');
58
- case 'text-secondary':
59
- case 'outlined-danger':
60
- case 'text-danger':
61
- return genLoadingIndicatorStyles(theme, 'danger');
62
- }
35
+ if (themeVariant === 'basic-transparent')
36
+ return { backgroundColor: theme.__hd__.button.colors.invertedText };
37
+
38
+ const colorKey = transformKebabCaseToCamelCase(themeVariant);
39
+ return {
40
+ backgroundColor: theme.__hd__.button.colors.text[colorKey],
41
+ };
63
42
  };
64
43
 
65
44
  return {
@@ -150,7 +150,7 @@ exports[`StyledLoadingIndicator has filled-secondary style 1`] = `
150
150
  style={
151
151
  [
152
152
  {
153
- "backgroundColor": "#ffffff",
153
+ "backgroundColor": "#001f23",
154
154
  "borderRadius": 8,
155
155
  "height": 12,
156
156
  "marginHorizontal": 8,
@@ -334,7 +334,7 @@ exports[`StyledLoadingIndicator has outlined-secondary style 1`] = `
334
334
  style={
335
335
  [
336
336
  {
337
- "backgroundColor": "#4d6265",
337
+ "backgroundColor": "#001f23",
338
338
  "borderRadius": 8,
339
339
  "height": 12,
340
340
  "marginHorizontal": 8,
@@ -472,7 +472,7 @@ exports[`StyledLoadingIndicator has text-primary style 1`] = `
472
472
  style={
473
473
  [
474
474
  {
475
- "backgroundColor": "#4d6265",
475
+ "backgroundColor": "#401960",
476
476
  "borderRadius": 8,
477
477
  "height": 12,
478
478
  "marginHorizontal": 8,
@@ -518,7 +518,7 @@ exports[`StyledLoadingIndicator has text-secondary style 1`] = `
518
518
  style={
519
519
  [
520
520
  {
521
- "backgroundColor": "#cb300a",
521
+ "backgroundColor": "#001f23",
522
522
  "borderRadius": 8,
523
523
  "height": 12,
524
524
  "marginHorizontal": 8,
@@ -444,7 +444,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is filled-secondar
444
444
  style={
445
445
  [
446
446
  {
447
- "backgroundColor": "#ffffff",
447
+ "backgroundColor": "#001f23",
448
448
  "borderRadius": 8,
449
449
  "height": 12,
450
450
  "marginHorizontal": 8,
@@ -474,7 +474,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is filled-secondar
474
474
  style={
475
475
  [
476
476
  {
477
- "backgroundColor": "#ffffff",
477
+ "backgroundColor": "#001f23",
478
478
  "borderRadius": 8,
479
479
  "height": 12,
480
480
  "marginHorizontal": 8,
@@ -504,7 +504,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is filled-secondar
504
504
  style={
505
505
  [
506
506
  {
507
- "backgroundColor": "#ffffff",
507
+ "backgroundColor": "#001f23",
508
508
  "borderRadius": 8,
509
509
  "height": 12,
510
510
  "marginHorizontal": 8,
@@ -984,7 +984,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is outlined-second
984
984
  style={
985
985
  [
986
986
  {
987
- "backgroundColor": "#4d6265",
987
+ "backgroundColor": "#001f23",
988
988
  "borderRadius": 8,
989
989
  "height": 12,
990
990
  "marginHorizontal": 8,
@@ -1014,7 +1014,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is outlined-second
1014
1014
  style={
1015
1015
  [
1016
1016
  {
1017
- "backgroundColor": "#4d6265",
1017
+ "backgroundColor": "#001f23",
1018
1018
  "borderRadius": 8,
1019
1019
  "height": 12,
1020
1020
  "marginHorizontal": 8,
@@ -1044,7 +1044,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is outlined-second
1044
1044
  style={
1045
1045
  [
1046
1046
  {
1047
- "backgroundColor": "#4d6265",
1047
+ "backgroundColor": "#001f23",
1048
1048
  "borderRadius": 8,
1049
1049
  "height": 12,
1050
1050
  "marginHorizontal": 8,
@@ -1389,7 +1389,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-primary 1`
1389
1389
  style={
1390
1390
  [
1391
1391
  {
1392
- "backgroundColor": "#4d6265",
1392
+ "backgroundColor": "#401960",
1393
1393
  "borderRadius": 8,
1394
1394
  "height": 12,
1395
1395
  "marginHorizontal": 8,
@@ -1419,7 +1419,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-primary 1`
1419
1419
  style={
1420
1420
  [
1421
1421
  {
1422
- "backgroundColor": "#4d6265",
1422
+ "backgroundColor": "#401960",
1423
1423
  "borderRadius": 8,
1424
1424
  "height": 12,
1425
1425
  "marginHorizontal": 8,
@@ -1449,7 +1449,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-primary 1`
1449
1449
  style={
1450
1450
  [
1451
1451
  {
1452
- "backgroundColor": "#4d6265",
1452
+ "backgroundColor": "#401960",
1453
1453
  "borderRadius": 8,
1454
1454
  "height": 12,
1455
1455
  "marginHorizontal": 8,
@@ -1524,7 +1524,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-secondary
1524
1524
  style={
1525
1525
  [
1526
1526
  {
1527
- "backgroundColor": "#cb300a",
1527
+ "backgroundColor": "#001f23",
1528
1528
  "borderRadius": 8,
1529
1529
  "height": 12,
1530
1530
  "marginHorizontal": 8,
@@ -1554,7 +1554,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-secondary
1554
1554
  style={
1555
1555
  [
1556
1556
  {
1557
- "backgroundColor": "#cb300a",
1557
+ "backgroundColor": "#001f23",
1558
1558
  "borderRadius": 8,
1559
1559
  "height": 12,
1560
1560
  "marginHorizontal": 8,
@@ -1584,7 +1584,7 @@ exports[`LoadingIndicator renders correctly when themeVariant is text-secondary
1584
1584
  style={
1585
1585
  [
1586
1586
  {
1587
- "backgroundColor": "#cb300a",
1587
+ "backgroundColor": "#001f23",
1588
1588
  "borderRadius": 8,
1589
1589
  "height": 12,
1590
1590
  "marginHorizontal": 8,
@@ -12,14 +12,17 @@ type ThemeVariant =
12
12
  | 'filled-secondary'
13
13
  | 'filled-danger'
14
14
  | 'filled-white'
15
+ | 'filled-inverted'
15
16
  | 'outlined-primary'
16
17
  | 'outlined-secondary'
17
18
  | 'outlined-danger'
18
19
  | 'outlined-white'
20
+ | 'outlined-inverted'
19
21
  | 'text-primary'
20
22
  | 'text-secondary'
21
23
  | 'text-danger'
22
- | 'text-white';
24
+ | 'text-white'
25
+ | 'text-inverted';
23
26
 
24
27
  const AnimatedLoadingIndicatorWrapper = Animated.createAnimatedComponent(
25
28
  StyledLoadingIndicatorWrapper