@helpwave/hightide-native 0.0.5 → 0.0.7

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 (61) hide show
  1. package/package.json +4 -3
  2. package/src/components/chat/ChatAttachmentCard.tsx +4 -4
  3. package/src/components/chat/ChatConversationList.tsx +3 -3
  4. package/src/components/chat/ChatConversationRow.tsx +3 -3
  5. package/src/components/chat/ChatDateDivider.tsx +3 -3
  6. package/src/components/chat/ChatMessageBubble.tsx +3 -3
  7. package/src/components/chat/ChatMessageCard.tsx +4 -4
  8. package/src/components/chat/ChatMessageComposer.tsx +4 -4
  9. package/src/components/chat/ChatMessageList.tsx +3 -3
  10. package/src/components/chat/ChatQuickReplyChip.tsx +3 -3
  11. package/src/components/chat/ChatSystemLine.tsx +4 -4
  12. package/src/components/chat/ChatThreadHeader.tsx +3 -3
  13. package/src/components/menu/Menu.tsx +3 -3
  14. package/src/components/menu/MenuActionItem.tsx +3 -3
  15. package/src/components/menu/MenuItem.tsx +3 -3
  16. package/src/components/menu/MenuNavigationItem.tsx +3 -3
  17. package/src/components/user-interaction/Button.tsx +4 -4
  18. package/src/components/user-interaction/Checkbox.tsx +5 -5
  19. package/src/components/user-interaction/IconButton.tsx +5 -5
  20. package/src/components/user-interaction/Input.tsx +4 -4
  21. package/src/components/user-interaction/MultiSelect.tsx +6 -6
  22. package/src/components/user-interaction/Select.tsx +4 -4
  23. package/src/components/visualization-and-display/Avatar.tsx +286 -0
  24. package/src/components/visualization-and-display/Chip.tsx +4 -4
  25. package/src/components/visualization-and-display/Icon.tsx +1 -1
  26. package/src/components/visualization-and-display/index.ts +1 -0
  27. package/src/global-contexts/HightideProvider.tsx +5 -5
  28. package/src/global-contexts/hightide-config/HightideConfigUtils.ts +4 -4
  29. package/src/global-contexts/localization/LocalizationProvider.tsx +2 -2
  30. package/src/global-contexts/theme/ThemeContext.ts +3 -3
  31. package/src/global-contexts/theme/ThemeProvider.tsx +7 -7
  32. package/src/theme/resolvers/avatar.ts +231 -0
  33. package/src/theme/resolvers/button.ts +6 -6
  34. package/src/theme/resolvers/chat.ts +6 -6
  35. package/src/theme/resolvers/checkbox.ts +4 -4
  36. package/src/theme/resolvers/chip.ts +6 -6
  37. package/src/theme/resolvers/coloring.ts +4 -4
  38. package/src/theme/resolvers/iconButton.ts +6 -6
  39. package/src/theme/resolvers/index.ts +1 -0
  40. package/src/theme/resolvers/input.ts +4 -4
  41. package/src/theme/resolvers/menu.ts +4 -4
  42. package/src/theme/resolvers/multiSelect.ts +4 -4
  43. package/src/theme/resolvers/select.ts +4 -4
  44. package/src/theme/themes/{createTheme.ts → createHightideTheme.ts} +16 -14
  45. package/src/theme/themes/hightideThemes.ts +14 -0
  46. package/src/theme/themes/index.ts +2 -2
  47. package/src/theme/types/components/avatar.ts +77 -0
  48. package/src/theme/types/components/button.ts +2 -2
  49. package/src/theme/types/components/chat.ts +3 -3
  50. package/src/theme/types/components/checkbox.ts +2 -2
  51. package/src/theme/types/components/chip.ts +2 -2
  52. package/src/theme/types/components/hightide.ts +12 -10
  53. package/src/theme/types/components/iconButton.ts +3 -3
  54. package/src/theme/types/components/index.ts +1 -0
  55. package/src/theme/types/components/input.ts +2 -2
  56. package/src/theme/types/components/menu.ts +2 -2
  57. package/src/theme/types/components/multiSelect.ts +3 -3
  58. package/src/theme/types/components/select.ts +2 -2
  59. package/src/theme/types/layout.ts +12 -0
  60. package/src/theme/types/theme.ts +20 -11
  61. package/src/theme/themes/nativeThemes.ts +0 -16
