@helpwave/hightide-native 0.1.1 → 0.3.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 (65) hide show
  1. package/package.json +2 -2
  2. package/src/components/chat/ChatAttachmentMessageBubble.tsx +3 -0
  3. package/src/components/chat/ChatConversationRow.tsx +127 -27
  4. package/src/components/chat/ChatQuickReplyChip.tsx +7 -1
  5. package/src/components/chat/ChatThreadHeader.tsx +88 -48
  6. package/src/components/list/ListActionItem.tsx +60 -11
  7. package/src/components/list/ListItem.tsx +47 -21
  8. package/src/components/list/ListItemAccessory.tsx +34 -0
  9. package/src/components/list/ListItemTextContent.tsx +53 -0
  10. package/src/components/list/ListNavigationItem.tsx +60 -16
  11. package/src/components/list/index.ts +2 -0
  12. package/src/components/user-interaction/Button.tsx +6 -15
  13. package/src/components/user-interaction/IconButton.tsx +5 -7
  14. package/src/components/user-interaction/MultiSelect.tsx +72 -46
  15. package/src/components/user-interaction/Select.tsx +5 -1
  16. package/src/components/user-interaction/ThemedPressable.tsx +9 -4
  17. package/src/components/visualization-and-display/Chip.tsx +12 -5
  18. package/src/components/visualization-and-display/ThemedIcon.tsx +12 -8
  19. package/src/components/visualization-and-display/ThemedText.tsx +6 -2
  20. package/src/global-contexts/HightideProvider.tsx +9 -17
  21. package/src/global-contexts/content-theme/ContentThemeContext.ts +5 -2
  22. package/src/global-contexts/content-theme/ContentThemeProvider.tsx +64 -10
  23. package/src/global-contexts/theme/ThemeProvider.tsx +9 -4
  24. package/src/theme/adapters/index.ts +1 -4
  25. package/src/theme/adapters/style-adapter-utils.ts +433 -0
  26. package/src/theme/resolvers/avatar.ts +9 -10
  27. package/src/theme/resolvers/button.ts +6 -7
  28. package/src/theme/resolvers/card.ts +3 -2
  29. package/src/theme/resolvers/chat/attachment-message-bubble.ts +25 -37
  30. package/src/theme/resolvers/chat/conversation-list.ts +5 -4
  31. package/src/theme/resolvers/chat/conversation-row.ts +114 -14
  32. package/src/theme/resolvers/chat/date-divider.ts +4 -4
  33. package/src/theme/resolvers/chat/message-bubble.ts +9 -10
  34. package/src/theme/resolvers/chat/message-composer.ts +5 -6
  35. package/src/theme/resolvers/chat/message-list.ts +3 -2
  36. package/src/theme/resolvers/chat/quick-reply-chip.ts +12 -20
  37. package/src/theme/resolvers/chat/system-line.ts +5 -6
  38. package/src/theme/resolvers/chat/thread-header.ts +60 -12
  39. package/src/theme/resolvers/checkbox.ts +6 -6
  40. package/src/theme/resolvers/chip.ts +9 -4
  41. package/src/theme/resolvers/divider.ts +3 -3
  42. package/src/theme/resolvers/iconButton.ts +5 -10
  43. package/src/theme/resolvers/input.ts +12 -7
  44. package/src/theme/resolvers/listItem.ts +19 -16
  45. package/src/theme/resolvers/multiSelect.ts +23 -16
  46. package/src/theme/resolvers/searchBar.ts +14 -7
  47. package/src/theme/resolvers/select.ts +22 -15
  48. package/src/theme/resolvers/switch.ts +5 -4
  49. package/src/theme/resolvers/themedPressable.ts +10 -5
  50. package/src/theme/themes/createHightideTheme.ts +13 -4
  51. package/src/theme/types/components/chat.ts +63 -3
  52. package/src/theme/types/components/chip.ts +4 -0
  53. package/src/theme/types/components/iconButton.ts +1 -7
  54. package/src/theme/types/components/listItem.ts +5 -0
  55. package/src/theme/types/components/multiSelect.ts +1 -0
  56. package/src/theme/types/components/select.ts +1 -0
  57. package/src/theme/types/components/themedPressable.ts +4 -0
  58. package/src/theme/types/layout.ts +13 -7
  59. package/src/theme/types/semantics.ts +2 -1
  60. package/src/theme/types/theme.ts +40 -12
  61. package/src/theme/types/typography.ts +9 -4
  62. package/src/theme/adapters/container-adapter.ts +0 -323
  63. package/src/theme/adapters/defined.ts +0 -11
  64. package/src/theme/adapters/icon-style-adapter.ts +0 -10
  65. package/src/theme/adapters/text-style-adapter.ts +0 -16
