@onlynative/components 0.1.0 → 0.1.1-alpha.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 (70) hide show
  1. package/dist/appbar/index.js +133 -62
  2. package/dist/button/index.js +125 -33
  3. package/dist/card/index.js +88 -20
  4. package/dist/checkbox/index.js +88 -17
  5. package/dist/chip/index.js +122 -30
  6. package/dist/icon-button/index.js +107 -36
  7. package/dist/index.js +335 -251
  8. package/dist/list/index.js +71 -24
  9. package/dist/radio/index.js +43 -14
  10. package/dist/switch/index.js +90 -19
  11. package/dist/text-field/index.js +82 -26
  12. package/package.json +4 -23
  13. package/src/appbar/AppBar.tsx +0 -302
  14. package/src/appbar/index.ts +0 -2
  15. package/src/appbar/styles.ts +0 -92
  16. package/src/appbar/types.ts +0 -67
  17. package/src/button/Button.tsx +0 -133
  18. package/src/button/index.ts +0 -2
  19. package/src/button/styles.ts +0 -287
  20. package/src/button/types.ts +0 -42
  21. package/src/card/Card.tsx +0 -69
  22. package/src/card/index.ts +0 -2
  23. package/src/card/styles.ts +0 -150
  24. package/src/card/types.ts +0 -27
  25. package/src/checkbox/Checkbox.tsx +0 -113
  26. package/src/checkbox/index.ts +0 -2
  27. package/src/checkbox/styles.ts +0 -155
  28. package/src/checkbox/types.ts +0 -20
  29. package/src/chip/Chip.tsx +0 -188
  30. package/src/chip/index.ts +0 -2
  31. package/src/chip/styles.ts +0 -239
  32. package/src/chip/types.ts +0 -58
  33. package/src/icon-button/IconButton.tsx +0 -362
  34. package/src/icon-button/index.ts +0 -6
  35. package/src/icon-button/styles.ts +0 -259
  36. package/src/icon-button/types.ts +0 -55
  37. package/src/index.ts +0 -54
  38. package/src/keyboard-avoiding-wrapper/KeyboardAvoidingWrapper.tsx +0 -69
  39. package/src/keyboard-avoiding-wrapper/index.ts +0 -2
  40. package/src/keyboard-avoiding-wrapper/styles.ts +0 -10
  41. package/src/keyboard-avoiding-wrapper/types.ts +0 -37
  42. package/src/layout/Box.tsx +0 -99
  43. package/src/layout/Column.tsx +0 -16
  44. package/src/layout/Grid.tsx +0 -49
  45. package/src/layout/Layout.tsx +0 -81
  46. package/src/layout/Row.tsx +0 -22
  47. package/src/layout/index.ts +0 -13
  48. package/src/layout/resolveSpacing.ts +0 -11
  49. package/src/layout/types.ts +0 -82
  50. package/src/list/List.tsx +0 -17
  51. package/src/list/ListDivider.tsx +0 -20
  52. package/src/list/ListItem.tsx +0 -128
  53. package/src/list/index.ts +0 -9
  54. package/src/list/styles.ts +0 -132
  55. package/src/list/types.ts +0 -54
  56. package/src/radio/Radio.tsx +0 -103
  57. package/src/radio/index.ts +0 -2
  58. package/src/radio/styles.ts +0 -139
  59. package/src/radio/types.ts +0 -20
  60. package/src/switch/Switch.tsx +0 -121
  61. package/src/switch/index.ts +0 -2
  62. package/src/switch/styles.ts +0 -172
  63. package/src/switch/types.ts +0 -32
  64. package/src/text-field/TextField.tsx +0 -301
  65. package/src/text-field/index.ts +0 -2
  66. package/src/text-field/styles.ts +0 -239
  67. package/src/text-field/types.ts +0 -49
  68. package/src/typography/Typography.tsx +0 -79
  69. package/src/typography/index.ts +0 -3
  70. package/src/typography/types.ts +0 -17
