@umituz/react-native-design-system 2.6.61 → 2.6.64
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 +1 -1
- package/src/atoms/AtomicButton.tsx +6 -257
- package/src/atoms/AtomicChip.tsx +4 -224
- package/src/atoms/AtomicIcon.tsx +2 -6
- package/src/atoms/AtomicIcon.types.ts +5 -0
- package/src/atoms/AtomicInput.tsx +34 -154
- package/src/atoms/AtomicPicker.tsx +31 -123
- package/src/atoms/button/AtomicButton.tsx +108 -0
- package/src/atoms/button/configs/buttonSizeConfig.ts +37 -0
- package/src/atoms/button/index.ts +6 -0
- package/src/atoms/button/styles/buttonStyles.ts +36 -0
- package/src/atoms/button/styles/buttonVariantStyles.ts +88 -0
- package/src/atoms/button/types/index.ts +40 -0
- package/src/atoms/chip/AtomicChip.tsx +112 -0
- package/src/atoms/chip/configs/chipColorConfig.ts +47 -0
- package/src/atoms/chip/configs/chipSizeConfig.ts +34 -0
- package/src/atoms/chip/index.ts +6 -0
- package/src/atoms/chip/styles/chipStyles.ts +28 -0
- package/src/atoms/chip/types/index.ts +42 -0
- package/src/atoms/index.ts +6 -4
- package/src/atoms/input/components/InputHelper.tsx +49 -0
- package/src/atoms/input/components/InputIcon.tsx +44 -0
- package/src/atoms/input/components/InputLabel.tsx +20 -0
- package/src/atoms/input/styles/inputStylesHelper.ts +1 -1
- package/src/atoms/input/types.ts +72 -0
- package/src/atoms/picker/hooks/usePickerState.ts +139 -0
- package/src/exports/atoms.ts +69 -0
- package/src/exports/device.ts +58 -0
- package/src/exports/layouts.ts +19 -0
- package/src/exports/molecules.ts +166 -0
- package/src/exports/organisms.ts +9 -0
- package/src/exports/responsive.ts +36 -0
- package/src/exports/safe-area.ts +6 -0
- package/src/exports/theme.ts +47 -0
- package/src/exports/typography.ts +22 -0
- package/src/exports/utilities.ts +6 -0
- package/src/exports/variants.ts +22 -0
- package/src/index.ts +11 -417
- package/src/layouts/ScreenLayout/ScreenLayout.tsx +17 -181
- package/src/layouts/ScreenLayout/components/ContentWrapper.tsx +31 -0
- package/src/layouts/ScreenLayout/components/index.ts +6 -0
- package/src/layouts/ScreenLayout/styles/screenLayoutStyles.ts +47 -0
- package/src/layouts/ScreenLayout/types/index.ts +27 -0
- package/src/molecules/avatar/Avatar.constants.ts +103 -0
- package/src/molecules/avatar/Avatar.types.ts +64 -0
- package/src/molecules/avatar/Avatar.utils.ts +8 -160
- package/src/molecules/calendar/index.ts +4 -9
- package/src/molecules/calendar/infrastructure/storage/CalendarStore.ts +103 -302
- package/src/molecules/calendar/infrastructure/storage/CalendarStore.ts.bak +116 -0
- package/src/molecules/calendar/infrastructure/storage/CalendarStore.types.ts +64 -0
- package/src/molecules/calendar/infrastructure/storage/CalendarStore.utils.ts +56 -0
- package/src/molecules/calendar/infrastructure/storage/EventActions.ts +140 -0
- package/src/molecules/calendar/infrastructure/storage/NavigationActions.ts +118 -0
- package/src/molecules/calendar/infrastructure/stores/storageAdapter.ts +34 -0
- package/src/molecules/calendar/infrastructure/stores/useCalendarEvents.ts +168 -0
- package/src/molecules/calendar/infrastructure/stores/useCalendarNavigation.ts +47 -0
- package/src/molecules/calendar/infrastructure/stores/useCalendarView.ts +24 -0
- package/src/molecules/calendar/presentation/hooks/useCalendar.ts +7 -11
- package/src/responsive/compute/computeDeviceInfo.ts +22 -0
- package/src/responsive/compute/computeResponsivePositioning.ts +42 -0
- package/src/responsive/compute/computeResponsiveSizes.ts +48 -0
- package/src/responsive/padding/paddingUtils.ts +65 -0
- package/src/responsive/positioning/positioningUtils.ts +61 -0
- package/src/responsive/responsiveLayout.ts +11 -264
- package/src/responsive/screen/screenLayoutConfig.ts +38 -0
- package/src/responsive/tabbar/tabBarConfig.ts +88 -0
- package/src/responsive/types/responsiveTypes.ts +69 -0
- package/src/responsive/useResponsive.ts +69 -158
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContentWrapper Component
|
|
3
|
+
* Conditionally wraps content with KeyboardAvoidingView
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { View } from 'react-native';
|
|
8
|
+
import type { ViewStyle } from 'react-native';
|
|
9
|
+
import { AtomicKeyboardAvoidingView } from '../../../atoms';
|
|
10
|
+
|
|
11
|
+
export interface ContentWrapperProps {
|
|
12
|
+
readonly children: React.ReactNode;
|
|
13
|
+
readonly keyboardAvoiding?: boolean;
|
|
14
|
+
readonly style?: ViewStyle;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const ContentWrapper: React.FC<ContentWrapperProps> = ({
|
|
18
|
+
children,
|
|
19
|
+
keyboardAvoiding = false,
|
|
20
|
+
style,
|
|
21
|
+
}) => {
|
|
22
|
+
if (keyboardAvoiding) {
|
|
23
|
+
return (
|
|
24
|
+
<AtomicKeyboardAvoidingView style={style}>
|
|
25
|
+
{children}
|
|
26
|
+
</AtomicKeyboardAvoidingView>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return <View style={style}>{children}</View>;
|
|
31
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScreenLayout Styles
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import type { DesignTokens } from '../../../theme';
|
|
7
|
+
|
|
8
|
+
export interface ScreenLayoutStylesConfig {
|
|
9
|
+
readonly maxWidth?: number;
|
|
10
|
+
readonly horizontalPadding: number;
|
|
11
|
+
readonly verticalPadding: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const getScreenLayoutStyles = (
|
|
15
|
+
tokens: DesignTokens,
|
|
16
|
+
config: ScreenLayoutStylesConfig,
|
|
17
|
+
) => {
|
|
18
|
+
const { maxWidth, horizontalPadding, verticalPadding } = config;
|
|
19
|
+
|
|
20
|
+
return StyleSheet.create({
|
|
21
|
+
container: {
|
|
22
|
+
flex: 1,
|
|
23
|
+
},
|
|
24
|
+
keyboardAvoidingView: {
|
|
25
|
+
flex: 1,
|
|
26
|
+
},
|
|
27
|
+
responsiveWrapper: {
|
|
28
|
+
flex: 1,
|
|
29
|
+
width: '100%',
|
|
30
|
+
...(maxWidth ? { maxWidth, alignSelf: 'center' as const } : {}),
|
|
31
|
+
},
|
|
32
|
+
content: {
|
|
33
|
+
flex: 1,
|
|
34
|
+
paddingTop: verticalPadding,
|
|
35
|
+
paddingHorizontal: horizontalPadding,
|
|
36
|
+
},
|
|
37
|
+
scrollView: {
|
|
38
|
+
flex: 1,
|
|
39
|
+
},
|
|
40
|
+
scrollContent: {
|
|
41
|
+
flexGrow: 1,
|
|
42
|
+
paddingTop: verticalPadding,
|
|
43
|
+
paddingHorizontal: horizontalPadding,
|
|
44
|
+
paddingBottom: verticalPadding,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScreenLayout Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ViewStyle } from 'react-native';
|
|
6
|
+
import type { Edge } from 'react-native-safe-area-context';
|
|
7
|
+
import type { RefreshControlProps } from 'react-native';
|
|
8
|
+
|
|
9
|
+
export interface ScreenLayoutProps {
|
|
10
|
+
readonly children: React.ReactNode;
|
|
11
|
+
readonly scrollable?: boolean;
|
|
12
|
+
readonly edges?: Edge[];
|
|
13
|
+
readonly header?: React.ReactNode;
|
|
14
|
+
readonly footer?: React.ReactNode;
|
|
15
|
+
readonly backgroundColor?: string;
|
|
16
|
+
readonly containerStyle?: ViewStyle;
|
|
17
|
+
readonly contentContainerStyle?: ViewStyle;
|
|
18
|
+
readonly testID?: string;
|
|
19
|
+
readonly hideScrollIndicator?: boolean;
|
|
20
|
+
readonly keyboardAvoiding?: boolean;
|
|
21
|
+
readonly accessibilityLabel?: string;
|
|
22
|
+
readonly accessibilityHint?: string;
|
|
23
|
+
readonly accessible?: boolean;
|
|
24
|
+
readonly responsiveEnabled?: boolean;
|
|
25
|
+
readonly maxWidth?: number;
|
|
26
|
+
readonly refreshControl?: React.ReactElement<RefreshControlProps>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avatar Constants
|
|
3
|
+
* Configuration constants for avatar component
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { AvatarSize, AvatarShape, AvatarType, SizeConfig } from './Avatar.types';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Size configurations (px)
|
|
10
|
+
*/
|
|
11
|
+
export const SIZE_CONFIGS: Record<AvatarSize, SizeConfig> = {
|
|
12
|
+
xs: {
|
|
13
|
+
size: 24,
|
|
14
|
+
fontSize: 10,
|
|
15
|
+
iconSize: 12,
|
|
16
|
+
statusSize: 6,
|
|
17
|
+
borderWidth: 1,
|
|
18
|
+
},
|
|
19
|
+
sm: {
|
|
20
|
+
size: 32,
|
|
21
|
+
fontSize: 12,
|
|
22
|
+
iconSize: 16,
|
|
23
|
+
statusSize: 8,
|
|
24
|
+
borderWidth: 1.5,
|
|
25
|
+
},
|
|
26
|
+
md: {
|
|
27
|
+
size: 40,
|
|
28
|
+
fontSize: 14,
|
|
29
|
+
iconSize: 20,
|
|
30
|
+
statusSize: 10,
|
|
31
|
+
borderWidth: 2,
|
|
32
|
+
},
|
|
33
|
+
lg: {
|
|
34
|
+
size: 56,
|
|
35
|
+
fontSize: 18,
|
|
36
|
+
iconSize: 28,
|
|
37
|
+
statusSize: 12,
|
|
38
|
+
borderWidth: 2,
|
|
39
|
+
},
|
|
40
|
+
xl: {
|
|
41
|
+
size: 80,
|
|
42
|
+
fontSize: 24,
|
|
43
|
+
iconSize: 40,
|
|
44
|
+
statusSize: 16,
|
|
45
|
+
borderWidth: 2.5,
|
|
46
|
+
},
|
|
47
|
+
xxl: {
|
|
48
|
+
size: 120,
|
|
49
|
+
fontSize: 36,
|
|
50
|
+
iconSize: 60,
|
|
51
|
+
statusSize: 20,
|
|
52
|
+
borderWidth: 3,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Avatar background colors
|
|
58
|
+
* Vibrant, accessible colors with good contrast
|
|
59
|
+
*/
|
|
60
|
+
export const AVATAR_COLORS = [
|
|
61
|
+
'#EF4444', // Red
|
|
62
|
+
'#F59E0B', // Orange
|
|
63
|
+
'#10B981', // Green
|
|
64
|
+
'#3B82F6', // Blue
|
|
65
|
+
'#8B5CF6', // Purple
|
|
66
|
+
'#EC4899', // Pink
|
|
67
|
+
'#14B8A6', // Teal
|
|
68
|
+
'#F97316', // Orange-Red
|
|
69
|
+
'#06B6D4', // Cyan
|
|
70
|
+
'#84CC16', // Lime
|
|
71
|
+
] as const;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Status indicator colors
|
|
75
|
+
*/
|
|
76
|
+
export const STATUS_COLORS = {
|
|
77
|
+
online: '#10B981', // Green
|
|
78
|
+
offline: '#9CA3AF', // Gray
|
|
79
|
+
away: '#F59E0B', // Orange
|
|
80
|
+
busy: '#EF4444', // Red
|
|
81
|
+
} as const;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Border radius configurations
|
|
85
|
+
*/
|
|
86
|
+
export const SHAPE_CONFIGS = {
|
|
87
|
+
circle: 9999, // Full circle
|
|
88
|
+
square: 0, // No radius
|
|
89
|
+
rounded: 8, // Rounded corners
|
|
90
|
+
} as const;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Avatar constants
|
|
94
|
+
*/
|
|
95
|
+
export const AVATAR_CONSTANTS = {
|
|
96
|
+
DEFAULT_SIZE: 'md' as AvatarSize,
|
|
97
|
+
DEFAULT_SHAPE: 'circle' as AvatarShape,
|
|
98
|
+
DEFAULT_TYPE: 'initials' as AvatarType,
|
|
99
|
+
DEFAULT_ICON: 'user',
|
|
100
|
+
MAX_GROUP_VISIBLE: 3,
|
|
101
|
+
GROUP_SPACING: -8, // Negative for overlap
|
|
102
|
+
FALLBACK_INITIALS: '?',
|
|
103
|
+
} as const;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Avatar Types
|
|
3
|
+
* Type definitions for avatar component
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Avatar size preset
|
|
8
|
+
*/
|
|
9
|
+
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Avatar shape
|
|
13
|
+
*/
|
|
14
|
+
export type AvatarShape = 'circle' | 'square' | 'rounded';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Avatar type
|
|
18
|
+
*/
|
|
19
|
+
export type AvatarType = 'image' | 'initials' | 'icon';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Avatar configuration
|
|
23
|
+
*/
|
|
24
|
+
export interface AvatarConfig {
|
|
25
|
+
/** Avatar type */
|
|
26
|
+
type: AvatarType;
|
|
27
|
+
/** Size preset */
|
|
28
|
+
size: AvatarSize;
|
|
29
|
+
/** Shape */
|
|
30
|
+
shape: AvatarShape;
|
|
31
|
+
/** Image URI */
|
|
32
|
+
uri?: string;
|
|
33
|
+
/** User name for initials */
|
|
34
|
+
name?: string;
|
|
35
|
+
/** Icon name (if type is icon) */
|
|
36
|
+
icon?: string;
|
|
37
|
+
/** Custom background color */
|
|
38
|
+
backgroundColor?: string;
|
|
39
|
+
/** Show status indicator */
|
|
40
|
+
showStatus?: boolean;
|
|
41
|
+
/** Status (online/offline) */
|
|
42
|
+
status?: 'online' | 'offline' | 'away' | 'busy';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Size configuration
|
|
47
|
+
*/
|
|
48
|
+
export interface SizeConfig {
|
|
49
|
+
size: number;
|
|
50
|
+
fontSize: number;
|
|
51
|
+
iconSize: number;
|
|
52
|
+
statusSize: number;
|
|
53
|
+
borderWidth: number;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Avatar group configuration
|
|
58
|
+
*/
|
|
59
|
+
export interface AvatarGroupConfig {
|
|
60
|
+
maxVisible: number;
|
|
61
|
+
spacing: number;
|
|
62
|
+
size: AvatarSize;
|
|
63
|
+
shape: AvatarShape;
|
|
64
|
+
}
|
|
@@ -1,153 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Avatar
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Supports images, initials, icons with Turkish character support.
|
|
2
|
+
* Avatar Utilities
|
|
3
|
+
* Utility class for avatar operations
|
|
4
|
+
* Supports images, initials, icons with Turkish character support
|
|
6
5
|
*/
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Avatar shape
|
|
15
|
-
*/
|
|
16
|
-
export type AvatarShape = 'circle' | 'square' | 'rounded';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Avatar type
|
|
20
|
-
*/
|
|
21
|
-
export type AvatarType = 'image' | 'initials' | 'icon';
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Avatar configuration
|
|
25
|
-
*/
|
|
26
|
-
export interface AvatarConfig {
|
|
27
|
-
/** Avatar type */
|
|
28
|
-
type: AvatarType;
|
|
29
|
-
/** Size preset */
|
|
30
|
-
size: AvatarSize;
|
|
31
|
-
/** Shape */
|
|
32
|
-
shape: AvatarShape;
|
|
33
|
-
/** Image URI */
|
|
34
|
-
uri?: string;
|
|
35
|
-
/** User name for initials */
|
|
36
|
-
name?: string;
|
|
37
|
-
/** Icon name (if type is icon) */
|
|
38
|
-
icon?: string;
|
|
39
|
-
/** Custom background color */
|
|
40
|
-
backgroundColor?: string;
|
|
41
|
-
/** Show status indicator */
|
|
42
|
-
showStatus?: boolean;
|
|
43
|
-
/** Status (online/offline) */
|
|
44
|
-
status?: 'online' | 'offline' | 'away' | 'busy';
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Size configuration
|
|
49
|
-
*/
|
|
50
|
-
export interface SizeConfig {
|
|
51
|
-
size: number;
|
|
52
|
-
fontSize: number;
|
|
53
|
-
iconSize: number;
|
|
54
|
-
statusSize: number;
|
|
55
|
-
borderWidth: number;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Avatar group configuration
|
|
60
|
-
*/
|
|
61
|
-
export interface AvatarGroupConfig {
|
|
62
|
-
maxVisible: number;
|
|
63
|
-
spacing: number;
|
|
64
|
-
size: AvatarSize;
|
|
65
|
-
shape: AvatarShape;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Size configurations (px)
|
|
70
|
-
*/
|
|
71
|
-
export const SIZE_CONFIGS: Record<AvatarSize, SizeConfig> = {
|
|
72
|
-
xs: {
|
|
73
|
-
size: 24,
|
|
74
|
-
fontSize: 10,
|
|
75
|
-
iconSize: 12,
|
|
76
|
-
statusSize: 6,
|
|
77
|
-
borderWidth: 1,
|
|
78
|
-
},
|
|
79
|
-
sm: {
|
|
80
|
-
size: 32,
|
|
81
|
-
fontSize: 12,
|
|
82
|
-
iconSize: 16,
|
|
83
|
-
statusSize: 8,
|
|
84
|
-
borderWidth: 1.5,
|
|
85
|
-
},
|
|
86
|
-
md: {
|
|
87
|
-
size: 40,
|
|
88
|
-
fontSize: 14,
|
|
89
|
-
iconSize: 20,
|
|
90
|
-
statusSize: 10,
|
|
91
|
-
borderWidth: 2,
|
|
92
|
-
},
|
|
93
|
-
lg: {
|
|
94
|
-
size: 56,
|
|
95
|
-
fontSize: 18,
|
|
96
|
-
iconSize: 28,
|
|
97
|
-
statusSize: 12,
|
|
98
|
-
borderWidth: 2,
|
|
99
|
-
},
|
|
100
|
-
xl: {
|
|
101
|
-
size: 80,
|
|
102
|
-
fontSize: 24,
|
|
103
|
-
iconSize: 40,
|
|
104
|
-
statusSize: 16,
|
|
105
|
-
borderWidth: 2.5,
|
|
106
|
-
},
|
|
107
|
-
xxl: {
|
|
108
|
-
size: 120,
|
|
109
|
-
fontSize: 36,
|
|
110
|
-
iconSize: 60,
|
|
111
|
-
statusSize: 20,
|
|
112
|
-
borderWidth: 3,
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Avatar background colors
|
|
118
|
-
* Vibrant, accessible colors with good contrast
|
|
119
|
-
*/
|
|
120
|
-
export const AVATAR_COLORS = [
|
|
121
|
-
'#EF4444', // Red
|
|
122
|
-
'#F59E0B', // Orange
|
|
123
|
-
'#10B981', // Green
|
|
124
|
-
'#3B82F6', // Blue
|
|
125
|
-
'#8B5CF6', // Purple
|
|
126
|
-
'#EC4899', // Pink
|
|
127
|
-
'#14B8A6', // Teal
|
|
128
|
-
'#F97316', // Orange-Red
|
|
129
|
-
'#06B6D4', // Cyan
|
|
130
|
-
'#84CC16', // Lime
|
|
131
|
-
] as const;
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Status indicator colors
|
|
135
|
-
*/
|
|
136
|
-
export const STATUS_COLORS = {
|
|
137
|
-
online: '#10B981', // Green
|
|
138
|
-
offline: '#9CA3AF', // Gray
|
|
139
|
-
away: '#F59E0B', // Orange
|
|
140
|
-
busy: '#EF4444', // Red
|
|
141
|
-
} as const;
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Border radius configurations
|
|
145
|
-
*/
|
|
146
|
-
export const SHAPE_CONFIGS = {
|
|
147
|
-
circle: 9999, // Full circle
|
|
148
|
-
square: 0, // No radius
|
|
149
|
-
rounded: 8, // Rounded corners
|
|
150
|
-
} as const;
|
|
7
|
+
import type { AvatarSize, AvatarShape, AvatarConfig, SizeConfig } from './Avatar.types';
|
|
8
|
+
import { AVATAR_COLORS, STATUS_COLORS, SHAPE_CONFIGS, SIZE_CONFIGS } from './Avatar.constants';
|
|
151
9
|
|
|
152
10
|
/**
|
|
153
11
|
* Avatar utility class
|
|
@@ -275,16 +133,6 @@ export class AvatarUtils {
|
|
|
275
133
|
}
|
|
276
134
|
}
|
|
277
135
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
export const AVATAR_CONSTANTS = {
|
|
282
|
-
DEFAULT_SIZE: 'md' as AvatarSize,
|
|
283
|
-
DEFAULT_SHAPE: 'circle' as AvatarShape,
|
|
284
|
-
DEFAULT_TYPE: 'initials' as AvatarType,
|
|
285
|
-
DEFAULT_ICON: 'user',
|
|
286
|
-
MAX_GROUP_VISIBLE: 3,
|
|
287
|
-
GROUP_SPACING: -8, // Negative for overlap
|
|
288
|
-
FALLBACK_INITIALS: '?',
|
|
289
|
-
} as const;
|
|
290
|
-
|
|
136
|
+
// Re-export types and constants for convenience
|
|
137
|
+
export type { AvatarSize, AvatarShape, AvatarType, AvatarConfig, SizeConfig } from './Avatar.types';
|
|
138
|
+
export { AVATAR_COLORS, STATUS_COLORS, SHAPE_CONFIGS, SIZE_CONFIGS, AVATAR_CONSTANTS } from './Avatar.constants';
|
|
@@ -54,18 +54,13 @@ export { CalendarGeneration } from './infrastructure/services/CalendarGeneration
|
|
|
54
54
|
export { DateUtilities } from './infrastructure/utils/DateUtilities';
|
|
55
55
|
|
|
56
56
|
// Infrastructure Storage
|
|
57
|
-
export {
|
|
58
|
-
useCalendarStore,
|
|
59
|
-
type CalendarViewMode,
|
|
60
|
-
} from './infrastructure/storage/CalendarStore';
|
|
61
|
-
|
|
62
|
-
// Presentation Hooks
|
|
63
57
|
export {
|
|
64
58
|
useCalendar,
|
|
65
|
-
useCalendarNavigation,
|
|
66
59
|
useCalendarEvents,
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
useCalendarNavigation,
|
|
61
|
+
useCalendarView,
|
|
62
|
+
type CalendarViewMode,
|
|
63
|
+
} from './infrastructure/storage/CalendarStore';
|
|
69
64
|
|
|
70
65
|
// Presentation Components
|
|
71
66
|
export {
|