@@ -2,7 +2,6 @@ import type {
2
2
  SwitchState as DesignSwitchState,
3
3
  SwitchStateValue
4
4
  } from '@helpwave/hightide-design/component-token-resolvers'
5
- import { toContainerStyle } from '../adapters/container-adapter'
6
5
  import type {
7
6
  SwitchContainerStyle,
8
7
  SwitchState,
@@ -15,6 +14,8 @@ import {
15
14
  type ComponentThemeResolver
16
15
  } from '../types/resolver'
17
16
 
17
+ import { StyleAdapterUtils } from '../adapters'
18
+
18
19
  const toDesignSwitchState = (state: SwitchState = {}): DesignSwitchState => {
19
20
  const active = new Set<SwitchStateValue>()
20
21
 
@@ -59,13 +60,13 @@ export const toSwitchThemeResolvers: ComponentThemeResolver<SwitchThemeResolvers
59
60
 
60
61
  return {
61
62
  container: createStyleResolver((state: SwitchState): SwitchContainerStyle => (
62
- toContainerStyle(resolve(state).container)
63
+ StyleAdapterUtils.container(resolve(state).container)
63
64
  )),
64
65
  track: createStyleResolver((state: SwitchState): SwitchTrackStyle => (
65
- toContainerStyle(resolve(state).track)
66
+ StyleAdapterUtils.container(resolve(state).track)
66
67
  )),
67
68
  thumb: createStyleResolver((state: SwitchState): SwitchThumbStyle => (
68
- toContainerStyle(resolve(state).thumb)
69
+ StyleAdapterUtils.container(resolve(state).thumb)
69
70
  )),
70
71
  }
71
72
  }
@@ -1,6 +1,5 @@
1
- import { toContainerStyle } from '../adapters/container-adapter'
2
- import { toTextStyle } from '../adapters/text-style-adapter'
3
1
  import type {
2
+ ThemedPressableIconStyle,
4
3
  ThemedPressableState,
5
4
  ThemedPressableStyle,
6
5
  ThemedPressableTextStyle,
@@ -8,10 +7,13 @@ import type {
8
7
  } from '../types/components/themedPressable'
9
8
  import {
10
9
  createStyleResolver,
10
+ createValueResolver,
11
11
  toPressableInteractionState,
12
12
  type ComponentThemeResolver
13
13
  } from '../types/resolver'
14
14
 
15
+ import { StyleAdapterUtils } from '../adapters'
16
+
15
17
  export const toThemedPressableThemeResolvers: ComponentThemeResolver<ThemedPressableThemeResolvers> = ({
16
18
  themeTokens,
17
19
  semanticTokens,
@@ -32,14 +34,14 @@ export const toThemedPressableThemeResolvers: ComponentThemeResolver<ThemedPress
32
34
 
33
35
  return {
34
36
  container: createStyleResolver((state: ThemedPressableState): ThemedPressableStyle => ({
35
- ...toContainerStyle(resolve(state).container),
37
+ ...StyleAdapterUtils.container(resolve(state).container),
36
38
  alignSelf: 'flex-start',
37
39
  })),
38
40
  stateLayer: createStyleResolver((state: ThemedPressableState): ThemedPressableStyle => {
39
41
  const tokens = resolve(state)
40
42
 
41
43
  return {
42
- ...toContainerStyle(tokens.stateLayer),
44
+ ...StyleAdapterUtils.container(tokens.stateLayer),
43
45
  position: 'absolute',
44
46
  top: 0,
45
47
  right: 0,
@@ -47,8 +49,11 @@ export const toThemedPressableThemeResolvers: ComponentThemeResolver<ThemedPress
47
49
  left: 0,
48
50
  }
49
51
  }),
52
+ icon: createValueResolver((state: ThemedPressableState): ThemedPressableIconStyle => (
53
+ StyleAdapterUtils.icon(resolve(state).icon)
54
+ )),
50
55
  text: createStyleResolver((state: ThemedPressableState): ThemedPressableTextStyle => (
51
- toTextStyle(resolve(state).text)
56
+ StyleAdapterUtils.text(resolve(state).text)
52
57
  )),
53
58
  }
54
59
  }
@@ -58,6 +58,7 @@ const resolveElementLayouts = (themeTokens: ThemeTokens): ElementLayoutTokens =>
58
58
  })
59
59
 
60
60
  const bindSemantics = (themeTokens: ThemeTokens): HightideThemeSemantics => ({
61
+ ...resolveElementLayouts(themeTokens),
61
62
  coloringColorVariant: (parameter) => hightideSemanticTokenResolvers.coloringColorVariant({
62
63
  themeTokens,
63
64
  ...parameter,
@@ -114,19 +115,27 @@ const bindSemantics = (themeTokens: ThemeTokens): HightideThemeSemantics => ({
114
115
 
115
116
  export const createHightideTheme = (themeTokens: ThemeTokens): HightideTheme => ({
116
117
  colors: themeTokens.color,
117
- semantics: bindSemantics(themeTokens),
118
+ fontFamilies: themeTokens.fontFamilies,
119
+ fontWeights: themeTokens.fontWeights,
120
+ fontSizing: themeTokens.fontSizing,
118
121
  typography: themeTokens.typography,
119
122
  icongraphy: themeTokens.icongraphy,
123
+ size: themeTokens.size,
120
124
  spacing: themeTokens.spacing,
121
- elements: resolveElementLayouts(themeTokens),
122
- borderRadius: themeTokens.shape.borderRadius,
123
- border: themeTokens.borderWidth,
125
+ padding: themeTokens.padding,
126
+ borderRadius: themeTokens.borderRadius,
127
+ borderWidth: themeTokens.borderWidth,
128
+ elevation: themeTokens.elevation,
124
129
  shadow: {
125
130
  raised: themeTokens.elevation.level1,
126
131
  container: themeTokens.elevation.level2,
127
132
  popover: themeTokens.elevation.level3,
128
133
  dialog: themeTokens.elevation.level4,
129
134
  },
135
+ motion: themeTokens.motion,
136
+ focusOutline: themeTokens.focusOutline,
137
+ config: themeTokens.config,
138
+ semantics: bindSemantics(themeTokens),
130
139
  components: {
131
140
  button: toButtonThemeResolvers({
132
141
  themeTokens,
@@ -24,12 +24,15 @@ export type ChatConversationRowState = InteractionState & {
24
24
  isSelected?: boolean,
25
25
  }
26
26
 
27
- export type ChatConversationRowStyle = ViewStyle
27
+ export type ChatConversationRowContentContainerStyle = ViewStyle
28
+ export type ChatConversationRowHeaderRowStyle = ViewStyle
29
+ export type ChatConversationRowMessageRowStyle = ViewStyle
28
30
  export type ChatConversationRowTitleStyle = TextStyle
29
31
  export type ChatConversationRowTimestampStyle = TextStyle
30
32
  export type ChatConversationRowPreviewStyle = TextStyle
31
33
  export type ChatConversationRowUnreadBadgeStyle = ViewStyle
32
34
  export type ChatConversationRowUnreadBadgeTextStyle = TextStyle
35
+ export type ChatConversationRowSentIndicatorStyle = IconStyle
33
36
 
34
37
  export type ChatConversationListStyle = ViewStyle
35
38
  export type ChatConversationListHeaderStyle = ViewStyle
@@ -61,6 +64,7 @@ export type ChatAttachmentMessageBubbleState = {
61
64
  export type PressableContainerStyle = ViewStyle
62
65
  export type PressableStateLayerStyle = ViewStyle
63
66
  export type PressableTextStyle = TextStyle
67
+ export type PressableIconStyle = IconStyle
64
68
 
65
69
  export type PressableState = ThemedPressableState
66
70
 
@@ -91,13 +95,40 @@ export type ChatMessageComposerStyle = ViewStyle
91
95
  export type ChatMessageComposerInputStyle = ViewStyle & TextStyle
92
96
 
93
97
  export type ChatConversationRowThemeResolvers = {
94
- container: StyleResolverFunction<ChatConversationRowState, ChatConversationRowStyle>,
98
+ pressable: StyleResolverFunction<
99
+ ChatConversationRowState,
100
+ {
101
+ container: StyleResolverFunction<
102
+ PressableState,
103
+ PressableContainerStyle
104
+ >,
105
+ stateLayer: StyleResolverFunction<
106
+ PressableState,
107
+ PressableStateLayerStyle
108
+ >,
109
+ text: StyleResolverFunction<
110
+ PressableState,
111
+ PressableTextStyle
112
+ >,
113
+ icon: StyleResolverFunction<
114
+ PressableState,
115
+ PressableIconStyle
116
+ >,
117
+ }
118
+ >,
119
+ contentContainer: StyleResolverFunction<ChatConversationRowState, ChatConversationRowContentContainerStyle>,
120
+ headerRow: StyleResolverFunction<ChatConversationRowState, ChatConversationRowHeaderRowStyle>,
121
+ messageRow: StyleResolverFunction<ChatConversationRowState, ChatConversationRowMessageRowStyle>,
95
122
  title: StyleResolverFunction<ChatConversationRowState, ChatConversationRowTitleStyle>,
96
123
  timestamp: StyleResolverFunction<ChatConversationRowState, ChatConversationRowTimestampStyle>,
97
124
  preview: StyleResolverFunction<ChatConversationRowState, ChatConversationRowPreviewStyle>,
98
125
  unreadBadge: StyleResolverFunction<Record<string, never>, ChatConversationRowUnreadBadgeStyle>,
99
126
  unreadBadgeText: StyleResolverFunction<Record<string, never>, ChatConversationRowUnreadBadgeTextStyle>,
100
- sentIndicator: StyleResolverFunction<Record<string, never>, ChatMessageBubbleMetaDataIconStyle>,
127
+ sentIndicator: StyleResolverFunction<Record<string, never>, ChatConversationRowSentIndicatorStyle>,
128
+ avatar: StyleResolverFunction<
129
+ AvatarState,
130
+ AvatarThemeResolvers
131
+ >,
101
132
  }
102
133
 
103
134
  export type ChatConversationListThemeResolvers = {
@@ -115,6 +146,27 @@ export type ChatThreadHeaderThemeResolvers = {
115
146
  AvatarState,
116
147
  AvatarThemeResolvers
117
148
  >,
149
+ pressable: StyleResolverFunction<
150
+ Record<string, never>,
151
+ {
152
+ container: StyleResolverFunction<
153
+ PressableState,
154
+ PressableContainerStyle
155
+ >,
156
+ stateLayer: StyleResolverFunction<
157
+ PressableState,
158
+ PressableStateLayerStyle
159
+ >,
160
+ text: StyleResolverFunction<
161
+ PressableState,
162
+ PressableTextStyle
163
+ >,
164
+ icon: StyleResolverFunction<
165
+ PressableState,
166
+ PressableIconStyle
167
+ >,
168
+ }
169
+ >,
118
170
  }
119
171
 
120
172
  export type ChatMessageListThemeResolvers = {
@@ -158,6 +210,10 @@ export type ChatAttachmentMessageBubbleThemeResolvers = {
158
210
  PressableState,
159
211
  PressableTextStyle
160
212
  >,
213
+ icon: StyleResolverFunction<
214
+ PressableState,
215
+ PressableIconStyle
216
+ >,
161
217
  }
162
218
  >,
163
219
  fileIconContainer: StyleResolverFunction<ChatAttachmentMessageBubbleState, ChatAttachmentMessageBubbleFileIconContainerStyle>,
@@ -195,6 +251,10 @@ export type ChatQuickReplyChipThemeResolvers = {
195
251
  PressableState,
196
252
  PressableTextStyle
197
253
  >,
254
+ icon: StyleResolverFunction<
255
+ PressableState,
256
+ PressableIconStyle
257
+ >,
198
258
  }
199
259
  >,
200
260
  }
@@ -7,6 +7,7 @@ import type { ColorPairToken } from '@helpwave/hightide-design/theme-tokens'
7
7
  import type { ChipVariant, ComponentSize } from '@helpwave/hightide-design/semantic-token-resolvers'
8
8
 
9
9
  import type { StyleResolverFunction } from '../resolver'
10
+ import type { IconStyle } from '../../../icons'
10
11
 
11
12
  export type ChipState = {
12
13
  size?: ComponentSize,
@@ -18,7 +19,10 @@ export type ChipStyle = ViewStyle
18
19
 
19
20
  export type ChipTextStyle = TextStyle
20
21
 
22
+ export type ChipIconStyle = IconStyle
23
+
21
24
  export type ChipThemeResolvers = {
22
25
  chip: StyleResolverFunction<ChipState, ChipStyle>,
26
+ icon: StyleResolverFunction<ChipState, ChipIconStyle>,
23
27
  text: StyleResolverFunction<ChipState, ChipTextStyle>,
24
28
  }
@@ -1,7 +1,4 @@
1
- import type {
2
- TextStyle,
3
- ViewStyle
4
- } from 'react-native'
1
+ import type { ViewStyle } from 'react-native'
5
2
 
6
3
  import type { ColorPairToken } from '@helpwave/hightide-design/theme-tokens'
7
4
  import type {
@@ -25,11 +22,8 @@ export type IconButtonStyle = ViewStyle
25
22
 
26
23
  export type IconButtonIconStyle = IconStyle
27
24
 
28
- export type IconButtonTextStyle = TextStyle
29
-
30
25
  export type IconButtonThemeResolvers = {
31
26
  container: StyleResolverFunction<IconButtonState, IconButtonStyle>,
32
27
  stateLayer: StyleResolverFunction<IconButtonState, IconButtonStyle>,
33
28
  icon: StyleResolverFunction<IconButtonState, IconButtonIconStyle>,
34
- text: StyleResolverFunction<IconButtonState, IconButtonTextStyle>,
35
29
  }
@@ -52,6 +52,8 @@ export type ListActionItemTrailingItemContainerStyle = ViewStyle
52
52
 
53
53
  export type ListActionItemTitleStyle = TextStyle
54
54
 
55
+ export type ListActionItemDescriptionStyle = TextStyle
56
+
55
57
  export type ListActionItemIconStyle = IconStyle
56
58
 
57
59
  export type ListActionItemThemeResolvers = {
@@ -60,6 +62,7 @@ export type ListActionItemThemeResolvers = {
60
62
  content: StyleResolverFunction<ListActionItemState, ListActionItemContentStyle>,
61
63
  trailingItemContainer: StyleResolverFunction<ListActionItemState, ListActionItemTrailingItemContainerStyle>,
62
64
  titleText: StyleResolverFunction<ListActionItemState, ListActionItemTitleStyle>,
65
+ descriptionText: StyleResolverFunction<ListActionItemState, ListActionItemDescriptionStyle>,
63
66
  icon: StyleResolverFunction<ListActionItemState, ListActionItemIconStyle>,
64
67
  }
65
68
 
@@ -75,6 +78,8 @@ export type ListNavigationItemTrailingItemContainerStyle = ListActionItemTrailin
75
78
 
76
79
  export type ListNavigationItemTitleStyle = ListActionItemTitleStyle
77
80
 
81
+ export type ListNavigationItemDescriptionStyle = ListActionItemDescriptionStyle
82
+
78
83
  export type ListNavigationItemIconStyle = ListActionItemIconStyle
79
84
 
80
85
  export type ListNavigationItemThemeResolvers = ListActionItemThemeResolvers
@@ -37,6 +37,7 @@ export type MultiSelectCheckboxIconStyle = IconStyle
37
37
 
38
38
  export type MultiSelectThemeResolvers = {
39
39
  trigger: StyleResolverFunction<MultiSelectState, MultiSelectTriggerStyle>,
40
+ stateLayer: StyleResolverFunction<MultiSelectState, MultiSelectTriggerStyle>,
40
41
  triggerText: StyleResolverFunction<MultiSelectState, SelectTriggerTextStyle>,
41
42
  overlay: SimpleStyleResolver<SelectOverlayStyle>,
42
43
  menu: StyleResolverFunction<SelectMenuState, SelectMenuStyle>,
@@ -48,6 +48,7 @@ export type SelectEmptyTextStyle = TextStyle
48
48
 
49
49
  export type SelectThemeResolvers = {
50
50
  trigger: StyleResolverFunction<SelectState, SelectTriggerStyle>,
51
+ stateLayer: StyleResolverFunction<SelectState, SelectTriggerStyle>,
51
52
  triggerText: StyleResolverFunction<SelectState, SelectTriggerTextStyle>,
52
53
  icon: StyleResolverFunction<SelectState, SelectIconStyle>,
53
54
  overlay: SimpleStyleResolver<SelectOverlayStyle>,
@@ -11,6 +11,7 @@ import type {
11
11
  InteractionState,
12
12
  StyleResolverFunction
13
13
  } from '../resolver'
14
+ import type { IconStyle } from '../../../icons'
14
15
 
15
16
  export type ThemedPressableState = InteractionState & {
16
17
  size?: ComponentSize,
@@ -24,8 +25,11 @@ export type ThemedPressableStyle = ViewStyle
24
25
 
25
26
  export type ThemedPressableTextStyle = TextStyle
26
27
 
28
+ export type ThemedPressableIconStyle = IconStyle
29
+
27
30
  export type ThemedPressableThemeResolvers = {
28
31
  container: StyleResolverFunction<ThemedPressableState, ThemedPressableStyle>,
29
32
  stateLayer: StyleResolverFunction<ThemedPressableState, ThemedPressableStyle>,
33
+ icon: StyleResolverFunction<ThemedPressableState, ThemedPressableIconStyle>,
30
34
  text: StyleResolverFunction<ThemedPressableState, ThemedPressableTextStyle>,
31
35
  }
@@ -1,20 +1,26 @@
1
1
  import type {
2
- ElementLayoutTokens
3
- } from '@helpwave/hightide-design/semantic-token-resolvers'
4
- import type {
2
+ ThemeBorderRadiusTokens,
5
3
  ThemeBorderWidthTokens,
6
4
  ThemeElevationTokens,
7
- ThemeShapeTokens,
5
+ ThemeMotionTokens,
6
+ ThemePaddingTokens,
7
+ ThemeSizeTokens,
8
8
  ThemeSpacingTokens
9
9
  } from '@helpwave/hightide-design/theme-tokens'
10
10
 
11
+ export type HightideSize = ThemeSizeTokens
12
+
11
13
  export type HightideSpacing = ThemeSpacingTokens
12
14
 
13
- export type HightideElements = ElementLayoutTokens
15
+ export type HightidePadding = ThemePaddingTokens
16
+
17
+ export type HightideBorderRadius = ThemeBorderRadiusTokens
18
+
19
+ export type HightideBorderWidth = ThemeBorderWidthTokens
14
20
 
15
- export type HightideBorderRadius = ThemeShapeTokens['borderRadius']
21
+ export type HightideElevation = ThemeElevationTokens
16
22
 
17
- export type HightideBorder = ThemeBorderWidthTokens
23
+ export type HightideMotion = ThemeMotionTokens
18
24
 
19
25
  export type HightideShadowToken = ThemeElevationTokens[keyof ThemeElevationTokens]
20
26
 
@@ -7,6 +7,7 @@ import type {
7
7
  ColoringToken,
8
8
  ContainerLayoutToken,
9
9
  ControlElementLayoutToken,
10
+ ElementLayoutTokens,
10
11
  InputColoringTokens,
11
12
  InsideControlElementLayoutToken,
12
13
  PressableColoringTokens,
@@ -69,4 +70,4 @@ export type HightideThemeSemantics = {
69
70
  asDescription: BoundSemanticResolver<{
70
71
  color: HexColorToken,
71
72
  }, HexColorToken>,
72
- }
73
+ } & ElementLayoutTokens
@@ -1,39 +1,67 @@
1
- import type { ThemeColorTokens } from '@helpwave/hightide-design/theme-tokens'
1
+ import type {
2
+ OutlineToken,
3
+ ThemeColorTokens,
4
+ ThemeConfigTokens
5
+ } from '@helpwave/hightide-design/theme-tokens'
2
6
 
3
7
  import type { HightideComponentThemes } from './components/hightide'
4
8
  import type { HightideIcongraphy } from './icongraphy'
5
9
  import type {
6
- HightideBorder,
7
10
  HightideBorderRadius,
8
- HightideElements,
11
+ HightideBorderWidth,
12
+ HightideElevation,
13
+ HightideMotion,
14
+ HightidePadding,
9
15
  HightideShadow,
16
+ HightideSize,
10
17
  HightideSpacing
11
18
  } from './layout'
12
19
  import type { HightideThemeSemantics } from './semantics'
13
- import type { HightideTypography } from './typography'
20
+ import type {
21
+ HightideFontFamilies,
22
+ HightideFontSizing,
23
+ HightideFontWeights,
24
+ HightideTypography
25
+ } from './typography'
14
26
 
15
27
  export type Theme = {
16
28
  colors: Record<string, unknown>,
17
- semantics: Record<string, unknown>,
18
- components: Record<string, unknown>,
29
+ fontFamilies: Record<string, unknown>,
30
+ fontWeights: Record<string, unknown>,
31
+ fontSizing: Record<string, unknown>,
19
32
  typography: Record<string, unknown>,
20
33
  icongraphy: Record<string, unknown>,
34
+ size: Record<string, unknown>,
21
35
  spacing: Record<string, unknown>,
22
- elements: Record<string, unknown>,
36
+ padding: Record<string, unknown>,
23
37
  borderRadius: Record<string, unknown>,
24
- border: Record<string, unknown>,
38
+ borderWidth: Record<string, unknown>,
39
+ elevation: Record<string, unknown>,
25
40
  shadow: Record<string, unknown>,
41
+ motion: Record<string, unknown>,
42
+ focusOutline: Record<string, unknown>,
43
+ config: Record<string, unknown>,
44
+ semantics: Record<string, unknown>,
45
+ components: Record<string, unknown>,
26
46
  }
27
47
 
28
48
  export type HightideTheme = Theme & {
29
49
  colors: ThemeColorTokens & Theme['colors'],
30
- semantics: HightideThemeSemantics & Theme['semantics'],
31
- components: HightideComponentThemes & Theme['components'],
50
+ fontFamilies: HightideFontFamilies & Theme['fontFamilies'],
51
+ fontWeights: HightideFontWeights & Theme['fontWeights'],
52
+ fontSizing: HightideFontSizing & Theme['fontSizing'],
32
53
  typography: HightideTypography & Theme['typography'],
33
54
  icongraphy: HightideIcongraphy & Theme['icongraphy'],
55
+ size: HightideSize & Theme['size'],
34
56
  spacing: HightideSpacing & Theme['spacing'],
35
- elements: HightideElements & Theme['elements'],
57
+ padding: HightidePadding & Theme['padding'],
36
58
  borderRadius: HightideBorderRadius & Theme['borderRadius'],
37
- border: HightideBorder & Theme['border'],
59
+ borderWidth: HightideBorderWidth & Theme['borderWidth'],
60
+ elevation: HightideElevation & Theme['elevation'],
38
61
  shadow: HightideShadow & Theme['shadow'],
62
+ motion: HightideMotion & Theme['motion'],
63
+ focusOutline: OutlineToken & Theme['focusOutline'],
64
+ config: ThemeConfigTokens & Theme['config'],
65
+ semantics: HightideThemeSemantics & Theme['semantics'],
66
+ components: HightideComponentThemes & Theme['components'],
39
67
  }
@@ -1,16 +1,21 @@
1
1
  import type {
2
- ThemeTypographyTokens,
2
+ ThemeFontFamilyTokens,
3
+ ThemeFontSizingTokens,
4
+ ThemeFontWeightTokens,
3
5
  ThemeTypographySize,
6
+ ThemeTypographyTokens,
4
7
  TypographyStyleToken
5
8
  } from '@helpwave/hightide-design/theme-tokens'
6
9
 
7
10
  export type TextStyle = TypographyStyleToken
8
11
 
9
- export type HightideTypography = ThemeTypographyTokens
12
+ export type HightideFontFamilies = ThemeFontFamilyTokens
10
13
 
11
- export type HightideFontFamilies = ThemeTypographyTokens['fontFamilies']
14
+ export type HightideFontWeights = ThemeFontWeightTokens
12
15
 
13
- export type HightideFontWeights = ThemeTypographyTokens['fontWeights']
16
+ export type HightideFontSizing = ThemeFontSizingTokens
17
+
18
+ export type HightideTypography = ThemeTypographyTokens
14
19
 
15
20
  export type TypographySizes = ThemeTypographySize
16
21