@@ -8,21 +8,21 @@ import {
8
8
  fontWeights
9
9
  } from '@helpwave/hightide-design/tokens'
10
10
  import type {
11
- HightideDesignTokens as DesignTokensTheme,
11
+ HightideThemeTokens as DesignTokensTheme,
12
12
  ElementSize
13
13
  } from '@helpwave/hightide-design/types'
14
14
 
15
15
  import {
16
16
  isOutlineColoringStyle,
17
17
  resolveColoringStyles
18
- } from '@/src/theme/resolvers/coloring'
19
- import type { HightideSemanticColors } from '@/src/theme/types/color'
18
+ } from './coloring'
19
+ import type { HightideSemanticColors } from '../types/color'
20
20
  import type {
21
21
  ButtonState,
22
22
  ButtonTheme
23
- } from '@/src/theme/types/components/button'
24
- import type { HightideComponentThemes } from '@/src/theme/types/components/hightide'
25
- import { createStyleResolver } from '@/src/theme/types/resolver'
23
+ } from '../types/components/button'
24
+ import type { HightideComponentThemes } from '../types/components/hightide'
25
+ import { createStyleResolver } from '../types/resolver'
26
26
 
27
27
  const buttonFontSizes: Record<ElementSize, number> = {
28
28
  xs: 12,
@@ -4,17 +4,17 @@ import {
4
4
  type ViewStyle
5
5
  } from 'react-native'
6
6
 
7
- import { hexWithAlpha } from '@helpwave/hightide-design/helpers'
7
+ import { hexWithAlpha } from '@helpwave/hightide-design/utils'
8
8
  import { fontWeights } from '@helpwave/hightide-design/tokens'
9
9
  import type {
10
10
  ComponentColorTokens,
11
- HightideDesignTokens as DesignTokensTheme
11
+ HightideThemeTokens as DesignTokensTheme
12
12
  } from '@helpwave/hightide-design/types'
13
13
 
14
14
  import type {
15
15
  Color,
16
16
  HightideSemanticColors
17
- } from '@/src/theme/types/color'
17
+ } from '../types/color'
18
18
  import type {
19
19
  ChatAttachmentCardState,
20
20
  ChatConversationRowState,
@@ -23,12 +23,12 @@ import type {
23
23
  ChatQuickReplyChipState,
24
24
  ChatSystemLineState,
25
25
  ChatTheme
26
- } from '@/src/theme/types/components/chat'
27
- import type { HightideComponentThemes } from '@/src/theme/types/components/hightide'
26
+ } from '../types/components/chat'
27
+ import type { HightideComponentThemes } from '../types/components/hightide'
28
28
  import {
29
29
  createStyleResolver,
30
30
  createValueResolver
31
- } from '@/src/theme/types/resolver'
31
+ } from '../types/resolver'
32
32
 
33
33
  export type CreateChatThemeOptions = {
34
34
  semantic: HightideSemanticColors,
@@ -3,20 +3,20 @@ import type { ViewStyle } from 'react-native'
3
3
  import { componentLayouts } from '@helpwave/hightide-design/tokens'
4
4
  import type {
5
5
  ComponentColorTokens,
6
- HightideDesignTokens as DesignTokensTheme,
6
+ HightideThemeTokens as DesignTokensTheme,
7
7
  ElementSize
8
8
  } from '@helpwave/hightide-design/types'
9
9
 
10
- import type { HightideSemanticColors } from '@/src/theme/types/color'
10
+ import type { HightideSemanticColors } from '../types/color'
11
11
  import type {
12
12
  CheckboxSize,
13
13
  CheckboxState,
14
14
  CheckboxTheme
15
- } from '@/src/theme/types/components/checkbox'
15
+ } from '../types/components/checkbox'
16
16
  import {
17
17
  createStyleResolver,
18
18
  createValueResolver
19
- } from '@/src/theme/types/resolver'
19
+ } from '../types/resolver'
20
20
 
