@hero-design/rn 7.13.0 → 7.14.1

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 (155) hide show
  1. package/.eslintrc.json +3 -1
  2. package/.turbo/turbo-build.log +9 -8
  3. package/assets/fonts/hero-icons.ttf +0 -0
  4. package/babel.config.js +16 -0
  5. package/es/index.js +26977 -7611
  6. package/lib/assets/fonts/hero-icons.ttf +0 -0
  7. package/lib/index.js +26983 -7613
  8. package/package.json +9 -4
  9. package/rollup.config.js +1 -0
  10. package/src/components/Accordion/AccordionItem.tsx +50 -0
  11. package/src/components/Accordion/StyledAccordion.tsx +29 -0
  12. package/src/components/Accordion/__tests__/AccordionItem.spec.tsx +56 -0
  13. package/src/components/Accordion/__tests__/StyledAccordion.spec.tsx +17 -0
  14. package/src/components/Accordion/__tests__/__snapshots__/AccordionItem.spec.tsx.snap +529 -0
  15. package/src/components/Accordion/__tests__/__snapshots__/StyledAccordion.spec.tsx.snap +33 -0
  16. package/src/components/Accordion/__tests__/__snapshots__/index.spec.tsx.snap +822 -0
  17. package/src/components/Accordion/__tests__/index.spec.tsx +54 -0
  18. package/src/components/Accordion/index.tsx +82 -0
  19. package/src/components/Accordion/utils.tsx +11 -0
  20. package/src/components/Button/IconButton.tsx +1 -1
  21. package/src/components/Calendar/CalendarRowItem.tsx +54 -0
  22. package/src/components/Calendar/StyledCalendar.tsx +76 -0
  23. package/src/components/Calendar/__tests__/CalendarRowItem.spec.tsx +76 -0
  24. package/src/components/Calendar/__tests__/__snapshots__/CalendarRowItem.spec.tsx.snap +411 -0
  25. package/src/components/Calendar/__tests__/helper.spec.ts +50 -0
  26. package/src/components/Calendar/__tests__/index.spec.tsx +99 -0
  27. package/src/components/Calendar/helpers.ts +29 -0
  28. package/src/components/Calendar/index.tsx +217 -0
  29. package/src/components/Collapse/index.tsx +13 -15
  30. package/src/components/ContentNavigator/index.tsx +6 -0
  31. package/src/components/Empty/StyledEmpty.tsx +47 -0
  32. package/src/components/Empty/__tests__/__snapshots__/index.spec.tsx.snap +66 -0
  33. package/src/components/Empty/__tests__/index.spec.tsx +17 -0
  34. package/src/components/Empty/index.tsx +53 -0
  35. package/src/components/FAB/ActionGroup/ActionItem.tsx +6 -2
  36. package/src/components/FAB/ActionGroup/StyledActionGroup.tsx +1 -0
  37. package/src/components/FAB/ActionGroup/StyledActionItem.tsx +7 -1
  38. package/src/components/FAB/ActionGroup/__tests__/__snapshots__/index.spec.tsx.snap +84 -22
  39. package/src/components/FAB/ActionGroup/index.tsx +8 -1
  40. package/src/components/Icon/HeroIcon/selection.json +1 -1
  41. package/src/components/Icon/IconList.ts +14 -0
  42. package/src/components/List/BasicListItem.tsx +44 -34
  43. package/src/components/List/ListItem.tsx +67 -58
  44. package/src/components/List/StyledBasicListItem.tsx +2 -3
  45. package/src/components/List/StyledListItem.tsx +2 -2
  46. package/src/components/List/__tests__/StyledBasicListItem.spec.tsx +5 -2
  47. package/src/components/List/__tests__/StyledListItem.spec.tsx +4 -1
  48. package/src/components/List/__tests__/__snapshots__/BasicListItem.spec.tsx.snap +15 -10
  49. package/src/components/List/__tests__/__snapshots__/ListItem.spec.tsx.snap +52 -32
  50. package/src/components/List/__tests__/__snapshots__/StyledBasicListItem.spec.tsx.snap +128 -48
  51. package/src/components/List/__tests__/__snapshots__/StyledListItem.spec.tsx.snap +132 -52
  52. package/src/components/RichTextEditor/EditorEvent.ts +7 -0
  53. package/src/components/RichTextEditor/EditorToolbar.tsx +220 -0
  54. package/src/components/RichTextEditor/MentionList.tsx +69 -0
  55. package/src/components/RichTextEditor/RichTextEditor.tsx +396 -0
  56. package/src/components/RichTextEditor/StyledRichTextEditor.ts +20 -0
  57. package/src/components/RichTextEditor/StyledToolbar.ts +32 -0
  58. package/src/components/RichTextEditor/__tests__/EditorToolbar.spec.tsx +130 -0
  59. package/src/components/RichTextEditor/__tests__/MentionList.spec.tsx +109 -0
  60. package/src/components/RichTextEditor/__tests__/RichTextEditor.spec.tsx +245 -0
  61. package/src/components/RichTextEditor/__tests__/__snapshots__/EditorToolbar.spec.tsx.snap +324 -0
  62. package/src/components/RichTextEditor/__tests__/__snapshots__/MentionList.spec.tsx.snap +45 -0
  63. package/src/components/RichTextEditor/__tests__/__snapshots__/RichTextEditor.spec.tsx.snap +526 -0
  64. package/src/components/RichTextEditor/constants.ts +20 -0
  65. package/src/components/RichTextEditor/hero-editor.d.ts +8 -0
  66. package/src/components/RichTextEditor/index.tsx +8 -0
  67. package/src/components/RichTextEditor/utils/events.ts +31 -0
  68. package/src/components/RichTextEditor/utils/rnWebView.ts +19 -0
  69. package/src/components/SectionHeading/__tests__/__snapshots__/index.spec.tsx.snap +77 -0
  70. package/src/components/SectionHeading/__tests__/index.spec.tsx +14 -0
  71. package/src/components/SectionHeading/index.tsx +16 -9
  72. package/src/components/Tag/StyledTag.tsx +12 -2
  73. package/src/components/Tag/__tests__/Tag.spec.tsx +35 -8
  74. package/src/components/Tag/__tests__/__snapshots__/Tag.spec.tsx.snap +118 -4
  75. package/src/components/Tag/index.tsx +9 -2
  76. package/src/components/TextInput/__tests__/__snapshots__/StyledTextInput.spec.tsx.snap +1 -0
  77. package/src/components/Typography/Text/StyledText.tsx +2 -1
  78. package/src/components/Typography/Text/__tests__/StyledText.spec.tsx +1 -0
  79. package/src/components/Typography/Text/__tests__/__snapshots__/StyledText.spec.tsx.snap +22 -0
  80. package/src/components/Typography/Text/index.tsx +2 -1
  81. package/src/index.ts +8 -0
  82. package/src/theme/__tests__/__snapshots__/index.spec.ts.snap +101 -4
  83. package/src/theme/components/accordion.ts +19 -0
  84. package/src/theme/components/calendar.ts +34 -0
  85. package/src/theme/components/card.ts +1 -1
  86. package/src/theme/components/empty.ts +38 -0
  87. package/src/theme/components/fab.ts +4 -3
  88. package/src/theme/components/list.ts +1 -0
  89. package/src/theme/components/pinInput.ts +1 -1
  90. package/src/theme/components/richTextEditor.ts +34 -0
  91. package/src/theme/components/tag.ts +8 -2
  92. package/src/theme/components/typography.ts +1 -0
  93. package/src/theme/global/borders.ts +6 -6
  94. package/src/theme/global/colors.ts +4 -1
  95. package/src/theme/index.ts +12 -0
  96. package/testUtils/setup.tsx +17 -0
  97. package/types/components/Accordion/AccordionItem.d.ts +14 -0
  98. package/types/components/Accordion/StyledAccordion.d.ts +32 -0
  99. package/types/components/Accordion/__tests__/AccordionItem.spec.d.ts +1 -0
  100. package/types/components/Accordion/__tests__/StyledAccordion.spec.d.ts +1 -0
  101. package/types/components/Accordion/__tests__/index.spec.d.ts +1 -0
  102. package/types/components/Accordion/index.d.ts +38 -0
  103. package/types/components/Accordion/utils.d.ts +1 -0
  104. package/types/components/Button/IconButton.d.ts +1 -1
  105. package/types/components/Calendar/CalendarRowItem.d.ts +10 -0
  106. package/types/components/Calendar/StyledCalendar.d.ts +54 -0
  107. package/types/components/Calendar/__tests__/CalendarRowItem.spec.d.ts +1 -0
  108. package/types/components/Calendar/__tests__/helper.spec.d.ts +1 -0
  109. package/types/components/Calendar/__tests__/index.spec.d.ts +1 -0
  110. package/types/components/Calendar/helpers.d.ts +3 -0
  111. package/types/components/Calendar/index.d.ts +40 -0
  112. package/types/components/Collapse/index.d.ts +1 -1
  113. package/types/components/ContentNavigator/index.d.ts +5 -1
  114. package/types/components/Empty/StyledEmpty.d.ts +31 -0
  115. package/types/components/Empty/__tests__/index.spec.d.ts +1 -0
  116. package/types/components/Empty/index.d.ts +26 -0
  117. package/types/components/FAB/ActionGroup/StyledActionItem.d.ts +6 -1
  118. package/types/components/FAB/ActionGroup/index.d.ts +6 -1
  119. package/types/components/FAB/index.d.ts +1 -1
  120. package/types/components/Icon/IconList.d.ts +1 -1
  121. package/types/components/Icon/utils.d.ts +1 -1
  122. package/types/components/List/StyledBasicListItem.d.ts +3 -3
  123. package/types/components/List/StyledListItem.d.ts +3 -3
  124. package/types/components/RichTextEditor/EditorEvent.d.ts +3 -0
  125. package/types/components/RichTextEditor/EditorToolbar.d.ts +17 -0
  126. package/types/components/RichTextEditor/MentionList.d.ts +12 -0
  127. package/types/components/RichTextEditor/RichTextEditor.d.ts +65 -0
  128. package/types/components/RichTextEditor/StyledRichTextEditor.d.ts +16 -0
  129. package/types/components/RichTextEditor/StyledToolbar.d.ts +21 -0
  130. package/types/components/RichTextEditor/__tests__/EditorToolbar.spec.d.ts +1 -0
  131. package/types/components/RichTextEditor/__tests__/MentionList.spec.d.ts +1 -0
  132. package/types/components/RichTextEditor/__tests__/RichTextEditor.spec.d.ts +1 -0
  133. package/types/components/RichTextEditor/constants.d.ts +19 -0
  134. package/types/components/RichTextEditor/index.d.ts +5 -0
  135. package/types/components/RichTextEditor/utils/events.d.ts +8 -0
  136. package/types/components/RichTextEditor/utils/rnWebView.d.ts +7 -0
  137. package/types/components/SectionHeading/index.d.ts +2 -2
  138. package/types/components/Select/MultiSelect/OptionList.d.ts +1 -1
  139. package/types/components/Select/SingleSelect/OptionList.d.ts +1 -1
  140. package/types/components/Tag/StyledTag.d.ts +1 -1
  141. package/types/components/Tag/index.d.ts +1 -1
  142. package/types/components/Typography/Text/StyledText.d.ts +1 -1
  143. package/types/components/Typography/Text/index.d.ts +1 -1
  144. package/types/index.d.ts +5 -1
  145. package/types/theme/components/accordion.d.ts +13 -0
  146. package/types/theme/components/calendar.d.ts +26 -0
  147. package/types/theme/components/empty.d.ts +28 -0
  148. package/types/theme/components/fab.d.ts +1 -0
  149. package/types/theme/components/list.d.ts +1 -0
  150. package/types/theme/components/richTextEditor.d.ts +26 -0
  151. package/types/theme/components/tag.d.ts +8 -2
  152. package/types/theme/components/typography.d.ts +1 -0
  153. package/types/theme/global/colors.d.ts +4 -1
  154. package/types/theme/global/index.d.ts +4 -1
  155. package/types/theme/index.d.ts +8 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "7.13.0",
