@hero-design/rn 8.111.0 → 8.112.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.
- package/.cursor/rules/performance-optimization.mdc +64 -0
- package/.cursor/rules/rn-rules.mdc +165 -0
- package/.cursor/rules/testing-rules.mdc +114 -0
- package/.turbo/turbo-build.log +3 -3
- package/CHANGELOG.md +20 -0
- package/assets/fonts/hero-icons-mobile.ttf +0 -0
- package/es/index.js +376 -367
- package/lib/assets/fonts/hero-icons-mobile.ttf +0 -0
- package/lib/index.js +376 -367
- package/package.json +6 -7
- package/src/components/Icon/HeroIcon/glyphMap.json +1 -1
- package/src/components/Icon/IconList.ts +8 -0
- package/src/components/Select/index.internal.tsx +13 -0
- package/src/components/TimePicker/TimePickerIOS.tsx +6 -3
- package/src/components/TimePicker/__tests__/__snapshots__/TimePickerIOS.spec.tsx.snap +1 -0
- package/src/index.internal.ts +14 -0
- package/src/types.internal.ts +14 -1
- package/stats/8.111.0/rn-stats.html +1 -3
- package/stats/8.112.1/rn-stats.html +4844 -0
- package/types/components/Icon/IconList.d.ts +1 -1
- package/types/components/Icon/index.d.ts +1 -1
- package/types/components/Select/index.internal.d.ts +13 -0
- package/types/components/TextInput/index.d.ts +1 -1
- package/types/index.internal.d.ts +13 -0
- package/types/types.internal.d.ts +13 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
pattern: "**/*.{ts,tsx}"
|
|
3
|
+
description: "Performance optimization rules for React Native components in rn package"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Performance Optimization Rules for RN Package
|
|
7
|
+
|
|
8
|
+
## React Native Performance Best Practices
|
|
9
|
+
|
|
10
|
+
### Component Optimization
|
|
11
|
+
- Use `React.memo()` for components that receive stable props
|
|
12
|
+
- Implement `useMemo()` for expensive calculations
|
|
13
|
+
- Use `useCallback()` for event handlers passed to child components
|
|
14
|
+
- Avoid creating objects/functions in render methods
|
|
15
|
+
- Prefer `useState` functional updates when state depends on previous state
|
|
16
|
+
|
|
17
|
+
### List Performance
|
|
18
|
+
- Use `FlatList` or `SectionList` instead of `ScrollView` with `map()`
|
|
19
|
+
- Implement `getItemLayout` for `FlatList` when item heights are known
|
|
20
|
+
- Use `keyExtractor` prop for consistent item identification
|
|
21
|
+
- Implement `removeClippedSubviews` for large lists
|
|
22
|
+
- Use `windowSize` and `initialNumToRender` for performance tuning
|
|
23
|
+
|
|
24
|
+
### Memory Management
|
|
25
|
+
- Clean up subscriptions in `useEffect` cleanup functions
|
|
26
|
+
- Use `InteractionManager.runAfterInteractions()` for non-critical operations
|
|
27
|
+
- Avoid memory leaks by properly unmounting components
|
|
28
|
+
- Use `React.useRef()` instead of `useState` for mutable values
|
|
29
|
+
- Implement proper error boundaries to prevent crashes
|
|
30
|
+
|
|
31
|
+
### Animation Performance
|
|
32
|
+
- Use `Animated` API for smooth 60fps animations
|
|
33
|
+
- Prefer `transform` and `opacity` animations over layout changes
|
|
34
|
+
- Use `useNativeDriver: true` when possible
|
|
35
|
+
- Avoid animating `width`, `height`, or `top` properties
|
|
36
|
+
- Use `LayoutAnimation` for list item changes
|
|
37
|
+
|
|
38
|
+
### Bundle Size Optimization
|
|
39
|
+
- Use dynamic imports for large components (`React.lazy()`)
|
|
40
|
+
- Implement code splitting for feature modules
|
|
41
|
+
- Remove unused dependencies and imports
|
|
42
|
+
- Use tree shaking compatible libraries
|
|
43
|
+
- Optimize asset sizes and formats
|
|
44
|
+
|
|
45
|
+
### React Native Specific Performance Considerations
|
|
46
|
+
- Test with mobile-typical data sizes (large datasets, complex forms)
|
|
47
|
+
- Optimize for mobile app's specific use cases
|
|
48
|
+
- Ensure smooth performance on older devices
|
|
49
|
+
- Test with base theme and custom styling
|
|
50
|
+
- Monitor performance metrics in mobile environment
|
|
51
|
+
|
|
52
|
+
### Performance Monitoring
|
|
53
|
+
- Use React DevTools Profiler for component analysis
|
|
54
|
+
- Implement performance logging for critical paths
|
|
55
|
+
- Monitor memory usage during development
|
|
56
|
+
- Test performance on various device types
|
|
57
|
+
- Use Flipper for React Native debugging
|
|
58
|
+
|
|
59
|
+
### Anti-Patterns to Avoid
|
|
60
|
+
- Don't use `console.log` in production builds
|
|
61
|
+
- Avoid inline object/function creation in render
|
|
62
|
+
- Don't use `setState` in render methods
|
|
63
|
+
- Avoid unnecessary re-renders with proper dependency arrays
|
|
64
|
+
- Don't ignore performance warnings from React Native
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
pattern: "**/*.{ts,tsx}"
|
|
3
|
+
description: "General development rules for React Native components in rn package"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RN Package Development Rules
|
|
7
|
+
|
|
8
|
+
## Package Context
|
|
9
|
+
This is the base React Native component library that provides core components, themes, and utilities for React Native applications.
|
|
10
|
+
|
|
11
|
+
## Component Structure Guidelines
|
|
12
|
+
|
|
13
|
+
### File Organization
|
|
14
|
+
- **Component files**: `ComponentName/ComponentName.tsx` (main component)
|
|
15
|
+
- **Styled components**: `ComponentName/StyledComponentName.tsx` (e.g., `StyledButton.tsx`)
|
|
16
|
+
- **Types**: `ComponentName/types.ts` (if complex types are needed)
|
|
17
|
+
- **Tests**: `ComponentName/__tests__/ComponentName.spec.tsx`
|
|
18
|
+
|
|
19
|
+
### Component Structure Example
|
|
20
|
+
```tsx
|
|
21
|
+
// Button/Button.tsx
|
|
22
|
+
import React from 'react';
|
|
23
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
24
|
+
import { useTheme } from '../../theme';
|
|
25
|
+
import { StyledButtonContainer, StyledButtonText } from './StyledButton';
|
|
26
|
+
|
|
27
|
+
export interface ButtonProps {
|
|
28
|
+
/** Button label */
|
|
29
|
+
text?: ReactChild;
|
|
30
|
+
/** Visual intent color */
|
|
31
|
+
intent?: 'primary' | 'secondary' | 'danger';
|
|
32
|
+
/** Button type */
|
|
33
|
+
variant?: 'filled' | 'outlined' | 'text';
|
|
34
|
+
/** Loading state */
|
|
35
|
+
loading?: boolean;
|
|
36
|
+
/** Press handler */
|
|
37
|
+
onPress: () => void;
|
|
38
|
+
/** Additional style */
|
|
39
|
+
style?: StyleProp<ViewStyle>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const Button = ({ text, intent = 'primary', variant = 'filled', loading, onPress, style }: ButtonProps): JSX.Element => {
|
|
43
|
+
const theme = useTheme();
|
|
44
|
+
const themeVariant = getThemeVariant(variant, intent);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<StyledButtonContainer
|
|
48
|
+
disabled={loading}
|
|
49
|
+
onPress={onPress}
|
|
50
|
+
themeButtonVariant={themeVariant}
|
|
51
|
+
style={style}
|
|
52
|
+
>
|
|
53
|
+
{loading ? (
|
|
54
|
+
<LoadingIndicator themeVariant={themeVariant} />
|
|
55
|
+
) : (
|
|
56
|
+
<StyledButtonText themeButtonVariant={themeVariant}>
|
|
57
|
+
{text}
|
|
58
|
+
</StyledButtonText>
|
|
59
|
+
)}
|
|
60
|
+
</StyledButtonContainer>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Styled Component Conventions
|
|
66
|
+
- **Naming**: `const StyledComponentName = styled.View\`\``
|
|
67
|
+
- **Props naming**: Use descriptive names like `themeButtonVariant`, `themeIsPressed`, `themeIsCompact`
|
|
68
|
+
- **Theme access**: Use component-specific theme tokens via `theme.__hd__.componentName.*` instead of global theme tokens
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
// StyledButton.tsx
|
|
72
|
+
import styled from '@emotion/native';
|
|
73
|
+
|
|
74
|
+
interface StyledButtonProps {
|
|
75
|
+
themeButtonVariant: ThemeVariant;
|
|
76
|
+
disabled?: boolean;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const StyledButtonContainer = styled.TouchableHighlight<StyledButtonProps>`
|
|
80
|
+
${({ theme, themeButtonVariant, disabled }) => `
|
|
81
|
+
background-color: ${theme.__hd__.button.colors.background[themeButtonVariant]};
|
|
82
|
+
border-radius: ${theme.__hd__.button.borderRadius};
|
|
83
|
+
padding: ${theme.__hd__.button.spacing.default};
|
|
84
|
+
opacity: ${disabled ? 0.5 : 1};
|
|
85
|
+
`}
|
|
86
|
+
`;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Theme Token Usage
|
|
90
|
+
|
|
91
|
+
### Adding Theme Tokens
|
|
92
|
+
1. **Define in theme**: Add new tokens to `theme/global` files
|
|
93
|
+
2. **Use consistently**: Apply tokens across components
|
|
94
|
+
3. **Document usage**: Add JSDoc comments for token purposes
|
|
95
|
+
|
|
96
|
+
### Theme Token Examples
|
|
97
|
+
```tsx
|
|
98
|
+
// Using component-specific theme tokens
|
|
99
|
+
background-color: ${theme.__hd__.button.colors.background[themeVariant]};
|
|
100
|
+
color: ${theme.__hd__.button.colors.text[themeVariant]};
|
|
101
|
+
padding: ${theme.__hd__.button.spacing.default};
|
|
102
|
+
border-radius: ${theme.__hd__.button.borderRadius};
|
|
103
|
+
|
|
104
|
+
// Using global theme tokens when needed
|
|
105
|
+
margin: ${theme.spacing.md}; // Global spacing
|
|
106
|
+
font-family: ${theme.typography.fontFamily}; // Global typography
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Modifying Theme Tokens
|
|
110
|
+
- **Global changes**: Update `theme/global` files
|
|
111
|
+
- **Component-specific**: Use component theme overrides
|
|
112
|
+
- **Testing**: Verify changes across all components
|
|
113
|
+
|
|
114
|
+
## Component Development Rules
|
|
115
|
+
|
|
116
|
+
### Basic Rules
|
|
117
|
+
- **Prefer functional components with hooks over class components**
|
|
118
|
+
- Import `styled` from `@emotion/native` for styling consistency
|
|
119
|
+
- Use `useTheme()` hook instead of prop drilling theme
|
|
120
|
+
- Follow React Native design patterns and accessibility requirements
|
|
121
|
+
- Use TypeScript strictly - no `any` types without good reason
|
|
122
|
+
- Fix linting errors immediately
|
|
123
|
+
- Use proper React Native components (`Text`, `View`) instead of HTML elements
|
|
124
|
+
|
|
125
|
+
### Props Interface Guidelines
|
|
126
|
+
```tsx
|
|
127
|
+
// Good example from Button component
|
|
128
|
+
export interface ButtonProps {
|
|
129
|
+
/** Button label */
|
|
130
|
+
text?: ReactChild;
|
|
131
|
+
/** Visual intent color */
|
|
132
|
+
intent?: 'primary' | 'secondary' | 'danger';
|
|
133
|
+
/** Button type */
|
|
134
|
+
variant?: 'filled' | 'outlined' | 'text';
|
|
135
|
+
/** Loading state */
|
|
136
|
+
loading?: boolean;
|
|
137
|
+
/** Press handler */
|
|
138
|
+
onPress: () => void;
|
|
139
|
+
/** Additional style */
|
|
140
|
+
style?: StyleProp<ViewStyle>;
|
|
141
|
+
/** Testing id */
|
|
142
|
+
testID?: string;
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Documentation Rules
|
|
147
|
+
- Document Props interfaces with JSDoc comments directly on each property: `/** Description */`
|
|
148
|
+
- Use simplified @param comments: `@param props - The component props (see [ComponentName]Props interface for details)`
|
|
149
|
+
- Avoid mentioning implementation details like "memoized component" in JSDoc comments
|
|
150
|
+
- Focus JSDoc comments on what the component does, not how it's implemented
|
|
151
|
+
- Keep type information in the Props interface, not duplicated in @param comments
|
|
152
|
+
|
|
153
|
+
## React Native Specific Patterns
|
|
154
|
+
- Components should work with base theme system
|
|
155
|
+
- Test with standard React Native color palettes and spacing
|
|
156
|
+
- Ensure compatibility with React Native requirements
|
|
157
|
+
- Follow React Native accessibility guidelines
|
|
158
|
+
- Test performance with typical mobile data sizes
|
|
159
|
+
|
|
160
|
+
## Quality Gates
|
|
161
|
+
- All tests must pass with 100% coverage on main components
|
|
162
|
+
- No linting errors
|
|
163
|
+
- No TypeScript errors
|
|
164
|
+
- Components must work with base theme system
|
|
165
|
+
- Accessibility compliance for mobile environment
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
pattern: "**/*.spec.{ts,tsx}"
|
|
3
|
+
description: "Comprehensive testing guidelines for React Native components in rn package"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Testing Guidelines for RN Package
|
|
7
|
+
|
|
8
|
+
## Testing Philosophy
|
|
9
|
+
- Write user-behavior focused tests that describe what users see and experience
|
|
10
|
+
- Use descriptive test names like "when user sees an empty input field" instead of "idle state"
|
|
11
|
+
- Group related assertions with explanatory comments about user expectations
|
|
12
|
+
- Focus on user interactions and outcomes rather than implementation details
|
|
13
|
+
- Test the component's public API, not internal implementation
|
|
14
|
+
- Write tests that will catch regressions and ensure reliability
|
|
15
|
+
|
|
16
|
+
## Testing Tools and Setup
|
|
17
|
+
- Use `@testing-library/react-native` for all component testing
|
|
18
|
+
- Use `renderWithTheme()` from `../testUtils/renderWithTheme` for components that need theme context
|
|
19
|
+
- Use semantic matchers like `toBeDisabled()`, `toHaveProp()` when available
|
|
20
|
+
- For complex React Native styles, use manual checking when `toHaveStyle()` doesn't work
|
|
21
|
+
- Handle React Native's nested style arrays with `StyleSheet.flatten()` or custom helpers
|
|
22
|
+
- Use `jest` for test runner and assertion library
|
|
23
|
+
- Use `@testing-library/jest-native` for additional React Native matchers
|
|
24
|
+
|
|
25
|
+
## Test Structure and Organization
|
|
26
|
+
- Follow AAA pattern: Arrange, Act, Assert
|
|
27
|
+
- Use `describe` blocks to group related tests
|
|
28
|
+
- Use descriptive `it` statements that explain the expected behavior
|
|
29
|
+
- Keep tests focused and test one thing at a time
|
|
30
|
+
- Use `beforeEach` and `afterEach` for setup and cleanup
|
|
31
|
+
- Mock external dependencies and APIs
|
|
32
|
+
- Use `test.each` for parameterized tests when testing multiple scenarios
|
|
33
|
+
|
|
34
|
+
## Test Coverage Requirements
|
|
35
|
+
- Aim for 100% line coverage on main component files
|
|
36
|
+
- Create dedicated test files for each component (not just integration tests)
|
|
37
|
+
- Separate large test files by component responsibility
|
|
38
|
+
- Use consistent naming: `ComponentName.spec.tsx`
|
|
39
|
+
- Keep test utilities in `testUtils/` directory at package root
|
|
40
|
+
- Use snapshot testing for visual regression prevention
|
|
41
|
+
- Create README.md files in test directories explaining testing approach
|
|
42
|
+
|
|
43
|
+
## Component Testing Patterns
|
|
44
|
+
- Test component rendering with different props
|
|
45
|
+
- Test user interactions (press, type, scroll)
|
|
46
|
+
- Test component state changes
|
|
47
|
+
- Test prop changes and their effects
|
|
48
|
+
- Test conditional rendering based on props/state
|
|
49
|
+
- Test component lifecycle methods
|
|
50
|
+
- Test ref forwarding and imperative APIs
|
|
51
|
+
|
|
52
|
+
## Accessibility Testing
|
|
53
|
+
- Test screen reader support with `getByRole`, `getByLabelText`
|
|
54
|
+
- Test keyboard navigation and focus management
|
|
55
|
+
- Test accessibility props like `accessibilityLabel`, `accessibilityHint`
|
|
56
|
+
- Test accessibility states like `accessibilityState`
|
|
57
|
+
- Test with accessibility tools and screen readers
|
|
58
|
+
- Ensure proper semantic markup and ARIA attributes
|
|
59
|
+
|
|
60
|
+
## Error Handling and Edge Cases
|
|
61
|
+
- Test error states and error boundaries
|
|
62
|
+
- Test with invalid or missing props
|
|
63
|
+
- Test with extreme values (empty strings, null, undefined)
|
|
64
|
+
- Test component behavior with network failures
|
|
65
|
+
- Test graceful degradation when features are unavailable
|
|
66
|
+
- Test component recovery from error states
|
|
67
|
+
|
|
68
|
+
## Performance Testing
|
|
69
|
+
- Test component rendering performance with large datasets
|
|
70
|
+
- Test memory leaks and cleanup
|
|
71
|
+
- Test component re-rendering behavior
|
|
72
|
+
- Test with typical mobile data sizes
|
|
73
|
+
- Use React DevTools Profiler for performance analysis
|
|
74
|
+
- Test component performance on different device types
|
|
75
|
+
|
|
76
|
+
## React Native Specific Testing
|
|
77
|
+
- Test with React Native specific APIs and components
|
|
78
|
+
- Test component behavior with different screen sizes
|
|
79
|
+
- Test component behavior with different orientations
|
|
80
|
+
- Test component behavior with different device capabilities
|
|
81
|
+
- Test component behavior with different platform-specific features
|
|
82
|
+
- Test component behavior with different React Native versions
|
|
83
|
+
|
|
84
|
+
## Mocking and Test Utilities
|
|
85
|
+
- Mock React Native modules that aren't available in test environment
|
|
86
|
+
- Create custom render functions for common test scenarios
|
|
87
|
+
- Use `jest.mock()` for external dependencies
|
|
88
|
+
- Create test data factories for consistent test data
|
|
89
|
+
- Use `@testing-library/user-event` for user interaction simulation
|
|
90
|
+
- Mock navigation and routing for component tests
|
|
91
|
+
|
|
92
|
+
## Test Data Management
|
|
93
|
+
- Use consistent test data across tests
|
|
94
|
+
- Create reusable test data factories
|
|
95
|
+
- Use realistic data that matches production scenarios
|
|
96
|
+
- Test with both valid and invalid data
|
|
97
|
+
- Use mobile-specific data patterns and structures
|
|
98
|
+
- Keep test data minimal but representative
|
|
99
|
+
|
|
100
|
+
## Integration Testing
|
|
101
|
+
- Test component integration with other components
|
|
102
|
+
- Test component behavior within larger feature flows
|
|
103
|
+
- Test component interaction with global state
|
|
104
|
+
- Test component behavior with routing and navigation
|
|
105
|
+
- Test component behavior with React Native services
|
|
106
|
+
- Use integration tests sparingly, prefer unit tests
|
|
107
|
+
|
|
108
|
+
## Continuous Integration
|
|
109
|
+
- Ensure all tests pass in CI environment
|
|
110
|
+
- Use consistent test commands across environments
|
|
111
|
+
- Set up test coverage reporting
|
|
112
|
+
- Use parallel test execution for faster CI runs
|
|
113
|
+
- Ensure tests are deterministic and don't flake
|
|
114
|
+
- Use proper test isolation to avoid test interference
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(node:
|
|
1
|
+
(node:2743) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
|
|
2
2
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
3
3
|
[36m
|
|
4
4
|
[1msrc/index.ts[22m → [1mlib/index.js, es/index.js[22m...[39m
|
|
@@ -9,9 +9,9 @@ node_modules/d3-selection/src/selection/index.js -> node_modules/d3-selection/sr
|
|
|
9
9
|
...and 12 more
|
|
10
10
|
[1m[33m(!) [plugin replace] @rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.[39m[22m
|
|
11
11
|
[1m[33m(!) [plugin node-resolve] preferring built-in module 'events' over local alternative at '/home/runner/_work/hero-design/hero-design/node_modules/events/events.js', pass 'preferBuiltins: false' to disable this behavior or 'preferBuiltins: true' to disable this warning.or passing a function to 'preferBuiltins' to provide more fine-grained control over which built-in modules to prefer.[39m[22m
|
|
12
|
-
[32mcreated [1mlib/index.js, es/index.js[22m in [
|
|
12
|
+
[32mcreated [1mlib/index.js, es/index.js[22m in [1m1m 34.7s[22m[39m
|
|
13
13
|
[36m
|
|
14
14
|
[1m/home/runner/_work/hero-design/hero-design/packages/rn/src/locales/en_AU.ts, /home/runner/_work/hero-design/hero-design/packages/rn/src/locales/en_CA.ts, /home/runner/_work/hero-design/hero-design/packages/rn/src/locales/index.ts, /home/runner/_work/hero-design/hero-design/packages/rn/src/locales/types.ts[22m → [1m., .[22m...[39m
|
|
15
15
|
[1m[33m(!) Generated empty chunks[39m[22m
|
|
16
16
|
"locales/types" and "locales/types"
|
|
17
|
-
[32mcreated [1m., .[22m in [
|
|
17
|
+
[32mcreated [1m., .[22m in [1m25.3s[22m[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @hero-design/rn
|
|
2
2
|
|
|
3
|
+
## 8.112.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#4310](https://github.com/Thinkei/hero-design/pull/4310) [`4742897580f05ae3d5f089df7aa0b1a34a90e15c`](https://github.com/Thinkei/hero-design/commit/4742897580f05ae3d5f089df7aa0b1a34a90e15c) Thanks [@vinhphan-eh](https://github.com/vinhphan-eh)! - [TimePicker] Correct 12-hour format for iOS picker
|
|
8
|
+
|
|
9
|
+
## 8.112.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#4304](https://github.com/Thinkei/hero-design/pull/4304) [`02ecf1c8ab33f3d95dcc2d168d70f11d8c415883`](https://github.com/Thinkei/hero-design/commit/02ecf1c8ab33f3d95dcc2d168d70f11d8c415883) Thanks [@phucdph](https://github.com/phucdph)! - [Icon] Add `global-pound`, `pound-icon-shine`, `pound-sign`, `file-pound-outline`, `pound-box-outlined`, `pound-card-outlined`, `pound-coin-shine-outlined`, `pound-credit-card-outlined` icons
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#4303](https://github.com/Thinkei/hero-design/pull/4303) [`ee5b1d700200af991bb360e3f514f29790e33511`](https://github.com/Thinkei/hero-design/commit/ee5b1d700200af991bb360e3f514f29790e33511) Thanks [@ngvuthanhnhan-eh-hi](https://github.com/ngvuthanhnhan-eh-hi)! - Suppress `lint` warnings in CI Logs
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [[`ee5b1d700200af991bb360e3f514f29790e33511`](https://github.com/Thinkei/hero-design/commit/ee5b1d700200af991bb360e3f514f29790e33511)]:
|
|
20
|
+
- @hero-design/colors@8.46.3
|
|
21
|
+
- @hero-design/react-native-month-year-picker@8.43.2
|
|
22
|
+
|
|
3
23
|
## 8.111.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
|
Binary file
|