21
21
  const checkboxSizes: Record<CheckboxSize, number> = {
22
22
  sm: 20,
@@ -7,16 +7,16 @@ import {
7
7
  componentLayouts,
8
8
  fontWeights
9
9
  } from '@helpwave/hightide-design/tokens'
10
- import type { HightideDesignTokens as DesignTokensTheme } from '@helpwave/hightide-design/types'
10
+ import type { HightideThemeTokens as DesignTokensTheme } from '@helpwave/hightide-design/types'
11
11
 
12
- import { resolveColoringStyles } from '@/src/theme/resolvers/coloring'
13
- import type { HightideSemanticColors } from '@/src/theme/types/color'
12
+ import { resolveColoringStyles } from './coloring'
13
+ import type { HightideSemanticColors } from '../types/color'
14
14
  import type {
15
15
  ChipState,
16
16
  ChipTheme
17
- } from '@/src/theme/types/components/chip'
18
- import type { HightideComponentThemes } from '@/src/theme/types/components/hightide'
19
- import { createStyleResolver } from '@/src/theme/types/resolver'
17
+ } from '../types/components/chip'
18
+ import type { HightideComponentThemes } from '../types/components/hightide'
19
+ import { createStyleResolver } from '../types/resolver'
20
20
 
21
21
  export type CreateChipThemeOptions = {
22
22
  semantic: HightideSemanticColors,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  hexWithAlpha
3
- } from '@helpwave/hightide-design/helpers'
3
+ } from '@helpwave/hightide-design/utils'
4
4
  import { componentLayouts } from '@helpwave/hightide-design/tokens'
5
5
  import type {
6
6
  ButtonColoringStyle,
@@ -11,9 +11,9 @@ import type {
11
11
  import type {
12
12
  Color,
13
13
  HightideSemanticColors
14
- } from '@/src/theme/types/color'
15
- import type { ColoringDefinition } from '@/src/theme/types/components/hightide'
16
- import type { InteractionState } from '@/src/theme/types/resolver'
14
+ } from '../types/color'
15
+ import type { ColoringDefinition } from '../types/components/hightide'
16
+ import type { InteractionState } from '../types/resolver'
17
17
 
18
18
  export type ResolvedColoringStyles = {
19
19
  backgroundColor: Color | 'transparent',
@@ -1,22 +1,22 @@
1
1
  import type { ViewStyle } from 'react-native'
2
2
 
3
3
  import { componentLayouts } from '@helpwave/hightide-design/tokens'
4
- import type { HightideDesignTokens as DesignTokensTheme } from '@helpwave/hightide-design/types'
4
+ import type { HightideThemeTokens as DesignTokensTheme } from '@helpwave/hightide-design/types'
5
5
 
6
6
  import {
7
7
  isOutlineColoringStyle,
8
8
  resolveColoringStyles
9
- } from '@/src/theme/resolvers/coloring'
10
- import type { HightideSemanticColors } from '@/src/theme/types/color'
11
- import type { HightideComponentThemes } from '@/src/theme/types/components/hightide'
9
+ } from './coloring'
10
+ import type { HightideSemanticColors } from '../types/color'
11
+ import type { HightideComponentThemes } from '../types/components/hightide'
12
12
  import type {
13
13
  IconButtonState,
14
14
  IconButtonTheme
15
- } from '@/src/theme/types/components/iconButton'
15
+ } from '../types/components/iconButton'
16
16
  import {
17
17
  createStyleResolver,
18
18
  createValueResolver
19
- } from '@/src/theme/types/resolver'
19
+ } from '../types/resolver'
20
20
 