3
+ "version": "7.14.1",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -21,8 +21,10 @@
21
21
  "dependencies": {
22
22
  "@emotion/native": "^11.9.3",
23
23
  "@emotion/react": "^11.9.3",
24
- "@hero-design/colors": "7.13.0",
25
- "date-fns": "^2.16.1"
24
+ "@hero-design/colors": "7.14.1",
25
+ "date-fns": "^2.16.1",
26
+ "events": "^3.2.0",
27
+ "hero-editor": "^1.9.9"
26
28
  },
27
29
  "peerDependencies": {
28
30
  "react": "17.0.2",
@@ -30,7 +32,8 @@
30
32
  "react-native-pager-view": "^5.4.25",
31
33
  "react-native-safe-area-context": "^4.2.5",
32
34
  "react-native-vector-icons": "^9.1.0",
33
- "@react-native-community/datetimepicker": "^3.5.2"
35
+ "@react-native-community/datetimepicker": "^3.5.2",
36
+ "react-native-webview": "^11.15.0"
34
37
  },
35
38
  "devDependencies": {
36
39
  "@babel/core": "^7.17.5",
@@ -54,6 +57,7 @@
54
57
  "@types/react-native-vector-icons": "^6.4.10",
55
58
  "@typescript-eslint/eslint-plugin": "^5.12.1",
56
59
  "@typescript-eslint/parser": "^5.12.1",
60
+ "babel-plugin-inline-import": "^3.0.0",
57
61
  "eslint": "^8.9.0",
58
62
  "eslint-config-airbnb": "^19.0.4",
59
63
  "eslint-config-prettier": "^8.5.0",
@@ -68,6 +72,7 @@
68
72
  "react-native-pager-view": "^5.4.25",
69
73
  "react-native-safe-area-context": "^4.2.5",
70
74
  "react-native-vector-icons": "^9.1.0",
75
+ "react-native-webview": "^11.15.0",
71
76
  "react-test-renderer": "17.0.2",
72
77
  "rollup": "^2.68.0",
73
78
  "rollup-plugin-copy": "^3.4.0",
package/rollup.config.js CHANGED
@@ -28,6 +28,7 @@ export default {
28
28
  'react-native',
29
29
  'react-native-safe-area-context',
30
30
  '@react-native-community/datetimepicker',
31
+ 'react-native-webview',
31
32
  ],
32
33
  plugins: [
33
34
  replace({
@@ -0,0 +1,50 @@
1
+ import React, { ReactElement } from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ import {
4
+ StyledCollapse,
5
+ StyledHeaderWrapper,
6
+ StyledItemWrapper,
7
+ Variant,
8
+ } from './StyledAccordion';
9
+ import Typography from '../Typography';
10
+ import Icon from '../Icon';
11
+
12
+ export type AccordionItemProps = {
13
+ header: string | ReactElement;
14
+ content: ReactElement;
15
+ open?: boolean;
16
+ onPress?: () => void;
17
+ variant?: Variant;
18
+ style?: StyleProp<ViewStyle>;
19
+ testID?: string;
20
+ };
21
+
22
+ const AccordionItem = ({
23
+ header,
24
+ content,
25
+ open = false,
26
+ onPress,
27
+ variant = 'default',
28
+ style,
29
+ testID,
30
+ }: AccordionItemProps) => (
31
+ <StyledItemWrapper themeVariant={variant} style={style} testID={testID}>
32
+ <StyledHeaderWrapper onPress={onPress}>
33
+ {typeof header === 'string' ? (
34
+ <Typography.Text fontSize="large" fontWeight="semi-bold">
35
+ {header}
36
+ </Typography.Text>
37
+ ) : (
38
+ header
39
+ )}
40
+ <Icon
41
+ icon={`arrow-${open ? 'up' : 'down'}`}
42
+ intent="primary"
43
+ size="small"
44
+ />
45
+ </StyledHeaderWrapper>
46
+ <StyledCollapse open={open}>{content}</StyledCollapse>
47
+ </StyledItemWrapper>
48
+ );
49
+
50
+ export default AccordionItem;
@@ -0,0 +1,29 @@
1
+ import styled from '@emotion/native';
2
+ import { TouchableOpacity, View } from 'react-native';
3
+ import Collapse from '../Collapse';
4
+
5
+ export type Variant = 'default' | 'card';
6
+
7
+ export const StyledWrapper = styled(View)(() => ({}));
8
+
9
+ export const StyledItemWrapper = styled(View)<{ themeVariant: Variant }>(
10
+ ({ theme, themeVariant }) => ({
11
+ padding: theme.__hd__.accordion.space.padding,
12
+ backgroundColor: theme.__hd__.accordion.colors.background,
13
+ borderRadius:
14
+ themeVariant === 'card' ? theme.__hd__.accordion.radii.card : 0,
15
+ })
16
+ );
17
+
18
+ export const StyledHeaderWrapper = styled(TouchableOpacity)(() => ({
19
+ flexDirection: 'row',
20
+ justifyContent: 'space-between',
21
+ }));
22
+
23
+ export const StyledCollapse = styled(Collapse)(({ theme }) => ({
24
+ paddingTop: theme.__hd__.accordion.space.padding,
25
+ }));
26
+
27
+ export const Spacer = styled(View)(({ theme }) => ({
28
+ paddingTop: theme.__hd__.accordion.space.padding,
29
+ }));
@@ -0,0 +1,56 @@
1
+ import React from 'react';
2
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
3
+ import Typography from '../../Typography';
4
+ import AccordionItem from '../AccordionItem';
5
+
6
+ describe('AccordionItem', () => {
7
+ it('renders correctly when header is string', () => {
8
+ const wrapper = renderWithTheme(
9
+ <AccordionItem
10
+ header="Accordion header"
11
+ content={<Typography.Text>Accordion content</Typography.Text>}
12
+ />
13
+ );
14
+
15
+ expect(wrapper.getAllByText('Accordion header')).toHaveLength(1);
16
+ expect(wrapper.getAllByText('Accordion content')).toHaveLength(1);
17
+ expect(wrapper.toJSON()).toMatchSnapshot();
18
+ });
19
+
20
+ it('renders correctly when header is an element', () => {
21
+ const wrapper = renderWithTheme(
22
+ <AccordionItem
23
+ header={<Typography.Text>Accordion header</Typography.Text>}
24
+ content={<Typography.Text>Accordion content</Typography.Text>}
25
+ />
26
+ );
27
+
28
+ expect(wrapper.getAllByText('Accordion header')).toHaveLength(1);
29
+ expect(wrapper.getAllByText('Accordion content')).toHaveLength(1);
30
+ expect(wrapper.toJSON()).toMatchSnapshot();
31
+ });
32
+
33
+ it('renders correctly when variant is card', () => {
34
+ const wrapper = renderWithTheme(
35
+ <AccordionItem
36
+ header="Accordion header"
37
+ content={<Typography.Text>Accordion content</Typography.Text>}
38
+ variant="card"
39
+ />
40
+ );
41
+
42
+ expect(wrapper.toJSON()).toMatchSnapshot();
43
+ });
44
+
45
+ it('renders correctly when open', () => {
46
+ const wrapper = renderWithTheme(
47
+ <AccordionItem
48
+ header="Accordion header"
49
+ content={<Typography.Text>Accordion content</Typography.Text>}
50
+ open
51
+ />
52
+ );
53
+
54
+ expect(wrapper.toJSON()).toMatchSnapshot();
55
+ });
56
+ });
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import renderWithTheme from '../../../testHelpers/renderWithTheme';
3
+ import { StyledItemWrapper } from '../StyledAccordion';
4
+
5
+ describe('StyledItemWrapper', () => {
6
+ it.each`
7
+ themeVariant
8
+ ${'default'}
9
+ ${'card'}
10
+ `('has correct style when variant is $themeVariant', ({ themeVariant }) => {
11
+ const wrapper = renderWithTheme(
12
+ <StyledItemWrapper themeVariant={themeVariant} />
13
+ );
14
+
15
+ expect(wrapper.toJSON()).toMatchSnapshot();
16
+ });
17
+ });