@hero-design/rn 8.131.3 → 8.132.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hero-design/rn",
3
- "version": "8.131.3",
3
+ "version": "8.132.0",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -36,7 +36,7 @@
36
36
  "nanoid": "^5.0.9"
37
37
  },
38
38
  "peerDependencies": {
39
- "@hero-design/react-native-month-year-picker": "^8.46.0",
39
+ "@hero-design/react-native-month-year-picker": "^8.46.1",
40
40
  "@ptomasroos/react-native-multi-slider": "^2.2.2",
41
41
  "@react-native-community/datetimepicker": "^8.4.4",
42
42
  "@react-native-community/slider": "^5.0.1",
@@ -56,16 +56,16 @@
56
56
  "@babel/plugin-proposal-class-properties": "^7.18.6",
57
57
  "@babel/plugin-proposal-private-methods": "^7.18.6",
58
58
  "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
59
- "@babel/preset-env": "^7.25.3",
59
+ "@babel/preset-env": "^7.29.7",
60
60
  "@babel/preset-react": "^7.26.3",
61
61
  "@babel/preset-typescript": "^7.27.0",
62
- "@babel/runtime": "^7.25.0",
62
+ "@babel/runtime": "^7.29.7",
63
63
  "@emotion/jest": "^11.11.0",
64
64
  "@eslint/compat": "^1.1.1",
65
65
  "@eslint/eslintrc": "^3.1.0",
66
66
  "@eslint/js": "^9.8.0",
67
- "@hero-design/eslint-plugin": "9.2.3",
68
- "@hero-design/react-native-month-year-picker": "^8.46.0",
67
+ "@hero-design/eslint-plugin": "9.2.4",
68
+ "@hero-design/react-native-month-year-picker": "^8.46.1",
69
69
  "@ptomasroos/react-native-multi-slider": "^2.2.2",
70
70
  "@react-native-community/datetimepicker": "8.4.4",
71
71
  "@react-native-community/slider": "^5.0.1",
@@ -89,11 +89,11 @@
89
89
  "babel-plugin-inline-import": "^3.0.0",
90
90
  "core-js": "^3.33.0",
91
91
  "eslint": "^8.57.0",
92
- "eslint-config-hd": "8.42.6",
92
+ "eslint-config-hd": "8.42.7",
93
93
  "expo-linear-gradient": "55.0.9",
94
- "jest": "^29.2.1",
94
+ "jest": "^29.7.0",
95
95
  "jest-environment-jsdom": "^29.2.1",
96
- "jest-junit": "^16.0.0",
96
+ "jest-junit": "^17.0.0",
97
97
  "prettier-config-hd": "8.42.4",
98
98
  "react": "19.1.0",
99
99
  "react-dom": "19.1.0",
package/src/index.ts CHANGED
@@ -16,7 +16,11 @@ import theme, {
16
16
  withTheme,
17
17
  ehWorkSystemPalette,
18
18
  ehJobsSystemPalette,
19
+ ehWorkShadowPalette,
20
+ ehJobsShadowPalette,
21
+ ehWorkDarkShadowPalette,
19
22
  } from './theme';
23
+ import type { ShadowPalette } from './theme';
20
24
  import { scale } from './utils/scale';
21
25
 
22
26
  import Accordion from './components/Accordion';
@@ -108,6 +112,9 @@ export {
108
112
  ehWorkDarkSystemPalette,
109
113
  ehWorkSystemPalette,
110
114
  ehJobsSystemPalette,
115
+ ehWorkShadowPalette,
116
+ ehJobsShadowPalette,
117
+ ehWorkDarkShadowPalette,
111
118
  Accordion,
112
119
  Alert,
113
120
  AppCue,
@@ -178,3 +185,5 @@ export {
178
185
  };
179
186
 
180
187
  export * from './types';
188
+
189
+ export type { ShadowPalette };
@@ -58,7 +58,12 @@ import getToastTheme from './components/toast';
58
58
  import getToolbarTheme from './components/toolbar';
59
59
  import getTypographyTheme from './components/typography';
60
60
 
61
- import type { GlobalTheme, Scale, SystemPalette } from './global';
61
+ import type {
62
+ GlobalTheme,
63
+ Scale,
64
+ ShadowPalette,
65
+ SystemPalette,
66
+ } from './global';
62
67
  import getSearchTheme from './components/search';
63
68
  import getMapPinTheme from './components/mapPin';
64
69
  import getFloatingIslandTheme from './components/floatingIsland';
@@ -132,9 +137,10 @@ type Theme = GlobalTheme & {
132
137
 
133
138
  const getTheme = (
134
139
  scale: Scale = defaultScale,
135
- systemPallete: SystemPalette = swagSystemPalette
140
+ systemPallete: SystemPalette = swagSystemPalette,
141
+ shadowPalette: ShadowPalette | undefined = undefined
136
142
  ): Theme => {
137
- const globalTheme = getGlobalTheme(scale, systemPallete);
143
+ const globalTheme = getGlobalTheme(scale, systemPallete, shadowPalette);
138
144
  return {
139
145
  themeMode: systemPallete.themeMode,
140
146
  ...globalTheme,
@@ -18,9 +18,14 @@ import { getBorderWidths, getRadii } from './borders';
18
18
  import type { Scale } from './scale';
19
19
  import type { GradientToken, Gradients, SystemPalette } from './colors/types';
20
20
  import { getShadows } from './shadows';
21
+ import type { ShadowPalette } from './shadows/types';
21
22
  import getGradients from './colors/gradients';
22
23
 
23
- const getGlobalTheme = (scale: Scale, systemPalette: SystemPalette) => {
24
+ const getGlobalTheme = (
25
+ scale: Scale,
26
+ systemPalette: SystemPalette,
27
+ shadowPalette?: ShadowPalette
28
+ ) => {
24
29
  const fonts = getFonts(scale.font);
25
30
  const fontSizes = getFontSizes(scale.fontSize);
26
31
  const lineHeights = getLineHeights(fontSizes);
@@ -28,7 +33,7 @@ const getGlobalTheme = (scale: Scale, systemPalette: SystemPalette) => {
28
33
  const space = getSpace(scale.space);
29
34
  const sizes = getSizes(scale.size);
30
35
  const radii = getRadii(scale.radius);
31
- const shadows = getShadows(systemPalette);
36
+ const shadows = getShadows(systemPalette, shadowPalette);
32
37
  const gradients = getGradients(systemPalette);
33
38
 
34
39
  return {
@@ -49,7 +54,14 @@ const getGlobalTheme = (scale: Scale, systemPalette: SystemPalette) => {
49
54
 
50
55
  type GlobalTheme = ReturnType<typeof getGlobalTheme>;
51
56
 
52
- export type { GlobalTheme, GradientToken, Gradients, Scale, SystemPalette };
57
+ export type {
58
+ GlobalTheme,
59
+ GradientToken,
60
+ Gradients,
61
+ Scale,
62
+ ShadowPalette,
63
+ SystemPalette,
64
+ };
53
65
 
54
66
  export {
55
67
  getGlobalTheme,
@@ -3,22 +3,24 @@ import ehJobsShadowPalette from './ehJobs';
3
3
  import ehWorkDarkShadowPalette from './ehWorkDark';
4
4
 
5
5
  import type { SystemPalette } from '../colors/types';
6
+ import type { ShadowPalette } from './types';
6
7
 
7
- const getShadows = (palette: SystemPalette) => {
8
- switch (palette.name) {
9
- case 'swagLight':
10
- return ehWorkShadowPalette;
11
- case 'ehWork':
12
- return ehWorkShadowPalette;
13
- case 'swagLightJobs':
14
- return ehJobsShadowPalette;
15
- case 'ehJobs':
16
- return ehJobsShadowPalette;
17
- case 'ehWorkDark':
18
- return ehWorkDarkShadowPalette;
19
- default:
20
- return ehWorkShadowPalette;
8
+ const shadowPaletteMap: Record<string, ShadowPalette> = {
9
+ swagLight: ehWorkShadowPalette,
10
+ ehWork: ehWorkShadowPalette,
11
+ swagLightJobs: ehJobsShadowPalette,
12
+ ehJobs: ehJobsShadowPalette,
13
+ ehWorkDark: ehWorkDarkShadowPalette,
14
+ };
15
+
16
+ const getShadows = (
17
+ palette: SystemPalette,
18
+ customShadowPalette?: ShadowPalette
19
+ ): ShadowPalette => {
20
+ if (customShadowPalette) {
21
+ return customShadowPalette;
21
22
  }
23
+ return shadowPaletteMap[palette.name ?? ''] ?? ehWorkShadowPalette;
22
24
  };
23
25
 
24
26
  export { getShadows };
@@ -14,12 +14,16 @@ import {
14
14
  ehWorkSystemPalette,
15
15
  ehJobsSystemPalette,
16
16
  } from './global';
17
+ import type { ShadowPalette } from './global/shadows/types';
18
+ import ehWorkShadowPalette from './global/shadows/ehWork';
19
+ import ehJobsShadowPalette from './global/shadows/ehJobs';
20
+ import ehWorkDarkShadowPalette from './global/shadows/ehWorkDark';
17
21
 
18
22
  import type { Theme } from './getTheme';
19
23
 
20
24
  const defaultTheme = getTheme();
21
25
 
22
- export type { Theme };
26
+ export type { ShadowPalette, Theme };
23
27
 
24
28
  export {
25
29
  withTheme,
@@ -38,6 +42,9 @@ export {
38
42
  ehWorkDarkSystemPalette,
39
43
  ehWorkSystemPalette,
40
44
  ehJobsSystemPalette,
45
+ ehWorkShadowPalette,
46
+ ehJobsShadowPalette,
47
+ ehWorkDarkShadowPalette,
41
48
  };
42
49
 
43
50
  export default defaultTheme;
package/types/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import styled from '@emotion/native';
2
- import theme, { getTheme, ThemeProvider, useTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ThemeSwitcher, withTheme, ehWorkSystemPalette, ehJobsSystemPalette } from './theme';
2
+ import theme, { getTheme, ThemeProvider, useTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ThemeSwitcher, withTheme, ehWorkSystemPalette, ehJobsSystemPalette, ehWorkShadowPalette, ehJobsShadowPalette, ehWorkDarkShadowPalette } from './theme';
3
+ import type { ShadowPalette } from './theme';
3
4
  import { scale } from './utils/scale';
4
5
  import Accordion from './components/Accordion';
5
6
  import Alert from './components/Alert';
@@ -61,5 +62,6 @@ import FloatingIsland from './components/FloatingIsland';
61
62
  import LocaleProvider from './components/LocaleProvider';
62
63
  import FilterTrigger from './components/FilterTrigger';
63
64
  import InlineLoader, { type InlineLoaderProps } from './components/InlineLoader';
64
- export { theme, getTheme, useTheme, scale, ThemeProvider, ThemeSwitcher, withTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette, Accordion, Alert, AppCue, Attachment, Avatar, useAvatarColors, Badge, BottomNavigation, BottomSheet, Box, Button, Calendar, Card, Chart, Carousel, Chip, Collapse, Checkbox, ContentNavigator, DatePicker, Divider, Drawer, Empty, Error, FAB, FlatListWithFAB, Icon, Illustration, type IllustrationName, IllustrationList, Image, HeroDesignProvider, MapPin, List, PinInput, Progress, Portal, PageControl, Skeleton, Slider, Spinner, Swipeable, Radio, Search, SegmentedControl, ScrollViewWithFAB, SectionHeading, SectionListWithFAB, Select, Success, Switch, Tabs, Tag, TextInput, TimePicker, Toast, Toolbar, Typography, Rate, RefreshControl, RichTextEditor, FloatingIsland, LocaleProvider, FilterTrigger, InlineLoader, type InlineLoaderProps, styled, };
65
+ export { theme, getTheme, useTheme, scale, ThemeProvider, ThemeSwitcher, withTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette, ehWorkShadowPalette, ehJobsShadowPalette, ehWorkDarkShadowPalette, Accordion, Alert, AppCue, Attachment, Avatar, useAvatarColors, Badge, BottomNavigation, BottomSheet, Box, Button, Calendar, Card, Chart, Carousel, Chip, Collapse, Checkbox, ContentNavigator, DatePicker, Divider, Drawer, Empty, Error, FAB, FlatListWithFAB, Icon, Illustration, type IllustrationName, IllustrationList, Image, HeroDesignProvider, MapPin, List, PinInput, Progress, Portal, PageControl, Skeleton, Slider, Spinner, Swipeable, Radio, Search, SegmentedControl, ScrollViewWithFAB, SectionHeading, SectionListWithFAB, Select, Success, Switch, Tabs, Tag, TextInput, TimePicker, Toast, Toolbar, Typography, Rate, RefreshControl, RichTextEditor, FloatingIsland, LocaleProvider, FilterTrigger, InlineLoader, type InlineLoaderProps, styled, };
65
66
  export * from './types';
67
+ export type { ShadowPalette };
@@ -46,7 +46,7 @@ import getTimePickerTheme from './components/timePicker';
46
46
  import getToastTheme from './components/toast';
47
47
  import getToolbarTheme from './components/toolbar';
48
48
  import getTypographyTheme from './components/typography';
49
- import type { GlobalTheme, Scale, SystemPalette } from './global';
49
+ import type { GlobalTheme, Scale, ShadowPalette, SystemPalette } from './global';
50
50
  import getSearchTheme from './components/search';
51
51
  import getMapPinTheme from './components/mapPin';
52
52
  import getFloatingIslandTheme from './components/floatingIsland';
@@ -116,6 +116,6 @@ type Theme = GlobalTheme & {
116
116
  segmentedControl: ReturnType<typeof getSegmentedControlTheme>;
117
117
  };
118
118
  };
119
- declare const getTheme: (scale?: Scale, systemPallete?: SystemPalette) => Theme;
119
+ declare const getTheme: (scale?: Scale, systemPallete?: SystemPalette, shadowPalette?: ShadowPalette | undefined) => Theme;
120
120
  export default getTheme;
121
121
  export type { Theme };
@@ -12,7 +12,8 @@ import ehWorkSystemPalette from './colors/ehWork';
12
12
  import ehJobsSystemPalette from './colors/ehJobs';
13
13
  import type { Scale } from './scale';
14
14
  import type { GradientToken, Gradients, SystemPalette } from './colors/types';
15
- declare const getGlobalTheme: (scale: Scale, systemPalette: SystemPalette) => {
15
+ import type { ShadowPalette } from './shadows/types';
16
+ declare const getGlobalTheme: (scale: Scale, systemPalette: SystemPalette, shadowPalette?: ShadowPalette) => {
16
17
  colors: {
17
18
  gradients: Gradients;
18
19
  defaultGlobalSurface: string;
@@ -72,8 +73,8 @@ declare const getGlobalTheme: (scale: Scale, systemPalette: SystemPalette) => {
72
73
  space: import("./space").Space;
73
74
  sizes: import("./sizes").Sizes;
74
75
  radii: import("./borders").Radii;
75
- shadows: import("./shadows/types").ShadowPalette;
76
+ shadows: ShadowPalette;
76
77
  };
77
78
  type GlobalTheme = ReturnType<typeof getGlobalTheme>;
78
- export type { GlobalTheme, GradientToken, Gradients, Scale, SystemPalette };
79
+ export type { GlobalTheme, GradientToken, Gradients, Scale, ShadowPalette, SystemPalette, };
79
80
  export { getGlobalTheme, defaultScale, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette, };
@@ -1,3 +1,4 @@
1
1
  import type { SystemPalette } from '../colors/types';
2
- declare const getShadows: (palette: SystemPalette) => import("./types").ShadowPalette;
2
+ import type { ShadowPalette } from './types';
3
+ declare const getShadows: (palette: SystemPalette, customShadowPalette?: ShadowPalette) => ShadowPalette;
3
4
  export { getShadows };
@@ -2,8 +2,12 @@ import getTheme from './getTheme';
2
2
  import ThemeProvider, { useTheme } from './ThemeProvider';
3
3
  import ThemeSwitcher, { withTheme } from './ThemeSwitcher';
4
4
  import { swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette } from './global';
5
+ import type { ShadowPalette } from './global/shadows/types';
6
+ import ehWorkShadowPalette from './global/shadows/ehWork';
7
+ import ehJobsShadowPalette from './global/shadows/ehJobs';
8
+ import ehWorkDarkShadowPalette from './global/shadows/ehWorkDark';
5
9
  import type { Theme } from './getTheme';
6
10
  declare const defaultTheme: Theme;
7
- export type { Theme };
8
- export { withTheme, getTheme, ThemeProvider, ThemeSwitcher, useTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette, };
11
+ export type { ShadowPalette, Theme };
12
+ export { withTheme, getTheme, ThemeProvider, ThemeSwitcher, useTheme, swagSystemPalette, swagLightSystemPalette, swagLightJobsSystemPalette, swagDarkSystemPalette, workSystemPalette, jobsSystemPalette, walletSystemPalette, eBensSystemPalette, ehWorkDarkSystemPalette, ehWorkSystemPalette, ehJobsSystemPalette, ehWorkShadowPalette, ehJobsShadowPalette, ehWorkDarkShadowPalette, };
9
13
  export default defaultTheme;