21
21
  export type CreateIconButtonThemeOptions = {
22
22
  semantic: HightideSemanticColors,
@@ -1,3 +1,4 @@
1
+ export * from './avatar'
1
2
  export * from './button'
2
3
  export * from './chat'
3
4
  export * from './checkbox'
@@ -3,18 +3,18 @@ import type { TextStyle } from 'react-native'
3
3
  import { componentLayouts } from '@helpwave/hightide-design/tokens'
4
4
  import type {
5
5
  ComponentColorTokens,
6
- HightideDesignTokens as DesignTokensTheme
6
+ HightideThemeTokens as DesignTokensTheme
7
7
  } from '@helpwave/hightide-design/types'
8
8
 
9
- import type { HightideSemanticColors } from '@/src/theme/types/color'
9
+ import type { HightideSemanticColors } from '../types/color'
10
10
  import type {
11
11
  InputState,
12
12
  InputTheme
13
- } from '@/src/theme/types/components/input'
13
+ } from '../types/components/input'
14
14
  import {
15
15
  createStyleResolver,
16
16
  createValueResolver
17
- } from '@/src/theme/types/resolver'
17
+ } from '../types/resolver'
18
18
 
19
19
  export type CreateInputThemeOptions = {
20
20
  semantic: HightideSemanticColors,
@@ -3,18 +3,18 @@ import { StyleSheet } from 'react-native'
3
3
  import { fontWeights } from '@helpwave/hightide-design/tokens'
4
4
  import type {
5
5
  ComponentColorTokens,
6
- HightideDesignTokens as DesignTokensTheme
6
+ HightideThemeTokens as DesignTokensTheme
7
7
  } from '@helpwave/hightide-design/types'
8
8
 
9
- import type { HightideSemanticColors } from '@/src/theme/types/color'
9
+ import type { HightideSemanticColors } from '../types/color'
10
10
  import type {
11
11
  MenuActionItemState,
12
12
  MenuTheme
13
- } from '@/src/theme/types/components/menu'
13
+ } from '../types/components/menu'
14
14
  import {
15
15
  createStyleResolver,
16
16
  createValueResolver
17
- } from '@/src/theme/types/resolver'
17
+ } from '../types/resolver'
18
18
 
19
19
  export type CreateMenuThemeOptions = {
20
20
  semantic: HightideSemanticColors,
@@ -1,19 +1,19 @@
1
1
  import { fontWeights } from '@helpwave/hightide-design/tokens'
2
2
  import type {
3
3
  ComponentColorTokens,
4
- HightideDesignTokens as DesignTokensTheme
4
+ HightideThemeTokens as DesignTokensTheme
5
5
  } from '@helpwave/hightide-design/types'
6
6
 
7
- import type { HightideSemanticColors } from '@/src/theme/types/color'
7
+ import type { HightideSemanticColors } from '../types/color'
8
8
  import type {
9
9
  MultiSelectOptionState,
10
10
  MultiSelectState,
11
11
  MultiSelectTheme
12
- } from '@/src/theme/types/components/multiSelect'
12
+ } from '../types/components/multiSelect'
13
13
  import {
14
14
  createStyleResolver,
15
15
  createValueResolver
16
- } from '@/src/theme/types/resolver'
16
+ } from '../types/resolver'
17
17
 
18
18
  export type CreateMultiSelectThemeOptions = {
19
19
  semantic: HightideSemanticColors,
@@ -1,19 +1,19 @@
1
1
  import { fontWeights } from '@helpwave/hightide-design/tokens'
2
2
  import type {
3
3
  ComponentColorTokens,
4
- HightideDesignTokens as DesignTokensTheme
4
+ HightideThemeTokens as DesignTokensTheme
5
5
  } from '@helpwave/hightide-design/types'
6
6
 
7
- import type { HightideSemanticColors } from '@/src/theme/types/color'
7
+ import type { HightideSemanticColors } from '../types/color'
8
8
  import type {
9
9
  SelectOptionState,
10
10
  SelectState,
11
11
  SelectTheme
12
- } from '@/src/theme/types/components/select'
12
+ } from '../types/components/select'
13
13
  import {
14
14
  createStyleResolver,
15
15
  createValueResolver
16
- } from '@/src/theme/types/resolver'
16
+ } from '../types/resolver'
17
17
 