@@ -1,239 +0,0 @@
1
- import { StyleSheet } from 'react-native'
2
- import type { MaterialTheme } from '@onlynative/core'
3
-
4
- import type { ChipVariant } from './types'
5
- import { alphaColor, blendColor, elevationStyle } from '@onlynative/utils'
6
-
7
- interface VariantColors {
8
- backgroundColor: string
9
- textColor: string
10
- borderColor: string
11
- borderWidth: number
12
- hoveredBackgroundColor: string
13
- pressedBackgroundColor: string
14
- disabledBackgroundColor: string
15
- disabledTextColor: string
16
- disabledBorderColor: string
17
- }
18
-
19
- function getVariantColors(
20
- theme: MaterialTheme,
21
- variant: ChipVariant,
22
- elevated: boolean,
23
- selected: boolean,
24
- ): VariantColors {
25
- const disabledContainerColor = alphaColor(theme.colors.onSurface, 0.12)
26
- const disabledLabelColor = alphaColor(theme.colors.onSurface, 0.38)
27
- const disabledOutlineColor = alphaColor(theme.colors.onSurface, 0.12)
28
-
29
- // Filter chip — selected state
30
- if (variant === 'filter' && selected) {
31
- return {
32
- backgroundColor: theme.colors.secondaryContainer,
33
- textColor: theme.colors.onSecondaryContainer,
34
- borderColor: 'transparent',
35
- borderWidth: 0,
36
- hoveredBackgroundColor: blendColor(
37
- theme.colors.secondaryContainer,
38
- theme.colors.onSecondaryContainer,
39
- theme.stateLayer.hoveredOpacity,
40
- ),
41
- pressedBackgroundColor: blendColor(
42
- theme.colors.secondaryContainer,
43
- theme.colors.onSecondaryContainer,
44
- theme.stateLayer.pressedOpacity,
45
- ),
46
- disabledBackgroundColor: disabledContainerColor,
47
- disabledTextColor: disabledLabelColor,
48
- disabledBorderColor: 'transparent',
49
- }
50
- }
51
-
52
- // Elevated variants (assist, filter unselected, suggestion)
53
- // Input variant ignores elevated — always outlined
54
- if (elevated && variant !== 'input') {
55
- const textColor =
56
- variant === 'assist'
57
- ? theme.colors.onSurface
58
- : theme.colors.onSurfaceVariant
59
- return {
60
- backgroundColor: theme.colors.surfaceContainerLow,
61
- textColor,
62
- borderColor: 'transparent',
63
- borderWidth: 0,
64
- hoveredBackgroundColor: blendColor(
65
- theme.colors.surfaceContainerLow,
66
- textColor,
67
- theme.stateLayer.hoveredOpacity,
68
- ),
69
- pressedBackgroundColor: blendColor(
70
- theme.colors.surfaceContainerLow,
71
- textColor,
72
- theme.stateLayer.pressedOpacity,
73
- ),
74
- disabledBackgroundColor: disabledContainerColor,
75
- disabledTextColor: disabledLabelColor,
76
- disabledBorderColor: 'transparent',
77
- }
78
- }
79
-
80
- // Flat (outlined) variants
81
- const textColor =
82
- variant === 'assist'
83
- ? theme.colors.onSurface
84
- : theme.colors.onSurfaceVariant
85
-
86
- return {
87
- backgroundColor: theme.colors.surface,
88
- textColor,
89
- borderColor: theme.colors.outline,
90
- borderWidth: 1,
91
- hoveredBackgroundColor: blendColor(
92
- theme.colors.surface,
93
- textColor,
94
- theme.stateLayer.hoveredOpacity,
95
- ),
96
- pressedBackgroundColor: blendColor(
97
- theme.colors.surface,
98
- textColor,
99
- theme.stateLayer.pressedOpacity,
100
- ),
101
- disabledBackgroundColor: disabledContainerColor,
102
- disabledTextColor: disabledLabelColor,
103
- disabledBorderColor: disabledOutlineColor,
104
- }
105
- }
106
-
107
- function applyColorOverrides(
108
- theme: MaterialTheme,
109
- colors: VariantColors,
110
- containerColor?: string,
111
- contentColor?: string,
112
- ): VariantColors {
113
- if (!containerColor && !contentColor) return colors
114
-
115
- const result = { ...colors }
116
-
117
- if (contentColor) {
118
- result.textColor = contentColor
119
- }
120
-
121
- if (containerColor) {
122
- const overlay = contentColor ?? colors.textColor
123
- result.backgroundColor = containerColor
124
- result.borderColor = containerColor
125
- result.hoveredBackgroundColor = blendColor(
126
- containerColor,
127
- overlay,
128
- theme.stateLayer.hoveredOpacity,
129
- )
130
- result.pressedBackgroundColor = blendColor(
131
- containerColor,
132
- overlay,
133
- theme.stateLayer.pressedOpacity,
134
- )
135
- } else if (contentColor) {
136
- if (colors.backgroundColor === 'transparent') {
137
- result.hoveredBackgroundColor = alphaColor(
138
- contentColor,
139
- theme.stateLayer.hoveredOpacity,
140
- )
141
- result.pressedBackgroundColor = alphaColor(
142
- contentColor,
143
- theme.stateLayer.pressedOpacity,
144
- )
145
- } else {
146
- result.hoveredBackgroundColor = blendColor(
147
- colors.backgroundColor,
148
- contentColor,
149
- theme.stateLayer.hoveredOpacity,
150
- )
151
- result.pressedBackgroundColor = blendColor(
152
- colors.backgroundColor,
153
- contentColor,
154
- theme.stateLayer.pressedOpacity,
155
- )
156
- }
157
- }
158
-
159
- return result
160
- }
161
-
162
- export function createStyles(
163
- theme: MaterialTheme,
164
- variant: ChipVariant,
165
- elevated: boolean,
166
- selected: boolean,
167
- hasLeadingContent: boolean,
168
- hasTrailingContent: boolean,
169
- containerColor?: string,
170
- contentColor?: string,
171
- ) {
172
- const baseColors = getVariantColors(theme, variant, elevated, selected)
173
- const colors = applyColorOverrides(
174
- theme,
175
- baseColors,
176
- containerColor,
177
- contentColor,
178
- )
179
- const labelStyle = theme.typography.labelLarge
180
- const elevationLevel0 = elevationStyle(theme.elevation.level0)
181
- const elevationLevel1 = elevationStyle(theme.elevation.level1)
182
- const elevationLevel2 = elevationStyle(theme.elevation.level2)
183
- const isElevated = elevated && variant !== 'input'
184
- const baseElevation = isElevated ? elevationLevel1 : elevationLevel0
185
-
186
- return StyleSheet.create({
187
- container: {
188
- alignSelf: 'flex-start',
189
- alignItems: 'center',
190
- flexDirection: 'row',
191
- height: 32,
192
- paddingStart: hasLeadingContent ? 8 : 16,
193
- paddingEnd: hasTrailingContent ? 8 : 16,
194
- borderRadius: theme.shape.cornerSmall,
195
- backgroundColor: colors.backgroundColor,
196
- borderColor: colors.borderColor,
197
- borderWidth: colors.borderWidth,
198
- cursor: 'pointer',
199
- ...baseElevation,
200
- },
201
- hoveredContainer: {
202
- backgroundColor: colors.hoveredBackgroundColor,
203
- ...(isElevated ? elevationLevel2 : undefined),
204
- },
205
- pressedContainer: {
206
- backgroundColor: colors.pressedBackgroundColor,
207
- },
208
- disabledContainer: {
209
- backgroundColor: colors.disabledBackgroundColor,
210
- borderColor: colors.disabledBorderColor,
211
- cursor: 'auto',
212
- ...elevationLevel0,
213
- },
214
- label: {
215
- fontFamily: labelStyle.fontFamily,
216
- fontSize: labelStyle.fontSize,
217
- lineHeight: labelStyle.lineHeight,
218
- fontWeight: labelStyle.fontWeight,
219
- letterSpacing: labelStyle.letterSpacing,
220
- color: colors.textColor,
221
- },
222
- disabledLabel: {
223
- color: colors.disabledTextColor,
224
- },
225
- leadingIcon: {
226
- marginEnd: theme.spacing.sm,
227
- },
228
- avatar: {
229
- marginEnd: theme.spacing.sm,
230
- width: 24,
231
- height: 24,
232
- borderRadius: 12,
233
- overflow: 'hidden' as const,
234
- },
235
- closeButton: {
236
- marginStart: theme.spacing.sm,
237
- },
238
- })
239
- }
package/src/chip/types.ts DELETED
@@ -1,58 +0,0 @@
1
- import type MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons'
2
- import type { ComponentProps, ReactNode } from 'react'
3
- import type { PressableProps, StyleProp, TextStyle } from 'react-native'
4
-
5
- /** Visual variant of the chip following Material Design 3 chip types. */
6
- export type ChipVariant = 'assist' | 'filter' | 'input' | 'suggestion'
7
-
8
- export interface ChipProps extends Omit<PressableProps, 'children'> {
9
- /** Text label rendered inside the chip. */
10
- children: string
11
- /**
12
- * Chip type variant. Controls appearance, allowed interactions, and icon behavior.
13
- * @default 'assist'
14
- */
15
- variant?: ChipVariant
16
- /**
17
- * Whether the chip uses an elevated surface instead of an outline border.
18
- * Available on `assist`, `filter`, and `suggestion` variants.
19
- * Ignored on `input` variant (always outlined).
20
- * @default false
21
- */
22
- elevated?: boolean
23
- /**
24
- * Whether the chip is in a selected (toggled-on) state.
25
- * Only meaningful for the `filter` variant. Ignored by other variants.
26
- */
27
- selected?: boolean
28
- /** Name of a MaterialCommunityIcons icon to show before the label. */
29
- leadingIcon?: ComponentProps<typeof MaterialCommunityIcons>['name']
30
- /**
31
- * Size of the leading icon in dp.
32
- * @default 18
33
- */
34
- iconSize?: number
35
- /**
36
- * Custom avatar content (e.g. a small Image or View) to render before the label.
37
- * Only applicable to the `input` variant. Takes precedence over `leadingIcon`.
38
- */
39
- avatar?: ReactNode
40
- /**
41
- * Callback fired when the close/remove icon is pressed.
42
- * When provided, renders a trailing close icon.
43
- * Only renders on `input` and `filter` (when selected) variants.
44
- */
45
- onClose?: () => void
46
- /**
47
- * Override the container (background) color.
48
- * State-layer colors (hover, press) are derived automatically.
49
- */
50
- containerColor?: string
51
- /**
52
- * Override the content (label and icon) color.
53
- * State-layer colors are derived automatically when no containerColor is set.
54
- */
55
- contentColor?: string
56
- /** Additional style applied to the label text. */
57
- labelStyle?: StyleProp<TextStyle>
58
- }
@@ -1,362 +0,0 @@
1
- import { useMemo } from 'react'
2
- import { Pressable } from 'react-native'
3
- import type { StyleProp, ViewStyle } from 'react-native'
4
- import { useTheme } from '@onlynative/core'
5
-
6
- import {
7
- alphaColor,
8
- blendColor,
9
- getMaterialCommunityIcons,
10
- } from '@onlynative/utils'
11
- import { createStyles } from './styles'
12
- import type {
13
- IconButtonProps,
14
- IconButtonSize,
15
- IconButtonVariant,
16
- } from './types'
17
-
18
- function getIconColor(
19
- variant: IconButtonVariant,
20
- theme: ReturnType<typeof useTheme>,
21
- disabled: boolean,
22
- isToggle: boolean,
23
- selected: boolean,
24
- ): string {
25
- if (disabled) {
26
- return alphaColor(theme.colors.onSurface, 0.38)
27
- }
28
-
29
- if (isToggle) {
30
- if (variant === 'filled') {
31
- return selected ? theme.colors.onPrimary : theme.colors.primary
32
- }
33
-
34
- if (variant === 'tonal') {
35
- return selected
36
- ? theme.colors.onSecondaryContainer
37
- : theme.colors.onSurfaceVariant
38
- }
39
-
40
- if (variant === 'outlined') {
41
- return selected
42
- ? theme.colors.inverseOnSurface
43
- : theme.colors.onSurfaceVariant
44
- }
45
-
46
- return selected ? theme.colors.primary : theme.colors.onSurfaceVariant
47
- }
48
-
49
- if (variant === 'filled') {
50
- return theme.colors.onPrimary
51
- }
52
-
53
- if (variant === 'tonal') {
54
- return theme.colors.onSecondaryContainer
55
- }
56
-
57
- return theme.colors.onSurfaceVariant
58
- }
59
-
60
- function getColorStyle(
61
- styles: ReturnType<typeof createStyles>,
62
- variant: IconButtonVariant,
63
- isToggle: boolean,
64
- selected: boolean,
65
- ) {
66
- if (isToggle) {
67
- if (variant === 'tonal') {
68
- return selected
69
- ? styles.colorTonalToggleSelected
70
- : styles.colorTonalToggleUnselected
71
- }
72
-
73
- if (variant === 'outlined') {
74
- return selected
75
- ? styles.colorOutlinedToggleSelected
76
- : styles.colorOutlined
77
- }
78
-
79
- if (variant === 'standard') {
80
- return selected
81
- ? styles.colorStandardToggleSelected
82
- : styles.colorStandard
83
- }
84
-
85
- return selected
86
- ? styles.colorFilledToggleSelected
87
- : styles.colorFilledToggleUnselected
88
- }
89
-
90
- if (variant === 'tonal') {
91
- return styles.colorTonal
92
- }
93
-
94
- if (variant === 'outlined') {
95
- return styles.colorOutlined
96
- }
97
-
98
- if (variant === 'standard') {
99
- return styles.colorStandard
100
- }
101
-
102
- return styles.colorFilled
103
- }
104
-
105
- function getSizeStyle(
106
- styles: ReturnType<typeof createStyles>,
107
- size: IconButtonSize,
108
- ) {
109
- if (size === 'small') {
110
- return styles.sizeSmall
111
- }
112
-
113
- if (size === 'large') {
114
- return styles.sizeLarge
115
- }
116
-
117
- return styles.sizeMedium
118
- }
119
-
120
- function getIconPixelSize(size: IconButtonSize): number {
121
- if (size === 'small') {
122
- return 18
123
- }
124
-
125
- if (size === 'large') {
126
- return 28
127
- }
128
-
129
- return 24
130
- }
131
-
132
- function getDefaultHitSlop(size: IconButtonSize): number {
133
- if (size === 'small') {
134
- return 8
135
- }
136
-
137
- if (size === 'large') {
138
- return 0
139
- }
140
-
141
- return 4
142
- }
143
-
144
- function getHoveredStyle(
145
- styles: ReturnType<typeof createStyles>,
146
- variant: IconButtonVariant,
147
- isToggle: boolean,
148
- selected: boolean,
149
- ) {
150
- if (isToggle) {
151
- if (variant === 'tonal') {
152
- return selected
153
- ? styles.hoveredTonalToggleSelected
154
- : styles.hoveredTonalToggleUnselected
155
- }
156
-
157
- if (variant === 'outlined') {
158
- return selected
159
- ? styles.hoveredOutlinedToggleSelected
160
- : styles.hoveredOutlinedToggleUnselected
161
- }
162
-
163
- if (variant === 'standard') {
164
- return selected
165
- ? styles.hoveredStandardToggleSelected
166
- : styles.hoveredStandardToggleUnselected
167
- }
168
-
169
- return selected
170
- ? styles.hoveredFilledToggleSelected
171
- : styles.hoveredFilledToggleUnselected
172
- }
173
-
174
- if (variant === 'tonal') {
175
- return styles.hoveredTonal
176
- }
177
-
178
- if (variant === 'outlined') {
179
- return styles.hoveredOutlined
180
- }
181
-
182
- if (variant === 'standard') {
183
- return styles.hoveredStandard
184
- }
185
-
186
- return styles.hoveredFilled
187
- }
188
-
189
- function getPressedStyle(
190
- styles: ReturnType<typeof createStyles>,
191
- variant: IconButtonVariant,
192
- isToggle: boolean,
193
- selected: boolean,
194
- ) {
195
- if (isToggle) {
196
- if (variant === 'tonal') {
197
- return selected
198
- ? styles.pressedTonalToggleSelected
199
- : styles.pressedTonalToggleUnselected
200
- }
201
-
202
- if (variant === 'outlined') {
203
- return selected
204
- ? styles.pressedOutlinedToggleSelected
205
- : styles.pressedOutlinedToggleUnselected
206
- }
207
-
208
- if (variant === 'standard') {
209
- return selected
210
- ? styles.pressedStandardToggleSelected
211
- : styles.pressedStandardToggleUnselected
212
- }
213
-
214
- return selected
215
- ? styles.pressedFilledToggleSelected
216
- : styles.pressedFilledToggleUnselected
217
- }
218
-
219
- if (variant === 'tonal') {
220
- return styles.pressedTonal
221
- }
222
-
223
- if (variant === 'outlined') {
224
- return styles.pressedOutlined
225
- }
226
-
227
- if (variant === 'standard') {
228
- return styles.pressedStandard
229
- }
230
-
231
- return styles.pressedFilled
232
- }
233
-
234
- function getDisabledStyle(
235
- styles: ReturnType<typeof createStyles>,
236
- variant: IconButtonVariant,
237
- ) {
238
- if (variant === 'tonal') {
239
- return styles.disabledTonal
240
- }
241
-
242
- if (variant === 'outlined') {
243
- return styles.disabledOutlined
244
- }
245
-
246
- if (variant === 'standard') {
247
- return styles.disabledStandard
248
- }
249
-
250
- return styles.disabledFilled
251
- }
252
-
253
- export function IconButton({
254
- icon,
255
- selectedIcon,
256
- iconColor,
257
- contentColor,
258
- containerColor,
259
- style,
260
- onPress,
261
- disabled = false,
262
- variant = 'filled',
263
- selected,
264
- size = 'medium',
265
- hitSlop,
266
- accessibilityLabel,
267
- ...props
268
- }: IconButtonProps) {
269
- const MaterialCommunityIcons = getMaterialCommunityIcons()
270
- const theme = useTheme()
271
- const styles = useMemo(() => createStyles(theme), [theme])
272
- const isDisabled = Boolean(disabled)
273
- const isToggle = selected !== undefined
274
- const isSelected = Boolean(selected)
275
- const resolvedIconColor =
276
- contentColor ??
277
- iconColor ??
278
- getIconColor(variant, theme, isDisabled, isToggle, isSelected)
279
- const displayIcon =
280
- isToggle && isSelected && selectedIcon ? selectedIcon : icon
281
- const iconPixelSize = getIconPixelSize(size)
282
- const accessibilityState = isToggle
283
- ? { disabled: isDisabled, selected: isSelected }
284
- : { disabled: isDisabled }
285
-
286
- const containerOverrides = useMemo(() => {
287
- if (!containerColor) return null
288
- const overlay = resolvedIconColor
289
- return {
290
- base: {
291
- backgroundColor: containerColor,
292
- borderColor: containerColor,
293
- borderWidth: 0,
294
- } as ViewStyle,
295
- hovered: {
296
- backgroundColor: blendColor(
297
- containerColor,
298
- overlay,
299
- theme.stateLayer.hoveredOpacity,
300
- ),
301
- } as ViewStyle,
302
- pressed: {
303
- backgroundColor: blendColor(
304
- containerColor,
305
- overlay,
306
- theme.stateLayer.pressedOpacity,
307
- ),
308
- } as ViewStyle,
309
- }
310
- }, [containerColor, resolvedIconColor, theme.stateLayer])
311
-
312
- return (
313
- <Pressable
314
- {...props}
315
- accessibilityRole="button"
316
- accessibilityLabel={accessibilityLabel}
317
- accessibilityState={accessibilityState}
318
- disabled={isDisabled}
319
- hitSlop={hitSlop ?? getDefaultHitSlop(size)}
320
- onPress={onPress}
321
- style={({
322
- pressed,
323
- hovered,
324
- }: {
325
- pressed: boolean
326
- hovered?: boolean
327
- }) => {
328
- const base: StyleProp<ViewStyle>[] = [
329
- styles.container,
330
- getSizeStyle(styles, size),
331
- getColorStyle(styles, variant, isToggle, isSelected),
332
- containerOverrides?.base,
333
- hovered && !pressed && !isDisabled
334
- ? containerOverrides
335
- ? containerOverrides.hovered
336
- : getHoveredStyle(styles, variant, isToggle, isSelected)
337
- : undefined,
338
- pressed && !isDisabled
339
- ? containerOverrides
340
- ? containerOverrides.pressed
341
- : getPressedStyle(styles, variant, isToggle, isSelected)
342
- : undefined,
343
- isDisabled ? getDisabledStyle(styles, variant) : undefined,
344
- ]
345
-
346
- if (typeof style === 'function') {
347
- base.push(style({ pressed }))
348
- } else if (style) {
349
- base.push(style)
350
- }
351
-
352
- return base
353
- }}
354
- >
355
- <MaterialCommunityIcons
356
- name={displayIcon}
357
- size={iconPixelSize}
358
- color={resolvedIconColor}
359
- />
360
- </Pressable>
361
- )
362
- }
@@ -1,6 +0,0 @@
1
- export { IconButton } from './IconButton'
2
- export type {
3
- IconButtonProps,
4
- IconButtonSize,
5
- IconButtonVariant,
6
- } from './types'