18
18
  export type CreateSelectThemeOptions = {
19
19
  semantic: HightideSemanticColors,
@@ -1,23 +1,24 @@
1
1
  import type {
2
2
  ColorPaletteToken,
3
- HightideDesignTokens
3
+ HightideThemeTokens
4
4
  } from '@helpwave/hightide-design/types'
5
5
 
6
- import { createButtonThemeFromDesign } from '@/src/theme/resolvers/button'
7
- import { createChatThemeFromDesign } from '@/src/theme/resolvers/chat'
8
- import { createCheckboxThemeFromDesign } from '@/src/theme/resolvers/checkbox'
9
- import { createChipThemeFromDesign } from '@/src/theme/resolvers/chip'
10
- import { createIconButtonThemeFromDesign } from '@/src/theme/resolvers/iconButton'
11
- import { createInputThemeFromDesign } from '@/src/theme/resolvers/input'
12
- import { createMenuThemeFromDesign } from '@/src/theme/resolvers/menu'
13
- import { createMultiSelectThemeFromDesign } from '@/src/theme/resolvers/multiSelect'
14
- import { createSelectThemeFromDesign } from '@/src/theme/resolvers/select'
6
+ import { createAvatarThemeFromDesign } from '../resolvers/avatar'
7
+ import { createButtonThemeFromDesign } from '../resolvers/button'
8
+ import { createChatThemeFromDesign } from '../resolvers/chat'
9
+ import { createCheckboxThemeFromDesign } from '../resolvers/checkbox'
10
+ import { createChipThemeFromDesign } from '../resolvers/chip'
11
+ import { createIconButtonThemeFromDesign } from '../resolvers/iconButton'
12
+ import { createInputThemeFromDesign } from '../resolvers/input'
13
+ import { createMenuThemeFromDesign } from '../resolvers/menu'
14
+ import { createMultiSelectThemeFromDesign } from '../resolvers/multiSelect'
15
+ import { createSelectThemeFromDesign } from '../resolvers/select'
15
16
  import type {
16
17
  Color,
17
18
  ColorPalette,
18
19
  HightideColors
19
- } from '@/src/theme/types/color'
20
- import type { Theme } from '@/src/theme/types/theme'
20
+ } from '../types/color'
21
+ import type { HightideTheme } from '../types/theme'
21
22
 
22
23
  const unwrapColorPaletteToken = (token: ColorPaletteToken): Color | ColorPalette => {
23
24
  if (token.type === 'singleValue') {
@@ -26,7 +27,7 @@ const unwrapColorPaletteToken = (token: ColorPaletteToken): Color | ColorPalette
26
27
  return token.value
27
28
  }
28
29
 
29
- const unwrapColors = (colors: HightideDesignTokens['colors']): HightideColors & Record<string, Color | ColorPalette> => {
30
+ const unwrapColors = (colors: HightideThemeTokens['colors']): HightideColors & Record<string, Color | ColorPalette> => {
30
31
  const result: Record<string, Color | ColorPalette> = {}
31
32
  for (const [key, token] of Object.entries(colors)) {
32
33
  result[key] = unwrapColorPaletteToken(token)
@@ -34,7 +35,7 @@ const unwrapColors = (colors: HightideDesignTokens['colors']): HightideColors &
34
35
  return result as HightideColors & Record<string, Color | ColorPalette>
35
36
  }
36
37
 
37
- export const createTheme = (tokens: HightideDesignTokens): Theme => ({
38
+ export const createHightideTheme = (tokens: HightideThemeTokens): HightideTheme => ({
38
39
  colors: unwrapColors(tokens.colors),
39
40
  semantic: tokens.semanticColors,
40
41
  typography: tokens.typography,
@@ -51,5 +52,6 @@ export const createTheme = (tokens: HightideDesignTokens): Theme => ({
51
52
  multiSelect: createMultiSelectThemeFromDesign(tokens),
52
53
  chat: createChatThemeFromDesign(tokens),
53
54
  menu: createMenuThemeFromDesign(tokens),
55
+ avatar: createAvatarThemeFromDesign(tokens),
54
56
  },
55
57
  })
@@ -0,0 +1,14 @@
1
+ import { ThemeTokens as designThemes } from '@helpwave/hightide-design/tokens'
2
+ import { createHightideTheme } from './createHightideTheme'
3
+
4
+ export const lightTheme = createHightideTheme(designThemes.light)
5
+ export const darkTheme = createHightideTheme(designThemes.dark)
6
+
7
+ export const themes = {
8
+ light: lightTheme,
9
+ dark: darkTheme,
10
+ } as const
11
+
12
+ export type HightideThemeModes = 'dark' | 'light'
13
+
14
+ export type ThemeMode = string | HightideThemeModes
@@ -1,2 +1,2 @@
1
- export * from './createTheme'
2
- export * from './nativeThemes'
1
+ export * from './createHightideTheme'
2
+ export * from './hightideThemes'
@@ -0,0 +1,77 @@
1
+ import type {
2
+ ImageStyle,
3
+ TextStyle,
4
+ ViewStyle
5
+ } from 'react-native'
6
+
7
+ import type { ElementSize } from '@helpwave/hightide-design/types'
8
+
9
+ import type { StyleResolverFunction } from '../resolver'
10
+
11
+ export type AvatarStatus = 'online' | 'offline' | 'away' | 'busy' | 'unknown'
12
+
13
+ export type AvatarState = {
14
+ size?: ElementSize,
15
+ isGrouped?: boolean,
16
+ groupIndex?: number,
17
+ }
18
+
19
+ export type AvatarWithStatusState = {
20
+ size?: ElementSize,
21
+ status?: AvatarStatus,
22
+ }
23
+
24
+ export type AvatarWithLabelState = {
25
+ size?: ElementSize,
26
+ }
27
+
28
+ export type AvatarGroupState = {
29
+ size?: ElementSize,
30
+ count?: number,
31
+ }
32
+
33
+ export type AvatarStyle = ViewStyle
34
+
35
+ export type AvatarImageStyle = ImageStyle
36
+
37
+ export type AvatarTextStyle = TextStyle
38
+
39
+ export type AvatarIconStyle = {
40
+ size: number,
41
+ strokeWidth: number,
42
+ color: string,
43
+ }
44
+
45
+ export type AvatarStatusDotStyle = ViewStyle
46
+
47
+ export type AvatarWithStatusContainerStyle = ViewStyle
48
+
49
+ export type AvatarWithLabelContainerStyle = ViewStyle
50
+
51
+ export type AvatarWithLabelTextStyle = TextStyle
52
+
53
+ export type AvatarGroupContainerStyle = ViewStyle
54
+
55
+ export type AvatarGroupStackStyle = ViewStyle
56
+
57
+ export type AvatarGroupMoreStyle = TextStyle
58
+
59
+ export type AvatarTheme = {
60
+ avatar: StyleResolverFunction<AvatarState, AvatarStyle>,
61
+ image: StyleResolverFunction<AvatarState, AvatarImageStyle>,
62
+ text: StyleResolverFunction<AvatarState, AvatarTextStyle>,
63
+ icon: StyleResolverFunction<AvatarState, AvatarIconStyle>,
64
+ withStatus: {
65
+ container: StyleResolverFunction<AvatarWithStatusState, AvatarWithStatusContainerStyle>,
66
+ statusDot: StyleResolverFunction<AvatarWithStatusState, AvatarStatusDotStyle>,
67
+ },
68
+ withLabel: {
69
+ container: StyleResolverFunction<AvatarWithLabelState, AvatarWithLabelContainerStyle>,
70
+ text: StyleResolverFunction<AvatarWithLabelState, AvatarWithLabelTextStyle>,
71
+ },
72
+ group: {
73
+ container: StyleResolverFunction<AvatarGroupState, AvatarGroupContainerStyle>,
74
+ stack: StyleResolverFunction<AvatarGroupState, AvatarGroupStackStyle>,
75
+ more: StyleResolverFunction<AvatarGroupState, AvatarGroupMoreStyle>,
76
+ },
77
+ }
@@ -3,7 +3,7 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { ColoringType } from '@helpwave/hightide-design/helpers'
6
+ import type { ColoringType } from '@helpwave/hightide-design/utils'
7
7
  import type {
8
8
  ButtonColoringStyle,
9
9
  ElementSize
@@ -12,7 +12,7 @@ import type {
12
12
  import type {
13
13
  InteractionState,
14
14
  StyleResolverFunction
15
- } from '@/src/theme/types/resolver'
15
+ } from '../resolver'
16
16
 
17
17
  export type ButtonState = InteractionState & {
18
18
  size?: ElementSize,
@@ -3,13 +3,13 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { ColoringType } from '@helpwave/hightide-design/helpers'
6
+ import type { ColoringType } from '@helpwave/hightide-design/utils'
7
7
 
8
- import type { Color } from '@/src/theme/types/color'
8
+ import type { Color } from '../color'
9
9
  import type {
10
10
  InteractionState,
11
11
  StyleResolverFunction
12
- } from '@/src/theme/types/resolver'
12
+ } from '../resolver'
13
13
 
14
14
  export type ChatMessageDirection = 'incoming' | 'outgoing'
15
15
 
@@ -2,11 +2,11 @@ import type { ViewStyle } from 'react-native'
2
2
 
3
3
  import type { ElementSize } from '@helpwave/hightide-design/types'
4
4
 
5
- import type { Color } from '@/src/theme/types/color'
5
+ import type { Color } from '../color'
6
6
  import type {
7
7
  InteractionState,
8
8
  StyleResolverFunction
9
- } from '@/src/theme/types/resolver'
9
+ } from '../resolver'
10
10
 
11
11
  export type CheckboxSize = 'sm' | 'md' | 'lg'
12
12
 
@@ -3,7 +3,7 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { ColoringType } from '@helpwave/hightide-design/helpers'
6
+ import type { ColoringType } from '@helpwave/hightide-design/utils'
7
7
  import type {
8
8
  ChipColoringStyle,
9
9
  ElementSize
@@ -12,7 +12,7 @@ import type {
12
12
  import type {
13
13
  InteractionState,
14
14
  StyleResolverFunction
15
- } from '@/src/theme/types/resolver'
15
+ } from '../resolver'
16
16
 
17
17
  export type ChipState = InteractionState & {
18
18
  size?: ElementSize,
@@ -1,13 +1,14 @@
1
- import type { Color } from '@/src/theme/types/color'
2
- import type { ButtonTheme } from '@/src/theme/types/components/button'
3
- import type { ChatTheme } from '@/src/theme/types/components/chat'
4
- import type { CheckboxTheme } from '@/src/theme/types/components/checkbox'
5
- import type { ChipTheme } from '@/src/theme/types/components/chip'
6
- import type { IconButtonTheme } from '@/src/theme/types/components/iconButton'
7
- import type { InputTheme } from '@/src/theme/types/components/input'
8
- import type { MenuTheme } from '@/src/theme/types/components/menu'
9
- import type { MultiSelectTheme } from '@/src/theme/types/components/multiSelect'
10
- import type { SelectTheme } from '@/src/theme/types/components/select'
1
+ import type { Color } from '../color'
2
+ import type { AvatarTheme } from './avatar'
3
+ import type { ButtonTheme } from './button'
4
+ import type { ChatTheme } from './chat'
5
+ import type { CheckboxTheme } from './checkbox'
6
+ import type { ChipTheme } from './chip'
7
+ import type { IconButtonTheme } from './iconButton'
8
+ import type { InputTheme } from './input'
9
+ import type { MenuTheme } from './menu'
10
+ import type { MultiSelectTheme } from './multiSelect'
11
+ import type { SelectTheme } from './select'
11
12
 
12
13
  export type ColoringDefinition = {
13
14
  color: Color,
@@ -39,4 +40,5 @@ export type HightideComponentThemes = {
39
40
  multiSelect: MultiSelectTheme,
40
41
  chat: ChatTheme,
41
42
  menu: MenuTheme,
43
+ avatar: AvatarTheme,
42
44
  }
@@ -1,16 +1,16 @@
1
1
  import type { ViewStyle } from 'react-native'
2
2
 
3
- import type { ColoringType } from '@helpwave/hightide-design/helpers'
3
+ import type { ColoringType } from '@helpwave/hightide-design/utils'
4
4
  import type {
5
5
  ButtonColoringStyle,
6
6
  ElementSize
7
7
  } from '@helpwave/hightide-design/types'
8
8
 
9
- import type { Color } from '@/src/theme/types/color'
9
+ import type { Color } from '../color'
10
10
  import type {
11
11
  InteractionState,
12
12
  StyleResolverFunction
13
- } from '@/src/theme/types/resolver'
13
+ } from '../resolver'
14
14
 
15
15
  export type IconButtonState = InteractionState & {
16
16
  size?: ElementSize,
@@ -1,3 +1,4 @@
1
+ export * from './avatar'
1
2
  export * from './button'
2
3
  export * from './chat'
3
4
  export * from './checkbox'
@@ -1,10 +1,10 @@
1
1
  import type { TextStyle } from 'react-native'
2
2
 
3
- import type { Color } from '@/src/theme/types/color'
3
+ import type { Color } from '../color'
4
4
  import type {
5
5
  InteractionState,
6
6
  StyleResolverFunction
7
- } from '@/src/theme/types/resolver'
7
+ } from '../resolver'
8
8
 
9
9
  export type InputState = InteractionState & {
10
10
  isInvalid?: boolean,
@@ -3,11 +3,11 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { Color } from '@/src/theme/types/color'
6
+ import type { Color } from '../color'
7
7
  import type {
8
8
  InteractionState,
9
9
  StyleResolverFunction
10
- } from '@/src/theme/types/resolver'
10
+ } from '../resolver'
11
11
 
12
12
  export type MenuSectionStyle = ViewStyle
13
13
 
@@ -3,7 +3,7 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { Color } from '@/src/theme/types/color'
6
+ import type { Color } from '../color'
7
7
  import type {
8
8
  SelectMenuStyle,
9
9
  SelectOptionState,
@@ -11,8 +11,8 @@ import type {
11
11
  SelectSearchStyle,
12
12
  SelectState,
13
13
  SelectTriggerTextStyle
14
- } from '@/src/theme/types/components/select'
15
- import type { StyleResolverFunction } from '@/src/theme/types/resolver'
14
+ } from './select'
15
+ import type { StyleResolverFunction } from '../resolver'
16
16
 
17
17
  export type MultiSelectState = SelectState & {
18
18
  hasSelections?: boolean,
@@ -3,11 +3,11 @@ import type {
3
3
  ViewStyle
4
4
  } from 'react-native'
5
5
 
6
- import type { Color } from '@/src/theme/types/color'
6
+ import type { Color } from '../color'
7
7
  import type {
8
8
  InteractionState,
9
9
  StyleResolverFunction
10
- } from '@/src/theme/types/resolver'
10
+ } from '../resolver'
11
11
 
12
12
  export type SelectState = InteractionState & {
13
13
  isInvalid?: boolean,
@@ -43,4 +43,16 @@ export type HightideLayout = {
43
43
  borderRadius: number,
44
44
  fontSize: number,
45
45
  }>,
46
+ avatar: Record<ElementSize, {
47
+ size: number,
48
+ padding: number,
49
+ fontSize: number,
50
+ statusDotSize: number,
51
+ statusDotBorderWidth: number,
52
+ }>,
53
+ avatarGroup: {
54
+ overlap: number,
55
+ maxShown: number,
56
+ gap: number,
57
+ },
46
58
  }